Azure AD Graph API邀请端点

时间:2018-08-23 10:30:39

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

我需要在B2B Azure AD上对用户执行多项操作。

我可以通过以下端点成功创建/读取/更新/删除用户:https://graph.windows.net/mytenant.onmicrosoft.com/users?api-version=1.6

但是我不知道如何找到合适的端点来邀请租户中的访客用户。 documentationhttps://graph.microsoft.com/v1.0/invitations,但是使用此端点,我总是遇到此错误:

{
   "error":{
      "code":"InvalidAuthenticationToken",
      "message":"Access token validation failure.",
      "innerError":{
         "request-id":"cb182623-39c1-4489-b649-d209d9c8d7fa",
         "date":"2018-08-23T09:53:32"
      }
   }
}

如果我尝试构建一个类似于用户https://graph.windows.net/mytenant.onmicrosoft.com/invitations?api-version=1.6的端点,则会得到以下信息:

{
   "odata.error":{
      "code":"Request_ResourceNotFound",
      "message":{
         "lang":"en",
         "value":"Resource not found for the segment 'invitations'."
      }
   }
}

如果我尝试使用邀请文档为用户提供的端点https://graph.microsoft.com/v1.0/users,则会收到相同的错误:

{
   "error":{
      "code":"InvalidAuthenticationToken",
      "message":"Access token validation failure.",
      "innerError":{
         "request-id":"80d0c785-7769-4d8c-a6a6-82fb67f30ffa",
         "date":"2018-08-23T09:51:37"
      }
   }
}

所以我想这不是令牌问题,而是端点问题。如果有人可以给我很好的方法来执行此邀请,将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要为Microsoft Graph API获取另一个访问令牌。 获取令牌时,请使用资源public static void SendEMail(string to, string subject, string body) { SmtpClient smtpClient = new SmtpClient("smtp.mail.yahoo.com", 587); smtpClient.EnableSsl = true; smtpClient.UseDefaultCredentials = false; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.Credentials = new NetworkCredential("my@com.pl", "12345!"); MailMessage mailMessage = new MailMessage("\"" + Info.SiteName + "\" <" + Info.EMail + ">", "recipient1@gmail.com"); mailMessage.Bcc.Add("recipient2@gmail.com"); mailMessage.Bcc.Add("recipient3@gmail.com"); mailMessage.Bcc.Add("recipient4@gmail.com"); mailMessage.Bcc.Add("recipient5@gmail.com"); mailMessage.Bcc.Add("recipient6@gmail.com"); mailMessage.IsBodyHtml = true; mailMessage.Priority = MailPriority.High; mailMessage.Body = body; mailMessage.BodyEncoding = System.Text.Encoding.UTF8; mailMessage.Subject = subject; mailMessage.SubjectEncoding = System.Text.Encoding.UTF8; smtpClient.Send(mailMessage); } 。 然后使用https://graph.microsoft.com发送邀请。

您具有Azure AD Graph API的访问令牌,并且不适用于Microsoft Graph API。