我正在尝试通过 Graph API 创建组织品牌 不幸的是,它并不像记录的那样工作
curl --fail-with-body --silent --show-error --oauth2-bearer TOKEN -X PUT -H 'Content-Type: application/json' -d @- https://graph.microsoft.com/v1.0/organization/7c9674e7-ad41-482b-af13-fff7ba1c38f6/branding <<< '{
"backgroundColor":"#FFFF33",
"signInPageText":"Welcome",
"usernameHintText":"hint"
}'
{
'error': {
'code': 'Request_BadRequest',
'message': 'Specified HTTP method is not allowed for the request target.',
'innerError': {
'date': '2021-04-21T12:59:57',
'request-id': 'a5ce577c-d0a9-4888-9999-521d7ba452b1',
'client-request-id': 'a5ce577c-d0a9-4888-9999-521d7ba452b1'
}
}
补丁都不起作用:
curl --fail-with-body --silent --show-error --oauth2-bearer TOKEN -X PATCH -H 'Content-Type: application/json' -d @- https://graph.microsoft.com/v1.0/organization/7c9674e7-ad41-482b-af13-fff7ba1c38f6/branding <<< '{
"backgroundColor":"#FFFF33",
"signInPageText":"Welcome",
"usernameHintText":"hint"
}'
{
"error": {
"code": "Request_ResourceNotFound",
"message": "Resource '7c9674e7-ad41-482b-af13-fff7ba1c38f6' does not exist or one of its queried reference-property objects are not present.",
"innerError": {
"date": "2021-04-21T13:07:43",
"request-id": "c2c7056b-0043-40cb-82b8-6d262f190005",
"client-request-id": "c2c7056b-0043-40cb-82b8-6d262f190005"
}
}
我尝试打开 Azure 支持请求,但他们告诉我
AAD 开发人员队列正在经历大量请求。 请预计分配会出现延迟,因为在分配案件时会考虑案件严重性、排队时间、客户服务水平和业务影响。
既然 Azure 支持再次被证明毫无用处,也许这里有人可以帮助我? :)
根据我的测试,当我使用 PUT 方法时,我遇到了同样的错误。
但是 PATCH 对我来说效果很好。
id
应该是组织 ID 或租户 ID。
请先用
获取
id
GET https://graph.microsoft.com/beta/organization/
然后使用
id
进行 PATCH 方法:
PATCH https://graph.microsoft.com/v1.0/organization/{id}/branding
Content-Type: application/json
Content-Language: en-US
{
"backgroundColor": "#FFFF33",
"signInPageText": "Welcome",
"usernameHintText": "hint"
}
更新:
此端点不支持应用程序令牌。请参阅权限。
微软支持终于回复了(2个月后!)
目前不支持应用程序权限 端点,这意味着您将需要一个代表用户令牌 使用此端点的委派权限。
由于您的目标是自动化此过程,因此有一种解决方法 有时可行的是在您的租户中拥有一个专门的用户来 执行这些操作,并将通过 ROPC 流进行身份验证。这 流允许直接发送凭据信息(用户名和 密码),因此不需要 UI 或交互。
目前存在一个关于品牌端点的 GET 和 PATCH 方法的已知问题(已报告)和修复 正在处理。此问题将导致 404 错误,指出 未找到租户资源。
问题似乎与正在使用的区域设置有关,如果您希望获取/更新 默认品牌,您可以尝试包含一个标题吗 Accept-language为0(如下图所示),如果你想得到 对于任何其他区域设置的品牌,您需要通过有效的 ISO-639 语言环境。
根据 Graph API 文档,可以通过 API 检索和更新组织品牌。没有提到创建初始品牌。
我对新租户进行了测试,对于新租户,
PATCH /organization/{organizationId}/branding
请求失败,但如果首先手动完成公司品牌的初始配置,则请求会成功。
仅供参考,这是使用服务主体(即应用程序权限类型)进行测试的,这避免了依赖委托。
希望有帮助。