现有用户配置期间的内部配置错误
Internal Provisioning error during existing user provisioning
我们正在开发 SCIM API,在 OneLogin 和我们的应用程序之间的集成测试期间,我们总是 运行 出现错误,可以通过以下步骤重现该错误:
- 使用 xy@email.com(SCIM 用户名)在您的应用程序中创建一个用户
- 使用相同的电子邮件地址在 OneLogin 中创建一个用户
- 将此用户添加到您的应用程序
- OneLogin 应该认识到该用户已经在使用该 SCIM 应用程序,因此不需要进一步的配置操作。但是,我们得到了 "Internal Provisioning Error"
我可以验证我们的 API 已被调用,这里是与此流程相关的 2 个 SCIM 网络请求:
GET https://appurl/svc/scim/v1/Users?filter=userName+eq+"xy%40email.com"
{
"schemas": [
"urn:scim:schemas:core:1.0"
],
"totalResults": 1,
"itemsPerPage": 1,
"startIndex": 1,
"Resources": [
{
"userName": "xy@email.com",
"emails": [
{
"primary": true,
"value": "xy@email.com"
}
],
"id": "94724df5-2338-45a3-8b96-0f68afd273d4",
"schemas": [
"urn:scim:schemas:core:1.0"
]
}
]
}
GET https://appurl/svc/scim/v1/Users/94724df5-2338-45a3-8b96-0f68afd273d4
{
"userName": "xy@email.com",
"emails": [
{
"primary": true,
"value": "xy@email.com"
}
],
"id": "94724df5-2338-45a3-8b96-0f68afd273d4",
"schemas": [
"urn:scim:schemas:core:1.0"
]
}
第二次 GET 请求后 OneLogin returns with "Internal Provisioning Error"
回复有问题吗?
谢谢,
彼得
我发现了错误。在 OneLogin 中,名字和姓氏是必需的,但在我们的应用程序中它们不是。当 OneLogin 获取我们的用户时,它无法解析结果,因为我们没有 return 名字和姓氏。
我们实际上确实需要这些值来实现我们产品中的某些功能:
具体来说,我们具有获取目标应用程序中所有用户的功能,然后我们允许应用程序管理员手动映射应用程序中的哪个用户与 OneLogin 目录中的哪个用户匹配(同步用户功能和关联用户)
这用于以下情况(无论出于何种原因)用户的 SCIM 用户名与 OneLogin 中的值不匹配,他们需要手动与您应用中的特定用户记录相关联。
部分 UI 执行此操作会在应用程序中显示用户的名字/姓氏,以帮助识别他们。
我们的解决方案是不再需要这些字段(发生这种情况时不会出现错误),但我们将开始仅通过他们的 SCIM 用户名和 "UNKOWN" 显示这些用户 [=25] =].
不是最好的用户体验,但希望您能看到我们在这种情况下可以做到的最好。
我们正在开发 SCIM API,在 OneLogin 和我们的应用程序之间的集成测试期间,我们总是 运行 出现错误,可以通过以下步骤重现该错误:
- 使用 xy@email.com(SCIM 用户名)在您的应用程序中创建一个用户
- 使用相同的电子邮件地址在 OneLogin 中创建一个用户
- 将此用户添加到您的应用程序
- OneLogin 应该认识到该用户已经在使用该 SCIM 应用程序,因此不需要进一步的配置操作。但是,我们得到了 "Internal Provisioning Error"
我可以验证我们的 API 已被调用,这里是与此流程相关的 2 个 SCIM 网络请求:
GET https://appurl/svc/scim/v1/Users?filter=userName+eq+"xy%40email.com"
{
"schemas": [
"urn:scim:schemas:core:1.0"
],
"totalResults": 1,
"itemsPerPage": 1,
"startIndex": 1,
"Resources": [
{
"userName": "xy@email.com",
"emails": [
{
"primary": true,
"value": "xy@email.com"
}
],
"id": "94724df5-2338-45a3-8b96-0f68afd273d4",
"schemas": [
"urn:scim:schemas:core:1.0"
]
}
]
}
GET https://appurl/svc/scim/v1/Users/94724df5-2338-45a3-8b96-0f68afd273d4
{
"userName": "xy@email.com",
"emails": [
{
"primary": true,
"value": "xy@email.com"
}
],
"id": "94724df5-2338-45a3-8b96-0f68afd273d4",
"schemas": [
"urn:scim:schemas:core:1.0"
]
}
第二次 GET 请求后 OneLogin returns with "Internal Provisioning Error"
回复有问题吗?
谢谢, 彼得
我发现了错误。在 OneLogin 中,名字和姓氏是必需的,但在我们的应用程序中它们不是。当 OneLogin 获取我们的用户时,它无法解析结果,因为我们没有 return 名字和姓氏。
我们实际上确实需要这些值来实现我们产品中的某些功能:
具体来说,我们具有获取目标应用程序中所有用户的功能,然后我们允许应用程序管理员手动映射应用程序中的哪个用户与 OneLogin 目录中的哪个用户匹配(同步用户功能和关联用户)
这用于以下情况(无论出于何种原因)用户的 SCIM 用户名与 OneLogin 中的值不匹配,他们需要手动与您应用中的特定用户记录相关联。
部分 UI 执行此操作会在应用程序中显示用户的名字/姓氏,以帮助识别他们。
我们的解决方案是不再需要这些字段(发生这种情况时不会出现错误),但我们将开始仅通过他们的 SCIM 用户名和 "UNKOWN" 显示这些用户 [=25] =].
不是最好的用户体验,但希望您能看到我们在这种情况下可以做到的最好。