【发布时间】:2019-09-27 20:18:53
【问题描述】:
我需要一些有关 Azure API 管理服务的帮助。
目前,我们有一个 SinglePage 应用程序,它使用 Azure 上托管的两个后端服务 (WebApi .Net Core)。为了验证和授权用户,我们使用 IdentityServer(也托管在 Azure 上作为服务)+ SubscriptionService。这里 IdSrv 正在对用户进行身份验证,它还定义了 webapp 可以访问哪些 API。 SubscriptionService 包含用户是否有权访问给定 API 的信息。或多或少是这样的。
所以流程是: WebApp -> 重定向到 IdSrv 端点 -> 登录 -> 返回 UI -> 使用用户凭据(令牌)询问后端
现在,我们想要将 Azure API 管理添加到组合中,我正在努力如何做到这一点......
最初我们认为我们可以在 API 管理网关后面隐藏包括 IdentityServer 在内的所有内容,但看起来这没有意义或不可能。我发现这是一个有用的参考:Generate Access Token and validate against IdentityServer4 through Azure API Management 其中第二个答案非常重要。
基于此,我认为我需要让客户端使用 IdentityServer 进行身份验证,因为这需要 UI 交互,然后以某种方式在 API 管理中设置全局策略,以使用提到的发送请求策略授权用户。然后更改后端以接受此策略中的 JWT 令牌?我的想法正确吗?如何实施?
或者我应该只通过 API 管理传递来自客户端请求的授权标头?
所有这些东西对我来说都是新的,所以可能是我遗漏了什么或者搞砸了条款......
【问题讨论】:
标签: azure identityserver4 asp.net-core-webapi azure-api-management