我想知道如何在Azure AD中为访客用户进行图形API调用。我能够使用给定here的API示例为内部用户实现它,但是相同的调用对guest用户不起作用。请求的方式有什么不同吗?
答案 0 :(得分:3)
租户中的访客帐户将拥有与其所在房屋中的UPN不同的用户主体名称。您应该能够通过查询租户中的所有用户以及查找具有“已修改”用户主体名称的外部用户(通常使用“EXT”)来查看此证据。
您可以在我们的演示租户here
中看到这方面的直接示例"userPrincipalName": "djayachandran.cw_mmm.com#EXT#@GraphDir1.onmicrosoft.com",
您似乎需要使用未更改旧UPN的其他属性来查询这些用户,例如'mail'属性。最终,您希望找到您感兴趣的用户的ObjectId,并将其用作查找用户信息的密钥。您应该能够从登录用户的令牌中获取对象ID。
如果这有帮助,请告诉我! 谢谢, Shawn Tabrizi
答案 1 :(得分:0)
@Shawn Tabrizi's answer above helped me achieve what I needed (get Azure AD group info for logged in user).
To get the user AD ObjectID from the identity claims, I used this:
using System.Linq;
using System.Security.Claims;
namespace HealthcareEfficiencyService_webApp.Helpers
{
public class ClaimsHelper
{
private readonly static string objectIdClaimsType = "http://schemas.microsoft.com/identity/claims/objectidentifier";
public static string getAdObjectId(ClaimsIdentity claimsIdentity)
{
return claimsIdentity.Claims.FirstOrDefault(x => x.Type == objectIdClaimsType).Value;
}
}
}