Azure active directory 通过Microsoft Graph API在Azure广告中邀请用户不会';行不通

Azure active directory 通过Microsoft Graph API在Azure广告中邀请用户不会';行不通,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,下面是我在Azure广告中邀请用户的代码 我收到一个“未经授权”的回复。我不确定缺少什么权限/设置。有人有这个想法吗 string accessToken=wait AuthenticationHelper.GetTokenForApplication(); InvitationModel invite=新的InvitationModel(); invite.invitedUserEmailAddress=user.Email; invite.inviteRedirectUrl=Configur

下面是我在Azure广告中邀请用户的代码

我收到一个“未经授权”的回复。我不确定缺少什么权限/设置。有人有这个想法吗

string accessToken=wait AuthenticationHelper.GetTokenForApplication();
InvitationModel invite=新的InvitationModel();
invite.invitedUserEmailAddress=user.Email;
invite.inviteRedirectUrl=ConfigurationManager.AppSettings[“inviteRedirectUrl”];
invite.sendInvitationMessage=true;
使用(HttpClient=newhttpclient()){
client.BaseAddress=新Uri(“https://graph.microsoft.com");
client.DefaultRequestHeaders.Accept.Add(
新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
client.DefaultRequestHeaders.Authorization=
新的AuthenticationHeaderValue(“承载者”,accessToken);
HttpResponseMessage响应=
client.PostAsJsonAsync(“v1.6/邀请”,invite).Result;
动态结果=
response.Content.ReadAsAsync().Result;
如果(inviteResult.status!=“Error”){
}

您的问题在于您将Microsoft Graph和Azure AD Graph混为一谈。这是两个不同的API,具有不同的调用转换和权限范围

为了实现此目的,您将需要以下之一(请注意,第一个是最严格的权限(全局),最后一个是最允许的):

  • User.Invite.All
  • User.ReadWrite.All
  • Directory.ReadWrite.All
请注意,所有这些作用域都是受管理员限制的,并且在使用它们之前需要

一旦您有了有效的令牌,您就需要调用
POST
https://graph.microsoft.com/v1.0/invitations具有以下主体:

{
“invitedUserEmailAddress”:yyy@test.com",
“URL”:https://myapp.com"
}

由于您使用的是C#,我强烈建议您使用自己的
HttpClient
调用,而不是手动调用。

v1.6?您可能混合了Azure AD Graph和Microsoft Graph。MS Graph目前的版本是v1.0和beta AFAIK。@juunas我已经用v1.0替换了它,但我仍然收到未经授权的错误。我可能缺少什么。消息:访问令牌验证失败我做了一些更改,现在看到此错误。应用程序“00000003-0000-0000-c000-000000000000”没有足够的权限执行请求的操作。ControllerName=MSGraphInviteAPI,ActionName=CreateInvite,但我已授予从azure portal向应用程序读/写广告数据的正确权限。我已将代码示例添加到另一个示例中。谢谢。您是否有Microsoft Graph Client Library示例代码的链接,因为我找不到任何链接在上有很多示例,但我建议先从示例开始。即使不使用UWP,其中的C代码也应该具有足够的可移植性。这也是一个很好的沙盒,可以用来玩SDK。谢谢,这个解决方案在新AzureADMSInvitation的Azure PowerShell Runbook场景中也对我有用