为什么IdentityServer3中的隐式流需要签名证书,而ClientCredential和ResourceOwner流不需要签名证书?

时间:2016-07-17 18:51:54

标签: certificate implicit signing identityserver3

我正在努力使用IdentityServer3在.NET Web应用程序中进行授权。

我试图弄清楚为什么Implicit Flow要求IdentityServer拥有签名证书,而授权流程不需要。

到目前为止,这就是我所理解的:流“ClientCredential”和“ResourceOwner”是“AuthorizationFlows” - 即它们具有客户机密钥,所有令牌都从令牌端点返回,通过刷新令牌进行长期身份验证可能的是,令牌不会透露给用户代理/浏览器(相反,它们存储在服务器上,并且cookie或类似物被发送到用户代理/浏览器)每https://www.scottbrady91.com/OpenID-Connect/OpenID-Connect-Flows。对于直接访问WebAPI的SPA / JS应用程序,应该使用Implicit Flow,因为JS客户端直接从浏览器调用Identity Server,因此无法保留客户端密钥(因为它必须被传输)到浏览器,从而危及安全性)。

所有这些都是有道理的,但在所有情况下,IdentityServer都会生成应用程序用于授权的令牌,因此我很困惑为什么需要在一个案例中签名而不在另一个案例中签名?

非常感谢您的协助!

1 个答案:

答案 0 :(得分:0)

发布JWT时需要签名证书(id_token或access_token)。

相关问题