Azure ad b2c Azure B2C API管理多租户jwt验证
azure B2C中是否有一个公共端点可用于验证多个azure B2C租户颁发的令牌,如在普通azure AD中:() 普通azure AD的jwt令牌验证示例:Azure ad b2c Azure B2C API管理多租户jwt验证,azure-ad-b2c,azure-api-management,Azure Ad B2c,Azure Api Management,azure B2C中是否有一个公共端点可用于验证多个azure B2C租户颁发的令牌,如在普通azure AD中:() 普通azure AD的jwt令牌验证示例: <validate-jwt header-name="authorization" failed-validation-httpcode="401" failed-validation-error-message="GWT FAIL" output-token-vari
<validate-jwt header-name="authorization" failed-validation-httpcode="401" failed-validation-error-message="GWT FAIL" output-token-variable-name="jwt">
<openid-config url="https://login.microsoftonline.com/common/.well-known/openid-configuration" />
</validate-jwt>
关于不,没有。每个租户都是他们自己的身份提供商,没有常规AAD中的“多路复用器”。在B2C中,如果您将技术配置文件配置为从azure ad返回access\u令牌,那么您可以使用
access\u令牌
中的issuer claimiss
查找发卡机构并将其用于jwt验证。这显示了如何返回访问令牌
例如,下面的技术配置文件返回一个访问令牌
,该令牌带有一个声明iss
,其值为”https://sts.windows.net/12340-123120-112112323/“
可用于验证令牌
<TechnicalProfiles>
<TechnicalProfile Id="AzureADProfile_issueAADtoken">
<DisplayName>AzureAD User</DisplayName>
<Description>AzureAD Account</Description>
<Protocol Name="OAuth2" />
<OutputTokenFormat>JWT</OutputTokenFormat>
<Metadata>
<Item Key="AccessTokenEndpoint">https://login.microsoftonline.com/common/oauth2/v2.0/token</Item>
<Item Key="authorization_endpoint">https://login.microsoftonline.com/common/oauth2/v2.0/authorize</Item>
<Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
<Item Key="DiscoverMetadataByTokenIssuer">true</Item>
<Item Key="HttpBinding">POST</Item>
<Item Key="response_types">code</Item>
<Item Key="scope">openid</Item>
<Item Key="UsePolicyInRedirectUri">false</Item>
<Item Key="ValidTokenIssuerPrefixes">https://sts.windows.net/</Item>
</Metadata>
<CryptographicKeys>
<Key Id="client_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
<OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="displayName" />
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="surname" />
<OutputClaim ClaimTypeReferenceId="userPrincipalName" PartnerClaimType="userPrincipalName" />
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
<OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
</OutputClaims>
<OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
</TechnicalProfiles>
AzureAD用户
AzureAD账户
JWT
https://login.microsoftonline.com/common/oauth2/v2.0/token
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
授权标头
真的
邮递
代码
openid
假的
https://sts.windows.net/
好的,谢谢您的快速回答!因此,在azure apimanagement中验证多个B2C租户发行的代币是不可能的(对于同一个api)?因为您能够将C#代码输出到这些策略中,所以可能是有可能的:)但我不知道您如何在APIM中为每个AAD B2C添加授权元素。AAD B2C没有像AAD Common endpoint那样的通用问题。