【问题标题】:Do IdentityServer4 API Resources require a secret?IdentityServer4 API 资源是否需要秘密?
【发布时间】:2018-05-29 06:43:27
【问题描述】:

没有为 IdentityServer4 API 资源定义秘密会不会引入安全漏洞?

我对 Introspection 端点、何时使用以及是否有人可以使用 Introspection 端点绕过授权并在没有定义秘密的情况下访问 API (通过仅 API 名称为的 POST一个参数)。

这可能吗?或者内省端点是否仅通过使用诸如客户端凭据授予之类的已定义客户端进行授权?

【问题讨论】:

    标签: identityserver4 introspection


    【解决方案1】:

    自省端点只会验证已发布的令牌,不应在其请求中接受 API 名称。

    它可用于验证引用令牌(或 JWT,如果消费者不支持适当的 JWT 或加密库)。自省端点需要使用范围密钥进行身份验证。

    http://docs.identityserver.io/en/release/endpoints/introspection.html

    这不应该是您需要实现的端点,它被身份服务器以与“.well-known/openid-configuration”相同的方式包含。

    这个端点的一个用例是一个 API 被传递一个令牌并想要确认其真实且仍然有效(未过期或撤销),响应将包括与令牌相关联的声明(用户声明具有令牌范围考虑)

    有关自省安全注意事项,请参阅RFC 7662 Section 4

    【讨论】:

      【解决方案2】:

      当您使用授权代码流作为其在反向通道上发送声明时,API 资源需要客户端密钥。

      如果您使用参考令牌,您还需要一个客户端密钥,因为访问令牌永远不会提供给客户端,而是参考令牌从客户端传递到 api 资源,然后传递到身份服务器交换访问令牌。

      这真的取决于客户和流程。

      【讨论】:

        猜你喜欢
        • 2022-10-15
        • 2019-08-18
        • 2012-07-29
        • 2018-05-18
        • 1970-01-01
        • 2023-01-08
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        相关资源
        最近更新 更多