通过Azure AD B2B API发送邀请后,如何设置访客用户的hiredDate属性?

时间:2018-12-27 08:45:05

标签: azure-ad-graph-api azure-ad-b2b

我正在尝试使用Azure AD B2B API在Office 365租户中邀请访客用户,目的是在邀请发送后立即设置访客用户的hiredDate属性。对我而言,客人不必赎回邀请。 问题是,当我试图修补用户以更新hiredDate属性时,无论来宾是否兑换邀请,代码都会失败(错误消息:无法检查AD中的用户是否存在)。如果我在发送邀请后等待一分钟左右,然后尝试修补用户,则不会发生此问题。如何不用等待就可以设置此属性?

要解决此问题,我已经尝试实现重试逻辑,但这并不可靠。

var token = extranetHelper.GetAuthToken(); //Custom class to get token
var guestEmail = "abc@abc.com";
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中新创建的来宾用户设置

hireDate属性。

1 个答案:

答案 0 :(得分:0)

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

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

您可以为Azure提供反馈,以减少此延迟here