本文可帮助解决调用Microsoft Entra ID SCIM API 进行用户和组管理的常见问题。
错误:401 - 身份验证令牌无效
症状
SCIM API 请求返回:
HTTP 401 Unauthorized
原因
请求不包括 HTTP Authorization 标头中的有效访问令牌。
解决方案
- 确认请求的 HTTP
Authorization标头中包含了 Bearer 令牌。 - 使用 https://jwt.ms/ 验证访问令牌
- 验证以下令牌声明:
iatexp
- 如果问题仍然存在:
- 收集失败 API 调用的详细信息
- 创建支持票证
错误:403 - 禁止
症状
SCIM API 请求返回:
HTTP 403 Forbidden
原因
SCIM API 客户端使用的应用注册没有所需的 API 权限,也没有授予管理员许可。
解决方案
- 查看 SCIM API 客户端使用的应用注册。
- 确认已分配的 Microsoft Graph API 权限符合 Microsoft Entra ID SCIM API 参考文档的描述:
- 确认已为所有分配的权限授予 管理员许可 。
- 如果问题仍然存在:
- 收集 API 请求详细信息
- 创建支持票证
错误:404 - 找不到资源
症状
以下 API 调用返回:
HTTP 404 Not Found
GET /users/{id}GET /groups/{id}
原因
请求中的 {id} 值无法解析为 Microsoft Entra ID 租户中的有效用户或组对象。
解决方案
- 请确认在 Microsoft Entra ID 租户中是否存在
{id}值。 - 如果问题仍然存在:
- 收集 API 请求详细信息
- 创建支持票证
错误:400 - 请求错误
症状
SCIM API 请求返回:
HTTP 400 Bad Request
此错误可能在以下过程中发生:
- 用户创建或更新操作
(POST /Users或PATCH /Users) - 组创建或更新操作
(POST /Groups或PATCH /Groups) - 用户或组筛选器查询
(GET)
原因
请求有效负载或查询参数不符合为 SCIM API 定义的约束,或引用无效的 SCIM 架构属性。
解决方案
- 对于
POST操作:- 确保在请求有效负载中包含所有必需属性。
- 对于
PATCH操作:- 确保请求符合 SCIM API 约束。
- 对于
GET操作:- 确认仅使用支持的 API 筛选器。
- 确保请求属性映射到有效的Microsoft Entra SCIM 架构属性。
- 使用更正重新发送请求。
- 如果问题仍然存在:
- 收集 API 请求详细信息
- 创建支持票证
错误:400 - 未启用 SCIM 预配 API 功能
症状
SCIM API 请求返回:
HTTP 400 Bad Request
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"detail": "No 'scimapiconsumptions' resource found for TenantId: <tenant-id>. Please ensure 'SCIM Provisioning API' feature is enabled and only one 'scimapiconsumptions' resource exists.",
"status": "400"
}
原因
在 Microsoft Entra 管理中心中,SCIM 预配 API 功能未启用,或者该功能所需的计费订阅尚未链接。 当管理员打开该功能并链接Azure订阅进行计费时,将创建Azure资源。 如果没有此资源,SCIM 服务将拒绝所有 API 调用。
解决方案
- 登录到 Microsoft Entra admin center。
- 导航到 ID 治理>仪表板。
- 在 SCIM 预配 API 磁贴上,选择 “入门”(如果先前已配置,则选择 “编辑”)。
- 链接Azure订阅,选择资源组,然后选择打开。
- 启用该功能后,请重试 SCIM API 请求。
有关详细步骤,请参阅 “启用 SCIM 预配 API”。
错误:500 - 内部服务器错误
症状
SCIM API 请求返回:
HTTP 500 Internal Server Error
原因
处理 SCIM API 请求时出现意外的服务器端错误。
解决方案
- 收集失败的 API 调用的详细信息。
- 创建支持票证。
错误:504 - 网关超时
症状
SCIM API 请求返回:
HTTP 504 Gateway Timeout
原因
SCIM 服务可能会返回间歇性 504 响应。
解决方案
- 收集失败的 API 调用及其错误和错误出现的时间段的详细信息。
- 如果问题仍然持续存在,请创建支持票证。
SCIM API 错误代码参考
下表列出了MICROSOFT ENTRA ID SCIM API 可以返回的所有错误代码。 使用此表可识别 SCIM API 请求故障排除时的错误及其原因。
注释
并非所有错误代码都适用于每个 API 终结点。 例如, BadRequest (400)解释可能因与 API 终结点关联的请求有效负载而异。 有关具体终端的详细信息,请参阅 Microsoft Entra ID SCIM API 参考。
| Error | 条件 | HTTP 状态代码 |
|---|---|---|
| 错误请求 | 请求有效负载或查询参数不满足 SCIM API 约束、缺少必需的属性或引用无效的 SCIM 架构属性。 | 400 |
| 错误请求 | 未启用 SCIM 预配 API 功能,或者未链接计费订阅。 错误详细信息涉及丢失的 Azure 资源。 | 400 |
| 错误请求 | 缺少 application/json 的 HTTP Accept 标头 | 400 |
| 无效的身份验证令牌 | 访问令牌为空或无效。 | 401 |
| 权限不足 | 权限不足,无法完成操作。 | 403 |
| 资源未找到 | 租户中的 URN 无效或指定的资源不存在。 | 404 |
| 内部服务器异常 | 服务无法处理请求。 | 500 |
| GatewayTimeout | SCIM 服务未在预期时间内响应。 | 504 |