0

我们正在开发一个 SCIM API,在 OneLogin 和我们的应用程序之间的集成测试期间,我们总是遇到可以通过以下步骤重现的错误:

  1. 使用 xy@email.com(SCIM 用户名)在您的应用程序中创建用户
  2. 在 OneLogin 中使用相同的电子邮件地址创建用户
  3. 将此用户添加到您的应用程序
  4. OneLogin 应该认识到该用户已经在使用该 SCIM 应用程序,因此不需要进一步的配置操作。但是,我们收到“内部配置错误”

我可以验证我们的 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 返回“内部配置错误”

回复有问题吗?

谢谢你,彼得

4

2 回答 2

1

我发现了错误。在 OneLogin 中 firstName 和 lastName 是必需的,但在我们的应用程序中它们不是。当 OneLogin 获取我们的用户时,它无法解析结果,因为我们没有返回名字和姓氏。

于 2016-10-04T13:51:54.217 回答
0

实际上,我们的产品中的某些功能确实需要这些值:

具体来说,我们具有获取目标应用程序中所有用户的功能,然后我们允许应用程序管理员手动映射应用程序中的哪个用户与 OneLogin 目录中的哪个用户匹配(同步用户功能和关联用户)

这用于(无论出于何种原因)用户的 SCIM 用户名与 OneLogin 中的值不匹配并且需要手动与您的应用程序中的特定用户记录相关联的情况。

执行此操作的部分 UI 会显示应用程序中用户的名字/姓氏,以帮助识别他们。

我们的修复将不再需要这些字段(并且在发生这种情况时不会出现错误),但我们将开始仅通过他们的 SCIM 用户名和“未知”显示这些用户的名字/姓氏。

不是最好的用户体验,但希望你能看到这是我们在这种情况下能做的最好的。

于 2016-10-11T18:56:45.317 回答