如何将B2C Federated用户定向到Microsoft通用登录端点

问题描述 投票:1回答:1

我正在使用Azure AD B2C并添加了登录/注册自定义模板和策略。我在前端使用msal.js。

当任何用户尝试登录我们的应用程序时,我们有进程知道该域是否已与Microsoft B2C联合。一旦我们识别出用户,我们希望通过传递login_hint将用户定向到Microsoft公共登录端点,这样他们就会被迫使用工作帐户并获得id_token。

我试图让端点工作(需要传递login_hint,不知道如何)

directauthority ="https://login.microsoftonline.com/common/oauth2/authorize?"+ this.Config.signUpSignInPolicy;

clientApplication = new Msal.UserAgentApplication(
    this.tenantConfig.clientID, this.directauthority, 
    );

我收到错误“endpoints_resolution_error:无法解析端点”

我该如何解决这个问题?

请建议

谢谢,

angularjs azure-ad-b2c
1个回答
0
投票

您可以将“domain_hint”和“login_hint”参数添加到Azure AD B2C请求:

https://login.microsoftonline.com/<tenant>/oauth2/v2.0/authorize?p=<policy>&...&domain_hint=onmicrosoft.com&[email protected]

如果将“domain_hint”参数设置为Azure AD技术配置文件的<Domain />值,则Azure AD B2C将重定向到Azure AD端点,而不向最终用户显示注册或登录页面。

要将“login_hint”参数从Azure AD B2C传递到Azure AD端点:

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

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

2)将“loginHint”输入声明添加到Azure AD技术配置文件:

<ClaimsProviders>
  <ClaimsProvider>
    <Domain>onmicrosoft.com</Domain>
    <DisplayName>Work Account</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="WorkProfile">
        <DisplayName>Work Profile</DisplayName>
        <Protocol Name="OpenIdConnect"/>
        <OutputTokenFormat>JWT</OutputTokenFormat>
        <Metadata>
          ...
        </Metadata>
        <CryptographicKeys>
          ...
        </CryptographicKeys>
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="loginHint" PartnerClaimType="login_hint" DefaultValue="{OIDC:LoginHint}" />
        </InputClaims>
        <OutputClaims>
          ...
        </OutputClaims>
        <OutputClaimsTransformations>
          ...
        </OutputClaimsTransformations>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
</ClaimsProviders>

“loginHint”输入声明引用声明解析程序,该声明解析程序将此输入声明值设置为Azure AD B2C请求的“login_hint”参数。

© www.soinside.com 2019 - 2024. All rights reserved.