通过 REST 对自定义 OpenAM 12 身份验证插件进行身份验证
Authenticate to custom OpenAM 12 authentication plugin via REST
想知道如何验证(例如):
http://www.example.com:8080/openam/UI/Login?realm=CUR&module=CURAuthn
最好通过 /json/authenticate 上的 REST 发布 JSON。
我猜 http://www.example.com:8080/openam/UI/Login?realm=CUR&authIndexType=module&authIndexValue=CURAuthn 正确吗?
在任何情况下,此模块都不采用标准 X-OpenAM-Username 或 X-OpenAM-Password headers。
它需要一堆自定义字段,称为 ID 令牌。例如,它使用 IDToken1、IDToken2、IDToken3、...
我应该如何使用 json 身份验证服务将令牌提交到此插件?谢谢
所有这些都在 OpenAM's Developer's Guide 第 3.4 节中进行了解释。
您的自定义模块的 REST URL 将是:
http://www.example.com:8080/openam/json/authenticate?authIndexType=module&authIndexValue=CURAuthn
如果您的模块不使用标准 username/password 凭据,您必须在请求正文中以 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 与它们通信的文章。看看,也许会有帮助。
想知道如何验证(例如):
http://www.example.com:8080/openam/UI/Login?realm=CUR&module=CURAuthn
最好通过 /json/authenticate 上的 REST 发布 JSON。
我猜 http://www.example.com:8080/openam/UI/Login?realm=CUR&authIndexType=module&authIndexValue=CURAuthn 正确吗?
在任何情况下,此模块都不采用标准 X-OpenAM-Username 或 X-OpenAM-Password headers。
它需要一堆自定义字段,称为 ID 令牌。例如,它使用 IDToken1、IDToken2、IDToken3、...
我应该如何使用 json 身份验证服务将令牌提交到此插件?谢谢
所有这些都在 OpenAM's Developer's Guide 第 3.4 节中进行了解释。
您的自定义模块的 REST URL 将是:
http://www.example.com:8080/openam/json/authenticate?authIndexType=module&authIndexValue=CURAuthn
如果您的模块不使用标准 username/password 凭据,您必须在请求正文中以 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 与它们通信的文章。看看,也许会有帮助。