Я просматриваю OKTA. У меня настроено два сервера авторизации: по умолчанию и пользовательский. У меня есть клиент (веб-приложение), который настроен и правильно входит в систему. Я получаю ожидаемые id_token и access_token. Проблема, с которой я столкнулся, заключается в том, как мне вызвать api, который ожидает токен доступа от второго сервера авторизации? Как мне запросить токен доступа от имени вошедшего в систему пользователя (сервер аутентификации по умолчанию) со второго сервера аутентификации, не предлагая пользователю снова войти в систему? Все это делается в приложении mvc .net core.
как мне запросить токен доступа у второго сервера авторизации okta
Ответы (2)
В каждом из ваших приложений вы можете проверить наличие активного сеанса Okta. Если обнаружено, инициируйте поток OIDC AuthN.
Это конечная точка на клиенте, которую вы можете использовать для проверки наличия активного сеанса https://developer.okta.com/docs/api/resources/sessions#get-current-session
Вы можете использовать следующий URL-адрес авторизации, чтобы получить токен доступа или токен идентификатора
{{url}}/oauth2/{auth server ID}/v1/authorize?client_id={client id}&response_type=token&response_mode=fragment&scope=openid&nonce=nonce&state=state&redirect_uri={redirect url}
Получите идентификатор сервера аутентификации из URL-адреса, когда вы увидите посещение сервера в пользовательском интерфейсе.
Вышеупомянутый вызов требует активного сеанса, поэтому, если вы недавно подписали пользователя в первый раз с сервером аутентификации по умолчанию. Вам не нужно снова подписывать пользователя, чтобы получить токен для второго сервера аутентификации.