gpt4 book ai didi

IdentityServer4 多 API 访问,单一 token

转载 作者:行者123 更新时间:2023-12-03 23:17:20 24 4
gpt4 key购买 nike

我们有几个 API,我们希望通过客户端凭据流授予对客户端的访问权限。流程会像这样。

  • 客户端根据某个范围从 is4 获取 token
  • 客户端使用 token 访问第一个 API
  • 客户端需要使用相同的 token 点击第二个 API。

  • API 端点上的 token 授权似乎仅在 APIResource 与身份验证参数中的 APIName 匹配时才有效。

    您如何设置 APIResource/Scopes 以适应这种情况?

    最佳答案

    好的,我有机会尝试一下您的案例并找到解决方案。

    因此,如您所知,客户端凭据流基于(clientid 和客户端 secret 除外)ApiResoirces/Scopes 工作。

    您的 API 在其身份验证配置中具有:

  • ApiName - 用于 .NET Core API
  • RequiredScopes - 用于 .NET Framework API

  • 根据您的情况,您必须设置它们。

    这些是 APIResources/Scopes,您的 IDS 客户端应该在其允许的 scopes/api 资源 ( Client.AllowedScopes ) 中拥有。

    然后,当从 token 客户端请求客户端凭据时,您应该作为范围传递一个字符串,其中包含以间隔分隔的两个范围/apiresource( tokenClient.RequestClientCredentialsAsync("api1 api2"); )

    然后,您在响应中收到的访问 token 对您的两个 api 的调用都有效。

    您还有第二种选择,其中您的 api 使用一个且相同的范围/apiresource,但我认为这根本不是一个好方法。

    关于IdentityServer4 多 API 访问,单一 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48105339/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com