Аутентификация в настраиваемом плагине аутентификации OpenAM 12 через REST

Хотелось бы знать, как пройти аутентификацию (например):

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

предпочтительно путем POSTing JSON через REST через / json / Authenticate.

Я предполагаю, что это будет http://www.example.com:8080/openam/UI/Login?realm=CUR&authIndexType=module&authIndexValue=CURAuthn правильно?

В любом случае этот модуль не принимает стандартные заголовки X-OpenAM-Username или X-OpenAM-Password.

Требуется множество настраиваемых полей, называемых токенами идентификатора. Например, он использует IDToken1, IDToken2, IDToken3, ...

Как мне отправить токены в этот плагин с помощью службы аутентификации json? Спасибо


person Wes    schedule 10.05.2016    source источник


Ответы (1)


Все это объясняется в OpenAM Developer's Руководство, раздел 3.4.

URL-адрес REST для вашего настраиваемого модуля будет:

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

Если ваш модуль не использует стандартные учетные данные имени пользователя и пароля, вам придется передать свои учетные данные в теле запроса как JSON.

Вы должны начать с отправки пустого запроса POST в OpenAM:

$ 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 в процессе аутентификации.

Я написал сообщение в блоге о пользовательских цепочках аутентификации и о том, как общаться с ними через ОТДЫХАТЬ. Взгляните, это может быть полезно.

person Guillermo R    schedule 10.05.2016