Azure active directory userPrincipalName不能用于查询图形

Azure active directory userPrincipalName不能用于查询图形,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,在AzureAD中,我的用户具有以下用户名:firstName。Surname@live.se 我假设这是principalUserName,但当我查询Microsoft Graph时,它说它不存在: https://graph.microsoft.com/v1.0/users/firstName.Surname@live.se 当我改用id(GUID)时,我会返回用户,我可以看到userPrincipalName实际上是firstName.lasname\u live.se#EXT#@fir

在AzureAD中,我的用户具有以下用户名:
firstName。Surname@live.se

我假设这是
principalUserName
,但当我查询Microsoft Graph时,它说它不存在:

https://graph.microsoft.com/v1.0/users/firstName.Surname@live.se
当我改用
id
(GUID)时,我会返回
用户
,我可以看到
userPrincipalName
实际上是
firstName.lasname\u live.se#EXT#@firstNameSurnamelive.onmicrosoft.com

userPrincipalName
不能用于查询图形。如果我尝试,我会得到一个错误

“资源'firstName.nam姓氏_live.se'不存在或其查询的引用属性对象之一不存在。”

“资源'live.se'不存在或其查询的引用属性对象之一不存在。”

此帐户是我创建Azure帐户时使用的帐户。我使用了现有的电子邮件。我知道这就是它添加
#EXT#@firstNameSurnamelive.onmicrosoft.com
的原因,但在查询图形时如何使用它?或者这个账户不是用来做这个的


为了解决这个问题,我可以使用
id
而不是
userPrincipalName
来查询,但我已经读到
userPrincipalName
应该可以工作。如果我切换到
id
,如何获取授权过程创建的用户?

地址
名字。Surname@live.se
不是AAD帐户,而是消费者Microsoft帐户(又名Outlook.com,XBox Live)。您正在看到一个
userPrincipalName
firstName.lasname_live.se#EXT#@firstnameurnamelive.onmicrosoft.com
,因为他们是您的AAD租户中的“来宾”用户

出现此错误的原因是
firstName.lausname_live.se#EXT#@firstnameurnamelive.onmicrosoft.com
包含需要URL编码的保留字符。
#
尤其会引起问题,因为它表示URI片段的开始。片段完全是客户端的,不发送到服务器;这意味着Microsoft Graph在firstname.names\u live.se之后不会收到任何内容

要解决此问题,URL对
用户PrincipalName
进行编码,使其成为
firstName.names\u live.se%23EXT%23%40firstNameSurnamelive.onmicrosoft.com
。然后,您可以使用它正确地调用Microsoft Graph:

/v1.0/users/firstName.Surname_live.se%23EXT%23%40firstNameSurnamelive.onmicrosoft.com

我已经尝试了URL编码我的客人的UPN,但我仍然得到相同的错误。是否还有其他需要做的事情,或者有任何文档来解释这一点?