gpt4 book ai didi

azure - 验证 Azure APIM 策略中的多个颁发者

转载 作者:行者123 更新时间:2023-12-05 02:05:15 24 4
gpt4 key购买 nike

我工作的公司多年来收购了多种产品。
我们一直在开发共享的微服务生态系统。
产品(当前)对不同的 IDP 进行身份验证(例如 Auth0、Azure B2C)。后端微服务可以很好地处理多个颁发者,但我们还希望在 API 网关 - Azure APIM 上进行身份验证检查,并在 JWT 访问 token 无效时进行短路。

如何在 Azure APIM 中验证多个颁发者?

docs ,我可以看到我可以指定多个颁发者,但只有 1 个 openid-config。如果只有 1 个 openid-config,如何获取多个发行者的公共(public)签名 key ?据推测,它会转到此获取 JWKS 端点,然后获取信息以验证 token 签名...

以下是我正在谈论的 APIM(入站)政策的一部分:

<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-signed-tokens="true">
<openid-config url="https://example-company.au.auth0.com/.well-known/openid-configuration" />
<audiences>
<audience>test</audience>
<audience>blah</audience>
</audiences>
<issuers>
<issuer>https://example-company.au.auth0.com</issuer>
<issuer>http://contoso.com/</issuer>
</issuers>
</validate-jwt>

最佳答案

只是为了澄清;我工作的公司有多种产品,每个产品都有一个单独的 IDP 和/或租户 - 基本上产品之间没有交叉使用。

validate-jwt 策略仅允许 1 个 openid-config 元素,但对于我的场景,我有多个 OpenId 配置...

我设法通过执行以下操作来解决此问题:

<choose>
<when condition="@(context.Request.Headers.GetValueOrDefault("X-ProductCode","") == "XYZ")">
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-signed-tokens="true">
<openid-config url="https://xyz.au.auth0.com/.well-known/openid-configuration" />
<audiences>
<audience>xyz-audience1</audience>
</audiences>
</validate-jwt>
</when>
<when condition="@(context.Request.Headers.GetValueOrDefault("X-ProductCode","") == "ABC")">
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-signed-tokens="true">
<openid-config url="https://abc.au.auth0.com/.well-known/openid-configuration" />
<audiences>
<audience>abc-audience1</audience>
<audience>abc-audience2</audience>
</audiences>
</validate-jwt>
</when>
</choose>

关于azure - 验证 Azure APIM 策略中的多个颁发者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63700252/

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