我正在使用自定义策略,我看到内置策略中存在但自定义策略中不存在的字段“电子邮件”。有一个名为 otherMails
的声明。
emails
声明。 我正在使用入门包中的自定义策略。但是我不知道我应该更改哪个
TechnicalProfiles
。我尝试了几件事,但没有用。提前致谢!
最佳答案
编写本地帐户时:您必须使用“CreateOtherMailsFromEmail”声明转换从“email”声明创建“otherMails”声明,然后在“AAD-UserWriteUsingLogonEmail”技术配置文件中保留“otherMails”声明:
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
...
<IncludeInSso>false</IncludeInSso>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
</InputClaimsTransformations>
<InputClaims>
...
</InputClaims>
<PersistedClaims>
...
<PersistedClaim ClaimTypeReferenceId="otherMails" />
</PersistedClaims>
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="otherMails" />
</OutputClaims>
...
</TechnicalProfile>
然后,您必须从用于注册本地帐户的“LocalAccountSignUpWithLogonEmail”技术配置文件中传递“otherMails”声明:
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
...
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="otherMails" />
</OutputClaims>
</TechnicalProfile>
编写社交帐户时:“otherMails”声明已根据“电子邮件”声明创建,然后保留在“AAD-UserWriteUsingAlternativeSecurityId”技术配置文件中。
然后,您必须从用于注册社交帐户的“SelfAsserted-Social”技术配置文件中传递“otherMails”声明:
<TechnicalProfile Id="SelfAsserted-Social">
...
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="otherMails" />
</OutputClaims>
</TechnicalProfile>
读取本地或社交帐户时:“otherMails”声明已在“AAD-UserReadUsingObjectId”、“AAD-UserReadUsingEmailAddress”和“AAD-UserReadUsingAlternativeSecurityId”技术配置文件中读取。
然后,您必须从调用以恢复本地密码的“LocalAccountDiscoveryUsingEmailAddress”技术配置文件中传递“otherMails”声明:
<TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress">
...
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="otherMails" />
</OutputClaims>
</TechnicalProfile>
要将“otherMail”声明作为注册/登录和密码重置策略中的“电子邮件”发布:您必须将“otherMails”声明作为
<OutputClaim />
添加到依赖方策略中:<RelyingParty>
...
<TechnicalProfile Id="PolicyProfile">
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="otherMails" PartnerClaimType="emails" />
</OutputClaims>
</TechnicalProfile>
</RelyingParty>