我们有几个API,我们希望通过客户端凭据流授予客户端访问权限。流程会像这样。
API端点处的令牌授权似乎仅在APIResource与身份验证参数中的APIName匹配时才有效。
如何设置APIResource / Scopes以便适应这种情况?
答案 0 :(得分:3)
好的,我有机会对你的情况有所帮助并找到解决方案。
因此,正如您所知,客户端凭据流程基于(除了clientid和客户端密钥)ApiResoirces / Scopes。
您的API在其身份验证配置中具有:
ApiName
- 适用于.NET Core API RequiredScopes
- 适用于.NET Framework API 根据您的情况,您必须设置它们。
这些是您的IDS客户端应具有的APIResources / Scopes,在其允许的范围/ api资源(Client.AllowedScopes
)中。
然后,在从令牌客户端请求客户端凭据时,您应该作为范围传递一个字符串,其中包含以interval(tokenClient.RequestClientCredentialsAsync("api1 api2");
)
然后,您在回复中收到的访问令牌对您的两个api的呼叫都有效。
您还有第二个选项,其中您的api使用同一个范围/ apiresource,但我认为这根本不是一个好方法。