Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
SAML поддерживает среду единого входа (SSO). Используя SAML с Edge, вы можете поддерживать единый вход для пользовательского интерфейса и API Edge в дополнение к любым другим службам, которые вы предоставляете и которые также поддерживают SAML.
Предварительное условие: вы должны включить SAML хотя бы для одной организации, прежде чем сможете использовать его для доступа к Edge API.
Различия между SAML и OAuth2
После настройки SAML его использование очень похоже на использование OAuth2 для доступа к Edge API . Когда вы вызываете Edge API, вы включаете в свой запрос токен доступа OAuth2.
Ключевое различие между SAML и OAuth2 при доступе к Edge API заключается в способе получения токенов. При использовании SAML при получении пары токенов вы должны включить следующее:
- Зоны: пользователи Edge for Public Cloud должны ссылаться на имя своей зоны при получении токенов.
- Код доступа: включите одноразовый код доступа при запросе пары токенов доступа/обновления.
SAML использует те же конечные точки в службе Edge OAuth2 с добавлением соответствующего имени зоны.
Чтобы получить токены доступа с помощью SAML, вы можете использовать один из следующих методов, описанных в этом разделе:
Кроме того, вы можете автоматизировать процесс генерации токенов для пользователей компьютеров, как описано в разделе Автоматизация процесса генерации токенов .
Получите токены доступа с помощью get_token
Вы можете использовать утилиту get_token
для обмена учетными данными для доступа OAuth2 и токенов обновления, которые вы используете с SAML.
Чтобы получить токен доступа с помощью get_token:
- Установите для переменной среды
SSO_LOGIN_URL
URL-адрес входа. URL-адрес входа имеет следующую форму:https://zoneName.login.apigee.com
Например, для зоны с именем «acme» установите для
SSO_LOGIN_URL
значение «https://acme.login.apigee.com», как показано в следующем примере:export SSO_LOGIN_URL=https://acme.login.apigee.com
- Вызовите
get_token
, чтобы получить токен доступа OAuth2:get_token -u me@example.com
Вам будет предложено посетить отображаемый URL-адрес, чтобы получить одноразовый код доступа:
Get passcode from https://acme.login.apigee.com/passcode [Note: Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:
Если вы недавно не входили в систему через своего поставщика удостоверений, вам будет предложено войти в систему.
Этот URL-адрес возвращает одноразовый код доступа, который остается действительным до тех пор, пока вы не обновите этот URL-адрес для получения нового кода доступа или не используете код доступа с
get_token
для создания токена доступа. Например: Введите пароль. Утилита
get_token
получает токены OAuth2, печатает токен доступа вstdout
и записывает токены доступа и обновления в~/.sso-cli
.- Вызовите Edge API и передайте токен доступа в заголовке
Authorization: Bearer
, как показано в следующем примере:curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Значение токена доступа можно скопировать из
stdout
.В этом примере получаются сведения о данной организации. Полный список конечных точек API управления см. в справочнике по API Apigee Edge .
Когда срок действия вашего токена доступа истечет, вы можете снова вызвать get_token
, чтобы получить новый токен доступа. Например:
get_token -u me@example.com
Вам не будет предложено ввести новый пароль до истечения срока действия токена обновления.
Когда срок действия токена обновления истечет, get_token
предложит вам ввести новый пароль. Прежде чем вы сможете создать новый токен доступа OAuth2, вам необходимо создать новый пароль.
Получите токены доступа с помощью службы Edge OAuth2.
Вы можете использовать службу Edge OAuth2 для получения токенов доступа, которые вы используете с SAML. Чтобы аутентифицировать себя с помощью Edge API, вы используете пароль в своем первоначальном запросе, чтобы получить пару токенов доступа/обновления, а затем снова, чтобы получить новую пару токенов.
Чтобы получить пару токенов с помощью Edge API:
- В браузере перейдите по следующему URL-адресу, чтобы получить одноразовый код доступа:
https://zoneName.login.apigee.com/passcode
Например, для зоны с именем «acme» перейдите по следующему URL-адресу:
https://acme.login.apigee.com/passcode
Если вы недавно не входили в систему через своего поставщика удостоверений, вам будет предложено войти в систему.
Этот URL-адрес возвращает одноразовый пароль, который действует как ваши учетные данные для получения токенов и остается действительным до тех пор, пока вы не обновите URL-адрес для получения нового пароля или вы не сможете использовать пароль с
get_token
для создания токена доступа. Например: - Отправьте запрос в Edge API, как показано в следующем примере:
curl https://zoneName.login.apigee.com/oauth/token \ -s \ -H "Accept: application/json" \ -d 'grant_type=password&response_type=token&passcode=passcode'
passcode действует как ваши учетные данные для авторизации.
Где:
- Заголовок
Authorization
— «Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0» (используйте именно это значение). - Тип запроса —
POST
. - Тело запроса содержит следующее:
-
grant_type
— это «пароль». -
response_type
— «токен». -
passcode
, где passcode — это пароль, который был возвращен на предыдущем шаге.
-
Вызов выводит на экран токены доступа и обновления.
- Заголовок
Чтобы обновить токен доступа:
Отправьте запрос на https:// zoneName .login.apigee.com/oauth/token
, как показано в следующем примере:
curl https://zoneName.login.apigee.com/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'
Где:
- Тело запроса содержит следующее:
-
grant_type
— «refresh_token». -
refresh_token
— это значение токена обновления.
-
- Заголовок
Authorization
— «Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0» (используйте именно это значение). - Тип запроса —
POST
.
Доступ к Edge API с помощью SAML
Для доступа к Edge API вы можете использовать такие инструменты, как curl
или удобную утилиту Apigee acurl
.
С помощью curl
вы вызываете Edge API и передаете токен доступа в заголовке Authorization: Bearer
, как показано в следующем примере:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
При использовании acurl
вам не нужно указывать заголовок Authorization
. Например:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
В этих примерах вызывается конечная точка Edge API, которая получает сведения о данной организации. Полный список конечных точек Edge API см. в справочнике по Apigee Edge API .
Дополнительные методы вызова API, включая способы обеспечения актуальности вашего токена, см. в разделе Доступ к Edge API с помощью OAuth2 .
Пользователи компьютеров в зонах SAML
Вы можете использовать утилиты acurl
и get_token
для создания сценариев автоматического доступа к API Edge для пользователей компьютеров в зонах SAML. В следующем примере показано, как использовать get_token
для запроса токена доступа, а затем добавить значение токена в вызов curl
:
USER=me@example.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
В приведенном выше примере установка значения -m
в пустую строку не позволит пользователю компьютера запрашивать код MFA. Использование флага --force-basic-auth
переопределит стандартный запрос пароля, запускаемый запросами с зонами SAML.
Альтернативно вы можете объединить запрос токена и вызов curl
с помощью утилиты acurl
. Например:
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'