【问题标题】:Why is a signing certificate needed for Implicit Flow in IdentityServer3, but not for ClientCredential and ResourceOwner flows?为什么 IdentityServer3 中的隐式流需要签名证书,而 ClientCredential 和 ResourceOwner 流不需要?
【发布时间】:2016-07-17 18:51:53
【问题描述】:

我正在尝试加快使用 IdentityServer3 在 .NET Web 应用程序中进行授权的速度。

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

到目前为止,这就是我所理解的:流“ClientCredential”和“ResourceOwner”是“AuthorizationFlows”——即它们有一个客户端密码,所有令牌都从令牌端点返回,通过刷新令牌的长期身份验证是根据https://www.scottbrady91.com/OpenID-Connect/OpenID-Connect-Flows,可能不会向用户代理/浏览器显示令牌(相反,它们存储在服务器上,并向用户代理/浏览器发送 cookie 或类似内容)。对于直接访问 WebAPI 的 SPA / JS 应用程序,应使用隐式流,因为 JS 客户端直接从浏览器调用身份服务器,因此无法保留客户端密钥(因为它必须传输到浏览器,从而损害安全性)。

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

非常感谢您的帮助!

【问题讨论】:

    标签: certificate implicit signing identityserver3


    【解决方案1】:

    任何时候颁发 JWT(id_token 或 access_token)都需要签名证书。

    【讨论】:

    • 非常感谢!我仍然有点困惑,因为我的理解是所有三个流都允许调用者获取访问令牌......该令牌是隐式流的 JWT,还是 ClientCredentials 和 ResourceOwner 流的其他令牌类型?如果是这样,为什么不同流的不同类型的令牌?
    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2018-03-18
    相关资源
    最近更新 更多