Используйте внешнего IDP с API управления Edge. Используйте внешнего IDP с API управления Edge.

Базовая аутентификация — это один из способов аутентификации при вызовах API управления Edge. Например, вы можете сделать следующий запрос curl к API управления Edge, чтобы получить доступ к информации о вашей организации:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

В этом примере вы используете параметр curl -u для передачи учетных данных базовой аутентификации. Альтернативно вы можете передать токен OAuth2 в заголовке Bearer для выполнения вызовов API управления Edge, как показано в следующем примере:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

После включения внешнего IDP для аутентификации вы можете дополнительно отключить базовую аутентификацию. Если вы отключите базовую аутентификацию, все сценарии (такие как Maven, оболочка и apigeetool ), использующие вызовы API управления Edge, поддерживающие базовую аутентификацию, больше не будут работать. Необходимо обновить все вызовы API и сценарии, использующие базовую аутентификацию для передачи токенов доступа OAuth2 в заголовке Bearer .

Получайте и обновляйте токены с помощью get_token

Утилита get_token заменяет ваши учетные данные базовой аутентификации (а в некоторых случаях и пароль) на токен доступа и обновления OAuth2. Утилита get_token принимает ваши учетные данные и возвращает действительный токен доступа. Если токен можно обновить, утилита обновляет и возвращает его. Если срок действия токена обновления истечет, будут запрошены учетные данные пользователя.

Утилита get_token сохраняет токены на диске, готовые к использованию при необходимости. Он также выводит действительный токен доступа на stdout . Оттуда вы можете использовать расширение браузера, такое как Postman, или встроить его в переменную среды для использования в curl .

Чтобы получить токен доступа OAuth2 для выполнения вызовов API управления Edge:

  1. Загрузите пакет sso-cli :
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    Где EDGE_SSO_IP_DNS — это IP-адрес или DNS-имя компьютера, на котором размещен модуль Apigee SSO. Если вы настроили TLS в Apigee SSO, используйте https и правильный номер порта TLS.

  2. Разархивируйте пакет ssocli-bundle.zip , как показано в следующем примере:
    unzip ssocli-bundle.zip
  3. Установите get_token в /usr/local/bin , как показано в следующем примере:
    ./install -b PATH

    Опция -b указывает другое местоположение.

  4. Задайте для переменной среды SSO_LOGIN_URL URL-адрес входа в следующей форме:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Где EDGE_SSO_IP_DNS — это IP-адрес компьютера, на котором размещен модуль Apigee SSO. Если вы настроили TLS в Apigee SSO, используйте https и правильный номер порта TLS.

  5. (Только для SAML) В браузере перейдите по следующему URL-адресу, чтобы получить одноразовый код доступа:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Если вы настроили TLS в Apigee SSO, используйте https и правильный номер порта TLS.

    Этот запрос возвращает одноразовый код доступа, который остается действительным до тех пор, пока вы не обновите этот URL-адрес для получения нового кода доступа или не используете код доступа с get_token для создания токена доступа.

    Обратите внимание, что вы можете использовать пароль только при аутентификации с помощью SAML IDP. Вы не можете использовать пароль для аутентификации с помощью LDAP IDP.

  6. Вызовите get_token , чтобы получить токен доступа OAuth2, как показано в следующем примере:
    get_token -u EMAIL_ADDRESS

    Где EMAIL_ADDRESS — это адрес электронной почты пользователя Edge.

    (Только для SAML) Введите код доступа в командной строке в дополнение к адресу электронной почты, как показано в следующем примере:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    Утилита get_token получает токен доступа OAuth2, выводит его на экран и записывает его и токен обновления в ~/.sso-cli .

  7. Передайте токен доступа в вызов API управления Edge в качестве заголовка Bearer , как показано в следующем примере:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. После того, как вы впервые получите новый токен доступа, вы можете получить токен доступа и передать его вызову API с помощью одной команды, как показано в следующем примере:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

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

(Только для SAML) По истечении срока действия токена обновления get_token запросит новый код доступа. Прежде чем вы сможете создать новый токен доступа OAuth, вам необходимо перейти по URL-адресу, показанному выше на шаге 3, и создать новый пароль.

Используйте API управления для получения и обновления токенов.

Использование безопасности OAuth2 с API управления Apigee Edge показывает, как использовать API управления Edge для получения и обновления токенов. Вы также можете использовать вызовы Edge API для получения токенов, сгенерированных на основе утверждений SAML.

Единственное различие между вызовами API, описанными в разделе «Использование безопасности OAuth2 с API управления Apigee Edge», заключается в том, что URL-адрес вызова должен ссылаться на имя вашей зоны. Кроме того, для создания исходного токена доступа с помощью SAML IDP необходимо указать пароль, как показано на шаге 3 процедуры выше.

Для авторизации передайте зарезервированные учетные данные клиента OAuth2 в заголовке Authorization . Вызов выводит на экран токены доступа и обновления.

Получить токен доступа

(LDAP) Используйте следующий вызов API для создания токенов первоначального доступа и обновления:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) Используйте следующий вызов API для создания токенов первоначального доступа и обновления:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

Обратите внимание, что для аутентификации с помощью IDP SAML требуется временный код доступа, тогда как для IDP LDAP этого не требуется.

Обновить токен доступа

Чтобы позже обновить токен доступа, используйте следующий вызов, включающий токен обновления:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'