Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure active directory 如何使用MS Graph API删除gmail来宾帐户_Azure Active Directory_Microsoft Graph Api - Fatal编程技术网

Azure active directory 如何使用MS Graph API删除gmail来宾帐户

Azure active directory 如何使用MS Graph API删除gmail来宾帐户,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我们正在尝试使用graph api从广告中删除来宾用户。为此,我们使用文件中描述的以下内容: {userPrincipalName} 如果该用户是一个具有正常工作的AD域的用户,但对于具有GMAIL帐户的外部用户,则userPrincipalName的格式如下示例所示: 示例:serge.cal_gmail.com#EXT#@xxxx.onmicrosoft.com 当我尝试获取该用户的ID时,首先使用以下方法获取其ID: 它返回一个错误,如下所示: {“error”:{“code”:“Req

我们正在尝试使用graph api从广告中删除来宾用户。为此,我们使用文件中描述的以下内容:

{userPrincipalName}

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

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

当我尝试获取该用户的ID时,首先使用以下方法获取其ID:

它返回一个错误,如下所示:

{“error”:{“code”:“Request_ResourceNotFound”,“message”:“Resource'serge.cal_gmail.com'不存在或其查询的引用属性对象之一不存在”,“innerError”:{“Request id”:“da8bdcdcdcdda-6304-4c3c-93b2-6454433dca2”,“date”:“2020-05-15T14:51:46”}

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

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

现在,对于不基于外部广告的GUEST帐户的情况,问题是我必须通过GUEST帐户的userPrincipal获取用户,当我检查我的用户广告配置文件时,我的GUEST userPrincipal信息是电子邮件地址,如下图所示:

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

因此,在Azure广告屏幕中,来宾用户的真实userPrincipal形式以某种方式隐藏

那么我如何才能正确地获取它呢

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

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

谢谢你的建议


关于

您需要对
userPrincipalName
进行编码,然后将其放入graph api中(我在graph explorer中对其进行测试)。您可以转到此处,输入
userPrincipalName
对其进行编码,然后将结果复制到图形api中,编码的
userPrincipalName
如下所示:

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

希望它有帮助~

您需要对
userPrincipalName
进行编码,然后将其放入graph api中(我在graph explorer中对其进行了测试)。您可以转到此处,输入
userPrincipalName
对其进行编码,然后将结果复制到图形api中,编码的
userPrincipalName
如下所示:

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

希望能有所帮助~

谢谢你的回复,对我所有的userPrincipalName进行编码还是只对不使用gmail等外部广告的Guest帐户进行编码更好?我忘了问,如何使用groovy脚本进行编码?@SCW如果用户是本地帐户,例如“xxx@xxx.onmicrosoft.com",我们不需要使用编码的
userPrincipalName
,我们只需要使用它的电子邮件(不需要编码)。您可以先通过一些本地帐户和一些来宾帐户进行测试,然后在您的代码中进行测试。Hi@SCW您可以使用此api(
https://graph.microsoft.com/v1.0/users?$filter=userType eq‘Guest’
)来过滤Guest帐户。@SCW不,我在我这边测试过,它无法实现这个特定的要求。谢谢你的回复,最好是对我所有的userPrincipalName进行编码,还是只对不使用gmail等外部广告的Guest帐户进行编码?我忘了问,如何使用groovy脚本进行编码?@SCW如果用户是本地帐户,例如“xxx@xxx.onmicrosoft.com“,我们不需要使用编码的
userPrincipalName
,我们只需要使用它的电子邮件(不使用do encode)。您可以先使用一些本机帐户和一些来宾帐户进行测试,然后在代码中进行测试。Hi@SCW您可以使用此api(
https://graph.microsoft.com/v1.0/users?$filter=userType eq‘Guest’
)来过滤Guest帐户。@SCW不,我在我这边测试它,它无法实现这个特定的要求。