【问题标题】:Empty POST /users Request BY OKTA server, causes internal server error空 POST /users Request BY OKTA 服务器,导致内部服务器错误
【发布时间】:2017-06-11 19:22:35
【问题描述】:

我正在尝试使用使用 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 来创建新用户。

【问题讨论】:

    标签: json mongodb okta okta-api scim


    【解决方案1】:

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

    作为起点,我建议使用Okta's example SCIM server,即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

    【讨论】:

    • 感谢您的帮助,但我找到了另一个合适的解决方案@joel
    【解决方案2】:

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

    【讨论】:

    • 对于任何回到这篇文章的人,对于 ExpressJS,如果你使用 body-parser,你可以通过设置 bodyParser.json({ type: 'application/scim+json' }) 来允许它
    • type: ['application/json', 'application/scim+json']:D
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 2019-01-03
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2012-03-29
      相关资源
      最近更新 更多