gpt4 book ai didi

azure - 通过 Azure API 管理网关从 AAD 获取 JWT-Token

转载 作者:行者123 更新时间:2023-12-03 04:17:15 26 4
gpt4 key购买 nike

我有一个托管在 Azure(Web 应用程序)中的 API。这个API不能被每个客户端访问目录(IP限制),我愿意使用API​​M来保护它。

用户将调用 APIM 网关,网关应做出适当响应。

一个大问题是身份验证:我正在使用 AAD 保护此 API(后端 API,而不是 APIM 网关端点)。因此,用户应该针对 AAD 进行身份验证,并在不直接访问后端的情况下访问资源。

这样的场景可以实现吗?

最佳答案

如果您同意用户通过 AAD 进行身份验证,那么它是完全受支持的。使用该模型,APIM 可以仅用于将用户请求传递到后端,或者您可以在请求处理管道中的某个位置使用 validate-jwt 策略来验证用户的 token 并授权调用的操作。

APIM 的授权服务器功能可用于记录您的 API 需要来自特定服务器的 AAD token 。如果完成此操作,开发人员门户上的测试控制台将显示控件,以简化获取 token 以对 API 进行测试调用的过程。

通常 APIM 要求客户端传递订阅 key 来验证和授权调用。但是,如果您依赖的 AAD 可能不是您想要的 - 那么您可以使用开放产品对 APIM 进行匿名调用。 validate-jwt 策略仍然可用于要求请求中包含特定 token 。

有多种方法可以确保您的后端只能通过 APIM 访问:

  1. 共享 key - 在 APIM 政策中设置特殊 header 并在后端检查其值。
  2. 客户端证书身份验证 - APIM 可以设置为将客户端证书附加到后端的每个请求,您将在后端检查该证书,以确保这是 APIM 发出的调用。
  3. VNET - APIM 可以加入您的 VNET,而后端可以设置为仅接受 VNET 内的调用,从而只能通过 APIM 进行调用。

关于azure - 通过 Azure API 管理网关从 AAD 获取 JWT-Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973296/

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