1

我正在尝试使用使用 SCIM 端点的 OKTA 配置将数据从 OKTA 获取到我的本地数据库。

因此,我使用 NODE.js 和 MongoDB 作为数据库为我的 SCIM 2.0 测试应用程序(OAuth Bearer Token)创建了 scim 端点。当我将新用户分配给此应用程序时,OKTA 供应服务器发送 GET 请求,该请求以预期的输出响应。

因此,OKTA 服务器使用 /users 发送 POST 请求。但它的正文是空的,而不是包含有效的 JSON。所以我的 scim 端点响应错误,OKTA 显示错误 500。所以,让我知道 OKTA 服务器可能以哪种格式/部分(如 BODY、PARAMETERS)发送 USER JSON 来创建新用户。

4

3 回答 3

4

我建议使用Runscopengrok 之类的工具来帮助您调试 SCIM 服务器。

作为起点,我建议使用Okta 的示例 SCIM 服务器,它是用 Python 编写的,可以在 GitHub 上找到

在您的特定情况下,请确保您使用空响应响应 /Users 的 GET 请求。首先发出 GET 请求以检查用户是否已存在于您的系统中。

也就是说,我强烈建议您使用Okta 的一组 Runscope 测试来开发您的 Node.js SCIM 实现。Runscope 测试套件非常详尽,将帮助您确保您已经实现了与 Okta 一起使用所需的 SCIM 部分。

在此处了解有关 Okta 测试套件的更多信息:https ://developer.okta.com/standards/SCIM/#test-your-scim-server

于 2017-06-12T17:16:40.667 回答
3

它不是一个空请求,OKTA 使用application/scim+jsonas content-type,将您的服务器配置为接受标头并进一步处理它以查找 req 正文内容。

于 2017-06-13T13:56:07.453 回答
-2

OKTA 服务器未在 POST 调用的 BODY 中发送模式。它实际上使用事件驱动编程,所以,我不得不使用 req.on('data', callback)。和模式将存储在数据中。

于 2017-06-13T13:42:53.383 回答