【问题标题】:How to determine if a client can call an api endpoint using IdentityServer4如何确定客户端是否可以使用 IdentityServer4 调用 api 端点
【发布时间】:2018-07-19 11:13:04
【问题描述】:

我在 Web API 中有 api 端点,我在 ASPNET Core 2.0 中使用 IdentityServer4 保护对其端点的访问。该 API 有多个 ApiScope,例如“can_read”和“can_write”。我想知道如何通过确定在授权标头中发送的访问令牌是否具有该范围来确定调用端点的客户端是否可以调用端点?

【问题讨论】:

  • 答案几乎就在问题中......到目前为止你尝试了什么?
  • 我创建了一个令牌检索器服务来从查询字符串或标头中检索令牌以检索访问令牌var token = TokenRetrieverService.FromHeaderAndQueryString(HttpContext.Request); if(token == null) { return BadRequest("Could not retrieve an access token"); } 现在我不知道如何使用访问令牌来确定它是否具有特定的 api范围
  • 那么您肯定有自己的答案吗?
  • 我不知道如何使用访问令牌来确定它是否具有特定的api范围
  • 你试过谷歌吗?

标签: c# asp.net-core authorization identityserver4


【解决方案1】:

您可以使用 JwtSecurityTokenHandler 类来解码 Base64Encoded 访问令牌。然后您可以检查令牌的内容并确定它是否包含您期望的声明。

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多