【问题标题】:IdentityServer4: Can I use PKCE with Client Credentials in IdentityServer?IdentityServer4:我可以在 IdentityServer 中将 PKCE 与客户端凭据一起使用吗?
【发布时间】:2020-10-10 12:46:57
【问题描述】:

App:Android App(允许一些匿名访问,一些认证访问)

身份验证:IdentityServer4

API:所有访问都必须至少由客户端进行身份验证,但有些还需要用户声明。

我有一个公共客户端(Android 应用程序),目前在使用 IdentityServer4 对 A USER 进行身份验证时使用 Authorisation_Code 和 PKCE。

我的应用具有允许匿名用户导航的页面。但是,我希望我的 API 确保我的公共客户端 Android 应用程序正在发出调用,因此我想为 API 验证我的客户端应用程序。

由于我在对用户进行身份验证时将 Authorise_Code 与 PKCE 结合使用,因此我的应用程序没有客户端密码。那么我可以使用客户端凭据(只是我的客户端 ID)和 PKCE 对我的客户端进行身份验证吗?

如果没有,我如何在没有 client_secret 的用户登录的情况下验证我的客户端?

【问题讨论】:

    标签: authentication identityserver4 claims-based-identity


    【解决方案1】:

    没有。 PKCE 旨在扩展授权码授予。在客户端凭据的上下文中没有意义。

    你想要做的最终依赖于客户保守秘密,这是不可行的。

    如果您关心的是机器人程序,那么任何简单的事情(例如您的应用程序拥有但不太担心人类黑客发现的标题中的一个键)都会阻止大部分(可能全部)。黑客仍然会进入,但对此的缓解措施应该是要求(用户)对暴露非公开数据的调用进行身份验证。

    【讨论】:

    • 感谢您提供此功能,是的,我的主要原因是先发制人地限制对 API 的任何恶意使用...数据不敏感,我只是想限制对应用程序的访问以保留通话量降至最低。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2019-07-25
    相关资源
    最近更新 更多