如何使用MS Graph在Azure AD中获取目录扩展

时间:2017-09-13 15:00:39

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

我正在尝试查询添加到Azure AD中的用户对象的自定义目录扩展。我正在使用找到的解决方案here

我可以使用UserProfileController获取属性并更新Model以获得我们的自定义扩展属性(请参阅下面的两个代码片段)。

模型/ UserProfile.cs

public class UserProfile
{
    public string DisplayName { get; set; }
    public string GivenName { get; set; }
    public string Surname { get; set; }
    public string extension_ExtId_ExtName { get; set; }
}

查看/ UserProfile.cshtml

@model App.Models.UserProfile
<h2>@ViewBag.Title.</h2>
<table class="table table-bordered table-striped">
    <tr>
        <td>Display Name</td>
        <td>@Model.DisplayName</td>
    </tr>
    <tr>

        <td>First Name</td>
        <td>@Model.GivenName</td>
    </tr>
    <tr>
        <td>Last Name</td>
        <td>@Model.Surname</td>
    </tr>
    <tr>
        <td>Employee Id</td>
        <td>@Model.extension_ExtId_ExtName</td>
    </tr>
</table>
@if (ViewBag.ErrorMessage == "AuthorizationRequired")
{
    <p>You have to sign-in to see your profile. Click @Html.ActionLink("here", "Index", "UserProfile", new { reauth = true }, null) to sign-in.</p>
}
@if (ViewBag.ErrorMessage == "UnexpectedError")
{
    <p>An unexpected error occurred while retrieving your profile.  Please try again.  You may need to sign-in.</p>
}

我的目标是让扩展程序extension_ExtId_ExtName出现在用户列表中。我正在尝试使用解决方案的UsersController并查看以获取此信息,但似乎无法修改Microsoft Graph API用户模型。该模型设置为Microsoft Graph Client控制的IEnumerable<User>

如何添加自定义扩展程序以便我也可以从User对象中检索它?

我已经确认我可以通过用户对象获取它,方法是转到Graph Explorer并将我的请求URL设置为:

https://graph.microsoft.com/beta/users('{user@email.com}')?select=extension_EXTENSION-ID_extensionName

由于

1 个答案:

答案 0 :(得分:0)

我认为这里的部分问题是你要混淆两种不同的API。有Microsoft Graph APIAzure Active Directory Graph API;这是两个完全不同的API。虽然它们之间存在许多功能重叠,但它们之间的呼叫不可互换。

我建议改为查看这些Microsoft Graph API示例: