我已将Azure Active Directory身份提供程序添加到我的APIM(从另一个租户中的AAD)。
我已使用它成功将Azure Active Directory组添加到我的APIM。
我现在要检查用户是否属于该组。
当我使用APIM用户/组时,可以使用此策略进行检查,但是当我使用Active Directory时,此策略始终失败,并显示401。
<policies>
<inbound>
<choose>
<when condition="@(context.User.Groups.Select(g => g.Name).Contains("org1"))">
<set-backend-service base-url="https://abc-apim.azure-api.net/org1app" />
</when>
<when condition="@(context.User.Groups.Select(g => g.Name).Contains("org2"))">
<set-backend-service base-url="https://abc-apim.azure-api.net/org2app" />
</when>
<otherwise>
<return-response>
<set-status code="401" reason="Unauthorized" />
<set-header name="WWW-Authenticate" exists-action="override">
<value>Bearer error="Invalid user group"</value>
</set-header>
</return-response>
</otherwise>
</choose>
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
该策略应如何检查用户是否属于Active Directory中的组?
答案 0 :(得分:0)
默认情况下,APIM不会拉入所有AAD组。有权访问APIM中的AAD组成员身份的唯一方法是将AAD组添加到APIM:https://docs.microsoft.com/bs-cyrl-ba/azure/api-management/api-management-howto-aad#add-an-external-azure-ad-group这样,您将在APIM组和AAD组之间创建映射。