2017-02-09 47 views
0

我正在开发一个与Azure AD Graph交谈的Web API以获取和更新用户和组信息。因此,我使用Windows PowerShell根据文章https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet实施了服务应用程序/服务主体。将自定义属性添加到在PowerShell中创建的Azure AD图形应用程序

我现在想为我的应用程序添加一些自定义属性,以便组可以有额外的字段。但是,当我通过其特定的应用程序ID引用它时,我只能在Azure门户中看到它,并且我无法使用AD图表RESTful API在https://graph.windows.net/ {mytenant} .onmicrosoft.com/applications或/ {mytenant } .onmicrosoft.com/applications/{objectId}/extensionProperties,因此无法使用相应的POST端点添加任何新的自定义属性。

将我的服务应用程序与租户中的其他企业应用程序进行比较,它也没有在企业应用程序刀片中显示发布商。

请任何人都可以建议这是否应该工作,如果是的话,我通过配置丢失了什么?

感谢

西蒙

+0

你有没有这个运气?我也试图通过Graph API创建用户。能够做到这一点,但似乎无法发布我的任何自定义属性。 – Raj

+0

嗨@Raj,是的,我没有得到它来添加一个自定义属性,虽然还没有尝试过用它做任何事情。 – SimonP

回答

2

你看到这里的问题是由于你跟着教程已经创建服务主体使用AAD PowerShell的,但是你正在寻找的是性能的事实在应用程序对象上。

你可以阅读更多关于差异here

应用对象

的天青AD申请通过其唯一应用 对象,该对象驻留在天青AD租户,其中应用程序是 定义注册,被称为应用程序的“家”租户。对象提供应用程序的身份相关信息,并且 是其对应的服务主体 对象被派生用于在运行时使用的模板。

考虑将应用程序对象作为您的 应用程序(用于所有租户)和服务主体 本地表示形式(用于特定租户)的全局表示形式。 Azure AD图应用程序实体定义了应用程序对象的模式。 因此,应用程序对象与软件应用程序具有1:1的关系,并与其对应的服务主体对象具有1:n的关系。

服务主要目的

服务主体对象定义一个 应用程序的策略和权限,安全主体提供了基础,在运行访问资源时以表示 应用-时间。 Azure AD ServicePrincipal实体定义服务主体对象的模式。

在Azure AD租户允许应用程序访问其所保护的资源的 之前,必须在给定租户的 中创建服务主体。服务负责人为Azure AD提供了 的基础,以确保应用程序能够访问该租户的用户拥有的资源。单租户应用程序将只有一个服务 委托人(在其租户中)。多租户Web应用程序 在每个租户中也有一个服务负责人,其中来自该租户的管理员或 用户已同意,允许其访问 其资源。在征得同意之后,服务主要对象将会被请求以供将来的授权请求使用 。

我的建议是先使用Graph API/Portal UX/PowerShell创建应用程序对象,然后通过更新您创建的应用程序的服务主体来遵循教程。

让我知道这是否有帮助!

+0

谢谢Shawn的建议。我确实设法得到这个工作。在通过门户创建应用程序注册后,我可以根据https://graph.windows.net/{my tenant guid}/applications?从API API REST调用返回的应用程序列表中看到它?api-版本= 1.6。之后,发布到https://graph.windows.net/{my tenant guid}/applications/my application guid} /extensionProperties?api-version=1.6是一件简单的事情,并将具有Group范围的属性分配给应用。 – SimonP

相关问题