【问题标题】:How to delete gmail guest account using MS Graph API如何使用 MS Graph API 删除 gmail 访客帐户
【发布时间】:2020-05-18 07:37:38
【问题描述】:

我们正在尝试使用图形 API 从 AD 中删除来宾用户。为此,我们使用文档中描述的以下内容:

https://graph.microsoft.com/v1.0/users/{userPrincipalName}

如果用户是具有正常工作的 AD 域的用户,但对于具有 GMAIL 帐户的外部用户,userPrincipalName 的格式如下示例:

例如:serge.cal_gmail.com#EXT#@xxxx.onmicrosoft.com

当我尝试通过首先获取该用户的 ID 来获取该用户的 ID 时:

https://graph.microsoft.com/v1.0/users/serge.cal_gmail.com#EXT#@xxxx.onmicrosoft.com

返回错误如下:

{ "error": { "code": "Request_ResourceNotFound", "message": "资源 'serge.cal_gmail.com' 不存在或其查询的引用属性对象之一不存在。", "innerError ": { "request-id": "da8bdcda-6304-4c3c-93b2-6454433dcba2", "date": "2020-05-15T14:51:46" } } }

更新: 根据您作为测试的评论,我已手动对 userprincipal 进行编码并在 POSTMAN 下对其进行测试,从而返回正确的用户详细信息。

但问题是,由于我事先不知道将生成的用户 ID,因此我使用用户的 userPricipal 名称来获取用户 ID。在 Azure AD 帐户中,userPrincipal 大部分时间是电子邮件地址,这是我使用 API 调用获取用户信息的原因。

现在对于不基于外部 AD 的 GUEST 帐户的情况,问题是我必须获取用户的唯一方法是通过来宾帐户的 userPrincipal 并且当我检查我的用户 AD 个人资料时,我的 GUEST userPricipal 信息是如下图所示的电子邮件地址:

因此,通过使用此信息向 API 返回未找到资源的错误,这是因为如果我通过其 ID 获取用户(除了手动进入 AD 之外,我不知道这不是目标)我得到用户主体形成如下:

因此,在 Azure AD 屏幕中,GUEST 用户的真实 userPrincipal 形式以某种方式隐藏。

那么我怎样才能正确获取它呢?

1 - 通过电子邮件正常使用 API 2 - 然后捕获错误消息 3 如果出现错误,使用奇怪的语法重新格式化 userPrincipal ?

或者 API 是否提供获取访客帐户的可能性,然后从用户的访客响应列表中搜索我需要的电子邮件地址用户并获取它的 ID?

感谢建议

问候

【问题讨论】:

    标签: azure-active-directory microsoft-graph-api


    【解决方案1】:

    您需要对userPrincipalName 进行编码,然后将其放入图形 api 中(我在图形资源管理器中对其进行了测试)。你可以到这个page输入userPrincipalName对其进行编码,然后将结果复制到你的graph api,编码后的userPrincipalName如下:

    xxxxxx.com%23EXT%23%40xxxxx.onmicrosoft.com
    

    希望对你有帮助~

    【讨论】:

    • 感谢您的回复,最好对我所有的 userPrincipalName 进行编码,还是仅对不使用外部广告(如 gmail)的访客帐户进行编码?
    • 我忘了问,如何使用 groovy 脚本进行编码?
    • @SCW 如果用户是原生账号比如“xxx@xxx.onmicrosoft.com”,我们不需要使用编码的userPrincipalName,我们只需要使用它的电子邮件(不用编码)。您可以先通过graph explorer 中的一些本机帐户和一些来宾帐户进行测试,然后在您的代码中进行。
    • 嗨 @SCW 你可以使用这个 api(https://graph.microsoft.com/v1.0/users?$filter=userType eq 'Guest') 来过滤来宾帐户。
    • @SCW 不,我在我这边测试,它不能实现这个特殊要求。
    猜你喜欢
    • 2016-09-28
    • 2021-09-29
    • 2022-01-15
    • 1970-01-01
    • 2016-01-08
    • 2019-01-10
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多