我使用身份服务器4构建了自己的身份服务器。我在示例甚至管理UI中经常看到的一件事是,对于Web应用程序(通常为MVC),默认为Hybrid类型(流程)。我只是看不出它有什么好处。
响应类型:代码令牌
我缺少哪种用例,在初始响应中发送的id_token对视图而言足够重要?我正在使用authorization_code授予类型,但是我很好奇何时应该使用混合类型。
据我了解,当前首选的流程是带有PKCE的代码。在.NET中的Core 2,混合动力是默认可能是因为对.NET核心2不包括内置的PKCE支持,但新的.NET核心3呢,和IS4文档的话:
“PKCE已经是官方推荐本机应用程序和SPA-并且默认情况下,OpenID Connect处理程序也支持ASP.NET Core 3发行版。”
使用Hybrid的原因是因为它解决了代码替换攻击,但是它带来了以下缺点:
1.“ id_token通过字体通道传输,并且可能泄漏其他(个人身份)数据”
2.“所有缓解措施(例如加密)都需要由客户端实施。这将导致客户端库的实现更加复杂。”
随着PKCE的引入也解决了替代问题,PKCE成为了更简单的解决方案。这来自斯科特·布雷迪(Scott Brady):
“过去,最佳实践是使用代码id_token的混合流响应类型,因为这为我们提供了一些在交换代码以交换令牌之前(通过nonce和c_hash参数)进行验证的方法。但是,由于现在使用PKCE,注入代码来冒充其他用户不再是风险,因此,我们可以安全地从浏览器中删除所有PII(身份令牌)。”
希望这能回答您的问题,因为我对此事的理解中等。使用的链接:
IS4文档
ASP.NET核心支持PKCE由斯科特·布雷迪
的OAuth 2.0安全最佳当前做法
编辑:似乎有一个答案类似的问题在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句