Azure AD附加' #EXT#'到UserPrincipalName

时间:2016-03-01 16:13:09

标签: azure azure-active-directory azure-ad-graph-api azure-ad-b2c

当我们使用Graph API在Active Directory中创建用户时,一些字符会附加到用户名(#EXT#)。这使得无法在AD B2C的界面(documented problem)中编辑用户或使用ADAL 2.23(Active Directory身份验证库)进行登录。

AD B2C interface problem

特别是,当我们使用unknown_user_type方法时,会出现错误(AcquireToken(username, password))。错误如下:

ADAL error

为什么会这样?这个问题有什么解决方案或解决方法吗?

问候。

1 个答案:

答案 0 :(得分:4)

在UserPrincipalName中具有#EXT#的用户(UPN,在多个地方也模糊地称为"用户名")通常是来自其他身份提供商的用户。这包括:

  1. 常规目录:添加了Microsoft帐户(MSA)的用户
  2. 常规目录:Azure AD中其他目录中的用户
  3. B2C目录:几乎所有B2C用户都有此
  4. 常规目录

    如果您的应用程序知道Azure AD目录,那么用户正在尝试登录,并且您正在使用特定于租户的端点https://login.microsoftonline.com/<domain or ID>,而不是与租户无关的端点端点https://login.microsoftonline.com/common,案例(1)和(2)中的用户应该能够使用ADAL使用应用程序登录。登录时,他们会使用MSA的常规用户名或他们的&#34; home&#34; 。目录

    示例:目录bob@contoso.com中的用户contoso作为外部用户添加到目录fabrikam中。这会导致fabrikam中的用户使用UPN bob_contoso.com#EXT#@fabrikam.onmicrosoft.com,但您不必担心这一点。当他们登录信任https:/login.microsoftonline.com/fabrikam.onmicrosoft.com的应用程序时,他们只需以bob@contoso.com登录并使用contoso中的常规密码。

    B2C目录

    Azure AD B2C感知应用程序始终使用特定于租户的端点,但它使用较新的&#34; v2&#34; OAuth 2.0端点:

    • https://login.microsoftonline.com/<domain or ID>/oauth2/v2.0/authorize
    • https://login.microsoftonline.com/<domain or ID>/oauth2/v2.0/token

    再次 - 用户将始终使用其家庭身份提供商登录。

    重要提示:请记住,Azure AD B2C目前处于预览(截至2106年3月)。

    <强> TL; DR

    您实际上不应该有任何想要更改用户的场景。 UserPrincipalName,如果它包含#EXT#,因为这意味着这实际上不是他们在登录时键入的用户名。