Получение UnauthorizedError после MFA в Onelogin Openid редиректе

Я тестирую доказательство концепции, используя php, без фреймворков. Я хочу использовать Onelogin с потоком подключения OpenID, чтобы подтвердить личность существующего пользователя (уже настроенного на Onelogin) с помощью Onelogin, а затем перенаправить его на мою страницу входа, чтобы завершить процесс. Я не могу найти ответы на аналогичные вопросы, поэтому я здесь.

Использование https://developers.onelogin.com/openid-connect/api/authorization-code Я настроил первый вызов API с OpenId Connect (OIDC) -> SSO -> Тип приложения установлен на Интернет, а конечная точка токена - на POST. С этим я могу пройти через поток после успешного входа в мою тестовую систему. Но это не возвращает никакой информации, идентифицирующей пользователя, поэтому я не могу подтвердить пользователя в нашей системе db.

Насколько я могу судить по всем примерам, здесь я вхожу в Onelogin и нормально использую MFA. У меня на телефоне есть Google Auth. Все выглядит хорошо. Затем я могу подтвердить, что вошел в Onelogin под своим тестовым пользователем.

У тестового пользователя нет Привилегий, так как мой конечный пользователь будет использовать Onelogin только для подтверждения личности в моей последней системе.

Так что я думаю, это нормально, если кто-то не заботится о подтверждении пользователя в инициирующей системе. Но мне это действительно нужно, поэтому, если я не пропустил что-то, я не могу использовать этот способ (Интернет).

Кроме того, я, кажется, могу войти в систему и перенаправиться обратно к моей тестовой системе входа в систему один раз, используя это, но затем, если я попытаюсь снова вскоре после того, как я получу UnauthorizedError. Это заставляет меня думать о том, чтобы сначала вывести пользователя из Onelogin, но нет, выход пользователя из системы не имеет никакого эффекта.

Итак, я попытался установить тип приложения как Native, надеясь, что мы перенаправимся обратно на мой URL-адрес перенаправления, который я установил в приложении, но затем я продолжаю получать UnauthorizedError после MFA, и я не могу пройти этот бит даже после проверки настройки ролей, политик и приложений.

Я пробовал Token Endpoint для всех вариантов, но я все еще получаю UnauthorizedError после MFA, или я вошел в Onelogin, но меня не перенаправляют на свой тестовый URL-адрес входа, установленный в настройках приложения.

Сейчас в растерянности и нужна помощь.

отредактировано для добавления - пользователь был добавлен в приложение, что я могу подтвердить через приложение и пользователя. Также я вижу, что в Activity для моего пользователя я вижу, что он говорит: «Выполнен вход в Openid Connect (OIDC)». Кажется, я вхожу в систему, но все еще получаю UnauthorizedError 401.


person santosvella    schedule 18.03.2019    source источник


Ответы (2)


Сначала выполняется аутентификация, затем авторизация. Таким образом, если вы аутентифицируетесь в Onelogin OK и получаете сообщение об ошибке «Неавторизовано», то при прочих равных условиях приложение OIDC, которое вы настроили в Onelogin, не имеет назначенного вам пользователя ни напрямую, ни через роль Onelogin.

Итак, проверьте свое приложение. Перейдите на вкладку Доступ. Посмотрите, кому назначено приложение. Убедитесь, что ваш тестовый пользователь назначен на эту роль. Или перейдите на вкладку Пользователи и проверьте, назначен ли ваш пользователь.

person niall_atlasidentity    schedule 18.03.2019
comment
Пользователю назначается роль, которую использует приложение. Я проверяю пользователя, который сообщает мне, что он уже является участником. Я проверил оба места, которые говорят об одном и том же. - person santosvella; 19.03.2019
comment
если из моих комментариев не было ясно, что роли уже настроены, и я все равно получаю сообщение об ошибке. Есть ли еще что-нибудь, что вызвало бы у меня такую ​​же ошибку? - person santosvella; 19.03.2019

Комментарий от @nial_atlasidentity правильный. Наиболее вероятный ответ здесь заключается в том, что ваш пользователь не привязан к вашему приложению OIDC.

Назначив пользователя, вы сможете завершить вторую часть поток кода аутентификации и получить информацию о пользователе из возвращенного id_token. Вы также можете использовать access_token, который возвращается, чтобы получить сведения о пользователе из конечной точки информации о пользователе.

Если вы хотите протестировать поток и проверить содержимое возвращенных токенов, я рекомендую использовать инструмент OIDC Inspector..

person Rich    schedule 18.03.2019
comment
Привет, Рич. Пользователь был назначен приложению. Я проверил это через пользователя и через приложение, но все равно получаю сообщение об ошибке. Есть ли другой параметр, который мог бы повлиять на это? - person santosvella; 19.03.2019
comment
@santosvella Пожалуйста, откройте заявку в службу поддержки с помощью OneLogin. Если вы укажете свой client_id в заявке, мы сможем изучить это дополнительно. https://onelogin.service-now.com/support - person Rich; 20.03.2019
comment
Спасибо, Рич. Я так понимаю, это будет идентификатор client_id приложения OIDC, а не client_id API? - person santosvella; 21.03.2019
comment
Да, приложение OIDC client_id. Спасибо. - person Rich; 23.03.2019