Okta OpenID Auth для пользовательских серверных приложений

#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 .

После выполнения этих шагов у вас будет два варианта:

  1. Создайте веб-API-приложение-оболочку okta. Это предоставит конечную точку входа, к которой будут обращаться ваши пользователи (вводом будет имя пользователя / пароль okta). Под занавес это приложение вызывает okta (через вызов rest), получает access_token и возвращает его пользователю
  2. Предоставьте своим пользователям прямой доступ к вызову okta

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