Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Apigee Edge позволяет выполнять вызовы Edge API, аутентифицированные с помощью токенов OAuth2. Поддержка OAuth2 включена по умолчанию в Edge для учетных записей Cloud. Если вы используете Edge для частного облака, вы не сможете использовать OAuth2 без предварительной настройки SAML или LDAP.
Как работает OAuth2 (с API Apigee Edge)
Для вызовов API Apigee Edge требуется аутентификация, чтобы мы могли быть уверены, что вы тот, за кого себя выдаете. Для вашей аутентификации нам необходимо отправить токен доступа OAuth2 вместе с вашим запросом на доступ к API.
Например, если вы хотите получить подробную информацию об организации в Edge, вы должны отправить запрос на URL-адрес, подобный следующему:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Но вы не можете просто отправить этот запрос, не сообщив нам, кто вы. В противном случае любой сможет увидеть сведения о вашей организации.
Здесь на помощь приходит OAuth2: для вашей аутентификации нам нужно, чтобы вы также отправили нам токен доступа в этом запросе. Токен доступа сообщает нам, кто вы, поэтому мы можем быть уверены, что вам разрешено просматривать сведения об организации.
К счастью, вы можете получить токен, отправив свои учетные данные в службу Edge OAuth2. Служба отвечает токенами доступа и обновления.
Поток OAuth2: первоначальный запрос
На следующем изображении показан поток OAuth2 при первом доступе к Edge API:
Как показано на рис. 1 , когда вы делаете первоначальный запрос к Edge API:
- Вы запрашиваете токен доступа. Вы можете сделать это с помощью Edge API , acurl или
get_token
. Например:get_token Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456
- Служба Edge OAuth2 отвечает токеном доступа и печатает его на
stdout
; например:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
Утилиты
acurl
иget_token
автоматически сохраняют токены доступа и обновления в~/.sso-cli
(токен обновления не записывается вstdout
). Если вы используете службу Edge OAuth2 для получения токенов, вам необходимо сохранить их для дальнейшего использования самостоятельно. . - Вы отправляете запрос в Edge API с токеном доступа.
acurl
автоматически прикрепляет токен; например:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Если вы используете другой HTTP-клиент, обязательно добавьте токен доступа. Например:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- Edge API выполняет ваш запрос и обычно возвращает ответ с данными.
Поток OAuth2: последующие запросы
При последующих запросах вам не нужно обменивать свои учетные данные на токен. Вместо этого вы можете просто включить уже имеющийся у вас токен доступа, если срок его действия еще не истек:
Как показано на экране 2 , если у вас уже есть токен доступа:
- Вы отправляете запрос в Edge API с токеном доступа.
acurl
автоматически прикрепляет токен. Если вы используете другие инструменты, токен необходимо добавить вручную. - Edge API выполняет ваш запрос и обычно возвращает ответ с данными.
Поток OAuth2: когда истекает срок действия вашего токена доступа
Когда срок действия токена доступа истечет (через 12 часов), вы можете использовать токен обновления, чтобы получить новый токен доступа:
Как показано на экране 3 , когда срок действия вашего токена доступа истек:
- Вы отправляете запрос в Edge API, но срок действия вашего токена доступа истек.
- Edge API отклоняет ваш запрос как неавторизованный.
- Вы отправляете токен обновления в службу Edge OAuth2. Если вы используете
acurl
, это делается автоматически. - Служба Edge OAuth2 отвечает новым токеном доступа.
- Вы отправляете запрос в Edge API с новым токеном доступа.
- Edge API выполняет ваш запрос и обычно возвращает ответ с данными.
Получите жетоны
Чтобы получить токен доступа, который вы можете отправить в Edge API, вы можете использовать следующие утилиты Apigee в дополнение к такой утилите, как curl
:
- Утилита get_token : обменивает ваши учетные данные Apigee на токены доступа и обновления, которые вы можете использовать для вызова Edge API.
- Утилита acurl : предоставляет удобную оболочку для стандартной команды
curl
. Создает HTTP-запросы к Edge API, получает токены доступа и обновления изget_token
и передает токен доступа в Edge API. - Конечные точки токенов в службе Edge OAuth2 . Обменяйте свои учетные данные Apigee на токены доступа и обновления посредством вызова API Edge.
Эти утилиты обменивают учетные данные вашей учетной записи Apigee (адрес электронной почты и пароль) на токены со следующей продолжительностью:
- Срок действия токенов доступа истекает через 12 часов.
- Срок действия токенов обновления истекает через 30 дней.
В результате после успешного выполнения вызова API с помощью acurl
или get_token
вы можете продолжать использовать пару токенов в течение 30 дней. По истечении срока действия необходимо повторно ввести свои учетные данные и получить новые токены.
Доступ к Edge API с помощью OAuth2
Чтобы получить доступ к Edge API, вы отправляете запрос к конечной точке API и включаете токен доступа. Вы можете сделать это с помощью любого HTTP-клиента, включая утилиту командной строки, такую как curl
, пользовательский интерфейс на основе браузера, например Postman, или утилиту Apigee, такую как acurl
.
Доступ к Edge API с помощью acurl
и curl
описан в следующих разделах.
Используйте акерл
Чтобы получить доступ к Edge API с помощью acurl
, ваш первоначальный запрос должен включать ваши учетные данные. Служба Edge OAuth2 отвечает токенами доступа и обновления. acurl
сохраняет токены локально.
При последующих запросах acurl
использует сохраненные токены в ~/.sso-cli
, поэтому вам не нужно снова включать свои учетные данные до истечения срока действия токенов.
В следующем примере показан первоначальный запрос acurl
, который получает сведения об организации «ahamilton-eval»:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c
{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies
[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
Помимо получения сведений об организации, в этом примере также показан второй запрос, который получает список политик в прокси-сервере API «helloworld». Второй запрос использует сокращение «o» для слова «организации» в URL-адресе.
Обратите внимание, что acurl
автоматически передает токен доступа при втором запросе. Вам не нужно передавать свои учетные данные пользователя, как только acurl
сохранит токены OAuth2. Он получает токен из ~/.sso-cli
для последующих вызовов.
Дополнительные сведения см. в разделе Использование acurl для доступа к Edge API .
Используйте локон
Вы можете использовать curl
для доступа к Edge API. Для этого вам необходимо сначала получить токены доступа и обновления. Вы можете получить их с помощью такой утилиты, как get_token
или службы Edge OAuth2. .
После того как вы успешно сохранили свой токен доступа, вы передаете его в заголовке Authorization
своих вызовов Edge API, как показано в следующем примере:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Токен доступа действителен в течение 12 часов после его выдачи. После истечения срока действия токена доступа токен обновления можно использовать в течение 30 дней для выдачи другого токена доступа без необходимости ввода учетных данных. Apigee рекомендует запрашивать новый токен доступа только после истечения срока действия токена ссылки, а не вводить учетные данные и делать новый запрос при каждом вызове API.
Срок действия токена
По истечении срока действия вашего токена доступа вы можете использовать токен обновления, чтобы получить новый токен доступа без повторной отправки своих учетных данных.
Способ обновления токена доступа зависит от того, какой инструмент вы используете:
-
acurl
: Никаких действий не требуется.acurl
автоматически обновляет токен доступа, когда вы отправляете запрос, содержащий устаревший. -
get_token
: вызовитеget_token
, чтобы обновить токен доступа. - Служба Edge OAuth2 : отправьте запрос, который включает в себя:
- Обновить токен
- Для параметра формы
grant_type
установлено значение «refresh_token».
OAuth2 для пользователей компьютеров
Вы можете использовать утилиты acurl
и get_token
для создания сценариев автоматического доступа к API Edge с аутентификацией OAuth2 для пользователей компьютеров. В следующем примере показано, как использовать get_token
для запроса токена доступа, а затем добавить значение токена в вызов curl
:
USER=me@example.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
Альтернативно вы можете объединить запрос токена и вызов curl
с помощью утилиты acurl
. Например:
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
В обоих примерах установка значения -m
в пустую строку не позволит пользователю компьютера запрашивать код MFA.