2

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

我们已经构建了一个自定义页面,我们在其中询问用户他们的电子邮件,然后使用domain_hint例如:domain_hint=facebook.com.

我想传递用户在第一步中输入的电子邮件地址,login_hint以便domain_hint用户在重定向到 IDP 页面 (Facebook.com) 时不必再次输入电子邮件。

我从 IDP 的 AD B2C 文档中获取了代码,并在 Facebook、Linkedin、Twitter 等的声明提供程序中添加如下,但它不起作用

<InputClaims>
    <InputClaim ClaimTypeReferenceId="logonIdentifier" PartnerClaimType="login_hint" DefaultValue="{OIDC:LoginHint}" />
</InputClaims>
<OutputClaims>
    <OutputClaim ClaimTypeReferenceId="logonIdentifier" Required="true" />
</OutputClaims>

有没有办法/选项来实现这一目标?

4

2 回答 2

3

对于上述身份提供者,Google 是唯一支持登录提示的,所以如果在 Azure AD B2C 请求中添加domain_hint和参数:login_hint

https://login.microsoftonline.com/te/<tenant>/<policy>/oauth2/v2.0/authorize?...&domain_hint=google.com&login_hint=someone@somewhere.com

然后您可以将“login_hint”参数从 Azure AD B2C 传递到 Google 端点,如下所示:

1) 创建一个“loginHint”声明类型:

<ClaimType Id="loginHint">
  <DisplayName>Login Hint</DisplayName>
  <DataType>string</DataType>
</ClaimType>

2) 将“loginHint”输入声明添加到 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>
于 2018-03-26T21:07:27.817 回答
0

请参阅此 PDF:使用登录名和域提示定位登录用户或域名

在自定义策略中使用登录提示。

要预填充登录名,请在您的自定义策略中覆盖 SelfAsserted-LocalAccountSignin-Email 技术配置文件。在该部分中,您将 signInName 声明的 DefaultValue 设置为 {OIDC:LoginHint}。{OIDC:LoginHint} 变量包含 login_hint 参数的值。Azure AD B2C 读取 signInName 输入声明的值,并预填充 signInName 文本框

于 2018-03-23T19:58:27.373 回答