Empty POST /users Request BY OKTA 服务器,导致内部服务器错误

Empty POST /users Request BY OKTA server, causes internal server error

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

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

因此,OKTA 服务器发送带有 /users 的 POST 请求。但它的主体是空的,而不是包含有效的 JSON。因此,我的 scim 端点响应错误,OKTA 显示错误 500。因此,让我知道 format/part(如 BODY、PARAMETERS)OKTA 服务器可能正在发送 USER JSON 以创建新用户。

我建议使用像 Runscope or ngrok 这样的工具来帮助您调试 SCIM 服务器。

作为起点,我建议使用 Okta's example SCIM server, which is written in Python and available on GitHub

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

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

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

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

这不是一个空请求, OKTA 使用 application/scim+json 作为 content-type,配置您的服务器以接受 header 并进一步处理它以找到请求 body 的内容。