我在 Azure Active Directory 中有一个多租户应用程序。我们将它用于 sso(因此我们的客户可以使用他们的 azure 广告凭据登录我们的应用程序)。
我们想向用户配置文件添加更多信息。我们想从 Azure AD 中读取每个用户的属性值(因此管理员可以为 azure ad 中的每个用户设置此属性)。
可以说这个属性是“hair_color”。Azure 用户对象中不存在此属性。根据 Azure 文档,我可以使用以下方法创建扩展(https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-graphapi-directoryextensions-web/):
POST https://graph.windows.net/mydomain.com/applications/my_app_id/extensionProperties?api-version=1.21-preview { “name”: “hair_color”, “dataType”: “String”, “targetObjects”: [“User”] }
但是我在创建这个扩展时遇到了问题:
我需要一个访问令牌来执行这个请求。所以我需要使用我的管理员凭据登录并获取此 accessToken。现在我的应用程序没有管理员权限。而且我不喜欢更改我的应用程序的权限来添加一个简单的扩展。也因为这是一个我只打算执行一次的操作。
我找不到任何工具来做到这一点。我尝试使用门户、azure-cli 和图形资源管理器添加扩展(https://graphexplorer.cloudapp.net/ - 在这里我可以看到我的扩展,但我无法通过 POST 来创建扩展)。
是否有为我的应用创建 extensionProperties 的工具?或者至少是一种简单的方法来做到这一点。理想情况下,我想添加 extensionProperty 留下我的实际应用程序配置(保留权限和其他一切)。
PS:另外,我不确定:
- 这个扩展会出现在 Graph API 中吗?
- 管理员能否从 Web 浏览器更改此属性?或者他们是否需要更改它以同步他们的本地 azure 广告?