我正在开发一个与Azure AD Graph对话的Web API,以获取和更新用户和组信息。所以我使用Windows PowerShell根据https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet上的文章实现了服务应用程序/服务主体。
我现在想要为我的应用程序添加一些自定义属性,以便组可以有额外的字段。但是,当我通过其特定的应用程序ID引用它时,我只能在Azure门户中看到它,而且我无法在https://graph.windows.net/ {mytenant} .onmicrosoft.com上使用AD Graph RESTful API来访问它。 / applications或/{mytenant}.onmicrosoft.com/applications/{objectId}/extensionProperties,因此无法使用相应的POST端点添加任何新的自定义属性。
将我的服务应用程序与我租户中的其他企业应用程序进行比较,它也没有在企业应用程序刀片中显示发布者。
请任何人都可以告知这是否应该有效,如果是的话,我通过配置错过了什么?
感谢
西蒙
答案 0 :(得分:2)
您在此处看到的问题是由于您使用AAD PowerShell创建服务主体所遵循的教程,但您要查找的属性位于应用程序对象上。 / p>
您可以详细了解差异here。
申请对象
Azure AD应用程序由其唯一的应用程序定义 对象,驻留在应用程序所在的Azure AD租户中 注册,被称为申请"家庭"承租人。应用程序 object为应用程序提供与身份相关的信息,以及 是其对应的服务主体的模板 派生的对象在运行时使用。
将应用程序对象视为您的全局表示 应用程序(用于所有租户),以及服务主体 本地代表(用于特定租户)。 Azure AD 图形应用程序实体定义应用程序对象的模式。 因此,应用程序对象与...具有1:1的关系 软件应用程序,与其对应的n的1:n关系 服务主体对象。
服务主体对象
服务主体对象定义了策略和权限 应用程序,提供安全主体代表的基础 在运行时访问资源时的应用程序。 Azure AD Graph ServicePrincipal实体定义服务的模式 主要对象。
在Azure AD租户允许应用程序访问之前 它正在保护的资源,必须在服务主体中创建 给予房客。服务主体为Azure AD提供了基础 保护应用程序对用户拥有的资源的访问权限 承租人。单租户应用程序将只有一个服务 校长(在其房屋租户中)。多租户Web应用程序将 在每个租户中还有一个服务主管,管理员或 来自该租户的用户已经同意,允许其访问 他们的资源。经过同意,服务主体对象将会 有关未来的授权请求,请咨询。
我的建议是首先使用Graph API / Portal UX / PowerShell创建一个Application Object,然后通过更新您创建的应用程序的服务主体来遵循教程。
请告诉我这是否有帮助!