#authentication #oauth-2.0 #authorization #openid #okta
#аутентификация #oauth-2.0 #авторизация #OpenID #okta
Вопрос:
У меня есть учетная запись Okta, которая выполняет аутентификацию с использованием OpenID и OAuth 2.0.
Существует единственное веб-приложение, в которое пользователи могут входить, и аутентификация проверяется в моем API с помощью id_token и access_token, сгенерированных виджетом входа Okta (веб-приложение).
Моим пользователям также потребуется выполнять запросы API непосредственно со своих серверов, а не через пользовательский интерфейс; однако виджету входа требуется перенаправление URL для получения токенов.
Как пользователи приложения могут извлекать токены из серверного кода, чтобы иметь возможность отправлять аутентифицированные запросы к моему API?
Ответ №1:
Okta поддерживает Resource Owner Password
поток, который может удовлетворить ваши потребности, поскольку он позволяет запрашивать учетные данные пользователя непосредственно из okta путем выполнения вызова rest api, например, так:
POST https://youroktadomain.com/oauth2/default/v1/token?grant_type=passwordamp;username=user1amp;password=11111amp;scope=openid
Okta предоставляет здесь очень хорошее пошаговое руководство по настройке Resource Owner Password
.
После выполнения этих шагов у вас будет два варианта:
- Создайте веб-API-приложение-оболочку okta. Это предоставит конечную точку входа, к которой будут обращаться ваши пользователи (вводом будет имя пользователя / пароль okta). Под занавес это приложение вызывает okta (через вызов rest), получает access_token и возвращает его пользователю
- Предоставьте своим пользователям прямой доступ к вызову okta
Первый вариант звучит предпочтительнее, потому что он дает вам некоторый контроль, в то время как второй не требует никаких усилий, но раскрывает ваши внутренние возможности.