IdentityServer4 API资源需要保密吗?

时间:2017-12-15 04:29:30

标签: identityserver4 introspection

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

我对Introspection Endpoint使用它时感到困惑,以及是否有人可以使用Introspection端点绕过授权并访问没有定义秘密的API(仅使用API​​名称的POST)作为参数)。

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

2 个答案:

答案 0 :(得分:0)

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

  

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

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

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

此端点的用例是传递令牌并希望确认其真实且仍然有效(未过期或已撤销)的API,响应将包括与令牌关联的声明(用户声明带有令牌范围)考虑到了)

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

答案 1 :(得分:0)

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

如果您使用的是Reference tokens,您还需要一个Client Secret,因为访问令牌永远不会呈现给客户端,而是引用令牌从客户端传递到api资源,然后传递到身份服务器上交换访问令牌。

这实际上取决于客户和流程。