如何使用自定义策略

时间:2018-03-23 18:22:17

标签: azure-ad-b2c identity-experience-framework

我们使用自定义SignIn / SigUp政策,将Facebook,LinkedIn,Twitter,Google+配置为社交IDP。

我们已经构建了一个自定义页面,我们向用户询问他们的电子邮件,然后使用domain_hint将其重定向到特定的IDP页面(我们有围绕此建立的逻辑),例如:domain_hint=facebook.com

我想在login_hintdomain_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>

有没有办法/选择来实现这个目标?

2 个答案:

答案 0 :(得分:2)

对于上述身份提供商,Google是唯一支持登录提示的人,因此如果您将domain_hintlogin_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文本框

相关问题