如何通过Azure AD B2B api发送邀请后立即设置来宾用户的hireDate属性?

问题描述 投票:0回答:1

我正在尝试使用Azure AD B2B api邀请访客用户访问我的Office 365租户,目的是在邀请发送后立即设置访客用户的hireDate属性。对我来说,客人没有必要兑换邀请。问题是,当我试图修补用户更新hireDate属性时,代码失败(错误消息:无法检查AD中的用户存在),无论客户是否兑换邀请。如果我在发送邀请后等待一分钟左右然后尝试修补用户,则不会出现此问题。如何在不等待的情况下设置此属性?

为了解决这个问题,我已经尝试实现重试逻辑,但这不可靠。

var token = extranetHelper.GetAuthToken(); //Custom class to get token
var guestEmail = "[email protected]";
var siteURL = "https://tenant.sharepoint.com/sites/abc";
var displayName = "";
Invitation guestInvitation = 
GraphUtility.InviteGuestUser(token.AccessToken, guestEmail, siteURL, "", displayName);                                        
var guestUserId = guestInvitation.InvitedUser.Id;
var graphUrl = "https://graph.microsoft.com/beta/users/" + guestUserId;
var body = "{\"hireDate\" : \"" + DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") + "\"}";
var response = GraphHttpClient.MakePatchRequestForString(graphUrl, JsonConvert.DeserializeObject(body), "application/json", token.AccessToken);

应为Azure AD中新创建的guest用户设置hireDate属性。

azure-ad-graph-api azure-ad-b2b
1个回答
0
投票

据我所知,目前没有办法避免这种延迟,因为有时需要30分钟到一个小时才能改变状态。

由于Graph API目前无法检查此问题,因此我们可以使用Azure AD报告API来检查此状态。我们可以获取Update用户事件并检查UserState以查看是否邀请它来实现目标。有关Azure AD报告API的更多详细信息,您可以使用此link

您可以为Azure留下反馈,以减少此延迟here

© www.soinside.com 2019 - 2024. All rights reserved.