【问题标题】:Authenticate to custom OpenAM 12 authentication plugin via REST通过 REST 对自定义 OpenAM 12 身份验证插件进行身份验证
【发布时间】:2016-05-10 01:26:43
【问题描述】:

想知道如何进行身份验证(例如):

http://www.example.com:8080/openam/UI/Login?realm=CUR&module=CURAuthn

最好通过 REST over /json/authenticate POST JSON。

我猜是http://www.example.com:8080/openam/UI/Login?realm=CUR&authIndexType=module&authIndexValue=CURAuthn 对吗?

在任何情况下,此模块都不采用标准的 X-OpenAM-Username 或 X-OpenAM-Password 标头。

它需要一堆自定义字段,称为 ID 令牌。例如它使用 IDToken1, IDToken2, IDToken3, ...

我应该如何使用 json 身份验证服务将令牌提交到此插件?谢谢

【问题讨论】:

    标签: json rest http openam


    【解决方案1】:

    所有这些都在OpenAM's Developer's Guide 3.4 节中进行了解释。

    您的自定义模块的 REST URL 将是:

    http://www.example.com:8080/openam/json/authenticate?authIndexType=module&authIndexValue=CURAuthn

    如果您的模块不使用标准的用户名/密码凭据,您必须在请求正文中将您的凭据作为 JSON 传递。

    您首先向 OpenAM 发送一个空的 POST 请求:

    $ curl \
     --request POST \
     --header "Content-Type: application/json" \
     http://www.example.com:8080/openam/json/authenticate?authIndexType=module&authIndexValue=CURAuthn
    

    您应该会收到与此类似的响应(基于您的自定义回调):

    {
       "authId": "eyAid...GDYaEQ",
       "template": "",
       "stage": "Module11",
       "header": "Using CURAuthn",
       "callbacks": [
          {
             "type": "NameCallback",
             "output": [
                {
                   "name": "prompt",
                   "value": "FirstCallback"
                }
             ],
             "input": [
                {
                   "name": "IDToken1",
                   "value": ""
                }
             ]
          },
          {
             "type": "NameCallback",
             "output": [
                {
                   "name": "prompt",
                   "value": "SecondCallback"
                }
             ],
             "input": [
                {
                   "name": "IDToken2",
                   "value": ""
                }
             ]
          },
          //More callbacks here
       ]
    }
    

    之后,只需从用户输入中收集凭据,填写空值并将 JSON 有效负载提交回相同的 URL。确保在整个身份验证过程中使用相同的“authId”。

    我写了一个blog post 关于自定义身份验证链以及如何通过 REST 与它们通信。看看吧,也许会有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 2015-11-12
      • 2020-04-01
      • 2022-12-10
      • 2023-04-01
      • 2016-07-09
      • 1970-01-01
      相关资源
      最近更新 更多