通过 Azure API 管理生成访问令牌并针对 IdentityServer4 进行验证
Generate Access Token and validate against IdentityServer4 through Azure API Management
我有一个外部端点,它将访问 Azure API 网关,并将其路由到受 IdentityServer4 授权保护的后端 API。
如果我使用来自 IdentityServer 的交互式 UI 通过 Postman 客户端访问它,我将获得访问令牌。
有没有一种方法可以让我从 Azure API 管理中获取所需的访问令牌,以根据 IdentityServer4 进行验证并将其附加到后端请求中的 header API?
Postman 可以让人类用户看到 UI 并授权 API 访问和 IdentityServer4 为 Postman 颁发令牌。当调用由 APIM 服务器处理时,就没有这种奢侈了,因为您可以向 IdentityServer4 发送令牌请求,但是谁会出现 UI 来授权该操作?
唯一的方法是向 APIM(header、查询、证书)提供某种秘密,IdentityServer4 可以识别该秘密以允许它为 API 发行令牌M.如果此类机密可用,您可以使用 send-request 策略来调用 IdentityServer4 并获取所需的令牌。
或者确保对 APIM 的每个请求都已经有一个令牌。
是的,可以通过自定义策略实现。您可以要求您的外部 API-Client/Consumer 在 heaser 中输入凭据,然后在入站内编写一个策略以读取这些用户凭据并执行 API 请求(类似于您的邮递员)并获得访问权限令牌。然后您可以附加相同的令牌并让您的请求转发到后端 API.
根据您的问题陈述,这应该可行。否则,您可能需要用更多 description/steps.
来解释您的场景
这里有一些参考资料,希望对你有所帮助。
https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#SendRequest
https://docs.microsoft.com/en-us/azure/api-management/api-management-sample-send-request
我有一个外部端点,它将访问 Azure API 网关,并将其路由到受 IdentityServer4 授权保护的后端 API。
如果我使用来自 IdentityServer 的交互式 UI 通过 Postman 客户端访问它,我将获得访问令牌。
有没有一种方法可以让我从 Azure API 管理中获取所需的访问令牌,以根据 IdentityServer4 进行验证并将其附加到后端请求中的 header API?
Postman 可以让人类用户看到 UI 并授权 API 访问和 IdentityServer4 为 Postman 颁发令牌。当调用由 APIM 服务器处理时,就没有这种奢侈了,因为您可以向 IdentityServer4 发送令牌请求,但是谁会出现 UI 来授权该操作?
唯一的方法是向 APIM(header、查询、证书)提供某种秘密,IdentityServer4 可以识别该秘密以允许它为 API 发行令牌M.如果此类机密可用,您可以使用 send-request 策略来调用 IdentityServer4 并获取所需的令牌。
或者确保对 APIM 的每个请求都已经有一个令牌。
是的,可以通过自定义策略实现。您可以要求您的外部 API-Client/Consumer 在 heaser 中输入凭据,然后在入站内编写一个策略以读取这些用户凭据并执行 API 请求(类似于您的邮递员)并获得访问权限令牌。然后您可以附加相同的令牌并让您的请求转发到后端 API.
根据您的问题陈述,这应该可行。否则,您可能需要用更多 description/steps.
来解释您的场景这里有一些参考资料,希望对你有所帮助。
https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#SendRequest
https://docs.microsoft.com/en-us/azure/api-management/api-management-sample-send-request