我们使用自定义SignIn / SigUp政策,将Facebook,LinkedIn,Twitter,Google+配置为社交IDP。
我们已经构建了一个自定义页面,我们向用户询问他们的电子邮件,然后使用domain_hint
将其重定向到特定的IDP页面(我们有围绕此建立的逻辑),例如:domain_hint=facebook.com
。
我想在login_hint
和domain_hint
的第一步中传递用户输入的电子邮件地址,以便用户在重定向到IDP时无需再次输入电子邮件Page(Facebook.com)。
我从ID B2的AD B2C文档中获取了代码,并在Facebook,Linkedin,Twitter等的索赔提供商中添加了以下内容
<InputClaims>
<InputClaim ClaimTypeReferenceId="logonIdentifier" PartnerClaimType="login_hint" DefaultValue="{OIDC:LoginHint}" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="logonIdentifier" Required="true" />
</OutputClaims>
有没有办法/选择来实现这个目标?
答案 0 :(得分:2)
对于上述身份提供商,Google是唯一支持登录提示的人,因此如果您将domain_hint
和login_hint
参数添加到Azure AD B2C请求中:
https://login.microsoftonline.com/te/<tenant>/<policy>/oauth2/v2.0/authorize?...&domain_hint=google.com&login_hint=someone@somewhere.com
然后你可以传递&#34; login_hint&#34;从Azure AD B2C到Google端点的参数如下:
1)创建一个&#34; loginHint&#34;索赔类型:
<ClaimType Id="loginHint">
<DisplayName>Login Hint</DisplayName>
<DataType>string</DataType>
</ClaimType>
2)添加&#34; loginHint&#34;输入对Google技术资料的声明:
<ClaimsProvider>
<Domain>google.com</Domain>
<DisplayName>Google Account</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="GoogleAccount-OAuth2">
<DisplayName>Google Account</DisplayName>
<Protocol Name="OAuth2" />
...
<InputClaims>
<InputClaim ClaimTypeReferenceId="loginHint" PartnerClaimType="login_hint" DefaultValue="{OIDC:LoginHint}" />
</InputClaims>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
答案 1 :(得分:0)
请参阅此PDF:Targeting a sign-in user or domain name using login and domain hint
在自定义政策中使用登录提示。
要在自定义策略中预填充登录名,请覆盖SelfAsserted-LocalAccountSignin-Email 技术简介。在该部分中,您将signInName的声明的DefaultValue设置为 {OIDC:LoginHint}。 {OIDC:LoginHint}变量包含login_hint参数的值。 Azure AD B2C 读取signInName输入声明的值,并预先填充signInName文本框