首页 文章

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

提问于
浏览
1

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

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

我试图让 endpoints 工作(需要传递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:无法解析 endpoints ”

我该如何解决这个问题?

请建议

谢谢,

1 回答

  • 0

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

    https://login.microsoftonline.com/<tenant>/oauth2/v2.0/authorize?p=<policy>&...&domain_hint=onmicrosoft.com&login_hint=me@contoso.com

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

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

    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"参数 .

相关问题