Неверный сеанс при попытке создать сеанс в OKTA

Очень новичок в Okta Flow, пожалуйста, смиритесь с моим невежеством.

Я делаю poc для доступа к точке доступа с моего внешнего сайта, и точка доступа аутентифицируется через OKTA. Я хочу начать получать данные представления списка из точки общего доступа и размещать их на моем сайте.

1) В чем разница между аутентификацией с использованием потока имени пользователя и пароля (vs) с использованием токена для аутентификации в OKTA?

Шаг 1. Авторизация через имя пользователя / пароль и получение токена сеанса

Шаг 2. После этого я попытался создать сеанс в соответствии с документами:

http://developer.okta.com/docs/api/resources/sessions.html#create-session-with-session-token.

введите здесь описание изображения


person rao    schedule 01.03.2016    source источник
comment
Пожалуйста, проявите немного любви к этому вопросу, ребята :(, ударил большое время   -  person rao    schedule 02.03.2016
comment
Привет, Рао! Какой ответ в формате JSON вы получите при использовании метода первичной аутентификации из конечной точки / api / v1 / authn? Вы получаете значение sessionToken? Если это так, вы должны обменять этот sessionToken на сеанс достаточно быстро, чтобы ваш токен стал недействительным. Поэтому, если вы, например, используете Postman, попробуйте открыть 2 вкладки, одну с аутентификацией / первичной аутентификацией, а другую с сеансами / созданием сеанса с токеном сеанса. Как только вы получите ответ УСПЕХ от вкладки Первичная аутентификация, быстро скопируйте значение sessionToken и вставьте его в тело запроса Create Session.   -  person Raphael Londner    schedule 02.03.2016
comment
И дайте мне знать, как это происходит!   -  person Raphael Londner    schedule 02.03.2016
comment
Вам также необходимо убедиться, что у вас есть действующий ключ apiKey, который вы передаете нашему API при вызове конечной точки / api / v1 / sessions. Вы должны сделать это, добавив заголовок запроса авторизации, который начинается с SSWS, а затем содержит ваш ключ API Okta. Этот заголовок уже доступен в нашей коллекции сеансов почтальона, поэтому вам нужно только добавить его в другие инструменты, которые вы можете использовать. Если вы используете Postman, но он по-прежнему не работает, убедитесь, что у вас есть действующий ключ apiKey, который можно проверить, вызвав метод List Users в коллекции Users. Сообщите мне, если это решит вашу проблему!   -  person Raphael Londner    schedule 02.03.2016
comment
Рафаэль благодарит вас за вводные данные. Мне, наконец, удалось авторизоваться, чтобы получить токен сеанса, передать его и получить токен cookie. Спасибо за помощь :), пытаюсь понять, как я буду использовать этот файл cookie, подключиться к redirecturl и получить данные из приложения, подключенного к okta   -  person rao    schedule 02.03.2016
comment
Рао, не могли бы вы рассказать мне, что помогло вам в моих комментариях выше? Я хотел бы оставить реальный ответ на это обсуждение (и надеюсь, что вы добавите +1 :)).   -  person Raphael Londner    schedule 03.03.2016
comment
Что касается автоматизации аутентификации в SharePoint через Okta, я бы посоветовал следующее: 1. Возьмите ссылку для встраивания приложения из общих настроек вашего приложения SharePoint On Prem (в Okta) 2. Добавьте? Onetimetoken = [your_okta_session_token] (так что обратите внимание вам не нужно вызывать конечную точку / api / v1 / sessions в вашем случае) и создать Get HttpRequest из вашего кода. 3. Вы получите ответ SAML, который вам, скорее всего, потребуется проанализировать, а затем вызовете SharePoint, чтобы получить необходимый файл cookie SharePoint. Я не совсем уверен, как сделать остальное   -  person Raphael Londner    schedule 03.03.2016
comment
но, надеюсь, это обсуждение SO может справка (посмотрите пример кода Виктора Вилена, на который есть ссылка в конце обсуждения)   -  person Raphael Londner    schedule 03.03.2016
comment
@RaphaelLondner Мне не хватало той части, в которой мне нужен токен API, я предполагал, что поток пароля пользователя передаст мне токен, позже в ваших заметках я увидел, что поток передачи имени пользователя устарел. Я повторно просмотрел документацию, и тестовая клиентская страница API оказалась очень полезной (спасибо команде, которая документировала тестовую страницу API почтальона). Пожалуйста, опубликуйте, что мне нужны как токен API, так и токен сеанса для авторизации в комментарии, я приму это как ответ   -  person rao    schedule 03.03.2016
comment
Спасибо за ответ, и я передал автору документа ваш положительный отзыв о Postman API. Вы правы, что поток имени пользователя / пароля с конечной точкой / api / v1 / sessions устарел, и теперь вы должны использовать конечную точку / api / v1 / authn. Еще раз благодарим за отзыв и удачи в остальной работе с аутентификацией SharePoint.   -  person Raphael Londner    schedule 04.03.2016
comment
@Raphael мне удалось загрузить коллекции сеансов на тестовом клиенте почтальона и по-прежнему получить токен cookie с потоком пароля имени пользователя. При необходимости я вставлю снимок экрана, в коллекциях написано, что оно устарело, но я могу получить токен cookie, просто чтобы посмотреть   -  person rao    schedule 04.03.2016
comment
ты прав. Устаревший не означает, что он больше не работает в некоторых сценариях (например, в вашем). Как упоминалось в [Создать сеанс с помощью токена сеанса] (developer.okta.com/docs/api/resources/, полезные данные имени пользователя и пароля помечены как устаревшие, поскольку они не поддерживают весь процесс аутентификации. В частности, если пользователю необходимо пройти через Фактор проверки, этот метод не сможет создать действительный сеанс. Использование / authn API сначала проведет вас через процесс MFA, а затем позволит вам создать сеанс с помощью / sessions API.   -  person Raphael Londner    schedule 04.03.2016


Ответы (1)


Вероятно, у вас отсутствует действующий токен API Okta (см. Получение токена) при вызове конечной точки / api / v1 / sessions. В любом случае вы должны использовать конечную точку / api / v1 / authn для целей аутентификации, и для этого обычно не требуется токен api (если вы не хотите аутентифицировать его из доверенного приложения).

API / api / v1 / sessions с полезными данными имени пользователя и пароля устарел, поэтому вам следует избегать его использования в пользу / api / v1 / authn API.

Надеюсь, это поможет!

person Raphael Londner    schedule 04.03.2016