我可以在没有客户端密码的情况下使用带有 PKCE 的 IdentityServer3 授权代码流吗?
Posted
技术标签:
【中文标题】我可以在没有客户端密码的情况下使用带有 PKCE 的 IdentityServer3 授权代码流吗?【英文标题】:Can I use IdentityServer3 Authorization Code Flow with PKCE and no client secret? 【发布时间】:2019-10-25 07:12:43 【问题描述】:我希望扩展我们的 ID 服务器实例以支持移动应用程序,并希望将授权代码流与 PKCE 一起使用。由于这是一个公共客户端,我不希望将秘密存储在应用程序上,但似乎 ID3 需要一个秘密。任何人都可以确认这一点,就好像我可能需要考虑将 ID3 升级到 ID4 一样,这将成为我的时间线问题?
亲切的问候, 最后的建造者
【问题讨论】:
【参考方案1】:为公共客户端指定密钥不是代码 + PKCE 流程的问题。在那种情况下it's just a rudiment,几乎不会增加安全性。这就是为什么他们引入了一个完全关闭它的选项。
【讨论】:
他们是在 ID3 还是 ID4 中添加了选项? 他们在 Identityserver4 的开头添加了该选项(用于 ASP.Net Core 1x)。最新的(也是最后一个)是 Identityserver4 v.4(用于 ASP.Net Core 3x)。 Identityserver3(不带选项)适用于 .Net 4.x 和 OWIN。 (只是为了避免任何误解) 感谢@d-f,我们使用 ID3 已经有一段时间了,但才刚刚开始研究 PKCE,所以我想知道我是否错过了这个选项。以上是关于我可以在没有客户端密码的情况下使用带有 PKCE 的 IdentityServer3 授权代码流吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PKCE 登录 Google.Apis.Drive.v3 for .NET?
Azure AD:带有 PKCE 的代码流:没有为应用程序启用 id_token