5

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

AD B2C接口问题

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

ADAL 错误

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

问候。

4

1 回答 1

7

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

  1. 常规目录:使用其 Microsoft 帐户 (MSA) 添加的用户
  2. 常规目录:来自 Azure AD 中其他目录的用户
  3. B2C 目录:几乎所有 B2C 用户都有这个

常规目录

如果您的应用程序知道用户尝试登录的 Azure AD 目录并且您使用的是特定于租户的端点,而不是与租户无关的端点,则情况 (1) 和 (2) 中的用户应该能够使用 ADAL 登录应用程序。登录时,他们将使用 MSA 或其“主”目录中的常规用户名。https://login.microsoftonline.com/<domain or ID>https://login.microsoftonline.com/common

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

B2C 目录

Azure AD B2C 感知应用程序始终使用特定于租户的端点,但它使用较新的“v2”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;博士

如果用户的 UserPrincipalName 包含 ,则实际上不应该有任何需要更改的情况#EXT#,因为这意味着这实际上不是他们在登录时输入的用户名。

于 2016-03-01T21:03:09.087 回答