我已通过SAML成功将Azure B2C设置为IDP,并且正确获取了namedName,objectId,姓,userPrincipalName的断言。
当用户使用电子邮件地址jdoe@company.com进行注册时,会在B2C中以guid@b2ctenant.onmicrosoft.com格式自动生成一个upn。
我想在SAML断言中获取实际的登录电子邮件地址,在本例中为jdoe@company.com。
我尝试了以下所有选项,但SAML断言没有电子邮件地址。
const photos = [
{ src: thumbsup, width: 4, height: 3 },
{ src: 'https://source.unsplash.com/Dm-qxdynoEc/800x799', width: 1, height: 1 },
{ src: 'https://source.unsplash.com/qDkso9nvCg0/600x799', width: 3, height: 4 }
];
在Chris Padgett的回复之后更改。但仍然没有电子邮件。
{
src: {
thumbsup: "/..../....png"
},
width: 4,
height: 3
}
答案 0 :(得分:0)
1)确保使用 SAML2 协议的声明类型声明电子邮件声明:
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="email" />
<Protocol Name="OpenIdConnect" PartnerClaimType="email" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/email" />
</DefaultPartnerClaimTypes>
...
</ClaimType>
2)确保 AAD-UserReadUsingObjectId 技术资料将电子邮件声明读为输出声明:
<TechnicalProfile Id="AAD-UserReadUsingObjectId">
...
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
</OutputClaims>
...
</TechnicalProfile>