<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
Apigee Edge를 사용하면 OAuth2 토큰으로 인증된 Edge API를 호출할 수 있습니다. Cloud 계정의 Edge에서는 OAuth2 지원이 기본적으로 사용 설정됩니다. Edge를 사용하는 경우 프라이빗 클라우드의 경우 먼저 SAML을 설정합니다.
OAuth2 작동 방식 (Apigee Edge API 사용)
Apigee Edge API에 대한 호출은 사용자가 누구인지 확인할 수 있도록 인증이 필요합니다. 있습니다. 인증을 위해 요청과 함께 OAuth2 액세스 토큰이 전송되어야 합니다. API에 액세스합니다.
예를 들어 Edge의 조직에 관한 세부정보를 확인하려면 다음과 같은 URL을 사용합니다.
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
하지만 신원을 밝히지 않고 요청을 보낼 수는 없습니다. 그 외의 경우에는 누구나 조직의 세부정보를 볼 수 있습니다
OAuth2가 필요한 이유가 바로 여기에 있습니다. 사용자를 인증하려면 액세스 토큰을 Google에 전송해야 합니다. 할 수도 있습니다. 액세스 토큰은 사용자를 알려주므로 사용자가 조직의 세부정보를 볼 수 있습니다.
다행히 Edge OAuth2 서비스에 사용자 인증 정보를 전송하여 토큰을 가져올 수 있습니다. 이 서비스는 액세스 및 갱신 토큰으로 응답합니다
OAuth2 흐름: 초기 요청
다음 이미지는 처음으로 Edge API에 액세스할 때의 OAuth2 흐름을 보여줍니다. 시간:
<ph type="x-smartling-placeholder">그림 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 흐름: 후속 요청
후속 요청에서는 사용자 인증 정보를 토큰으로 교환할 필요가 없습니다. 대신 이미 만료되지 않은 액세스 토큰만 포함할 수 있습니다.
<ph type="x-smartling-placeholder">그림 2와 같이 이미 액세스 토큰이 있는 경우 다음을 실행합니다.
- 액세스 토큰을 사용하여 Edge API에 요청을 보냅니다.
acurl
첨부 자동으로 토큰을 생성합니다. 다른 도구를 사용하는 경우 토큰을 수동으로 추가해야 합니다. - Edge API는 요청을 실행하고 일반적으로 데이터가 포함된 응답을 반환합니다.
OAuth2 흐름: 액세스 토큰이 만료되는 경우
12시간 후에 액세스 토큰이 만료되면 갱신 토큰을 사용하여 액세스 토큰:
<ph type="x-smartling-placeholder">그림 3과 같이 액세스 토큰이 만료된 경우:
- Edge API에 요청을 전송했지만 액세스 토큰이 만료되었습니다.
- Edge API가 요청을 승인되지 않은 것으로 간주하여 거부합니다.
- Edge OAuth2 서비스에 갱신 토큰을 전송합니다.
acurl
를 사용하는 경우 이 작업은 완료됨 자동으로 처리합니다 - Edge OAuth2 서비스가 새 액세스 토큰으로 응답합니다.
- 새 액세스 토큰을 사용하여 Edge API에 요청을 보냅니다.
- Edge API는 요청을 실행하고 일반적으로 데이터가 포함된 응답을 반환합니다.
토큰 가져오기
Edge API에 보낼 수 있는 액세스 토큰을 가져오려면 다음을 사용하면 됩니다.
curl
와 같은 유틸리티 외에 Apigee 유틸리티:
- get_token 유틸리티: 액세스 권한을 위해 Apigee 사용자 인증 정보 교환 Edge API를 호출하는 데 사용할 수 있는 갱신 토큰입니다.
- acurl 유틸리티: 표준
curl
명령어. 에지에 대한 HTTP 요청 작성 API를 사용하여get_token
에서 액세스 및 갱신 토큰을 가져오고 액세스 토큰을 Edge API입니다 - Edge OAuth2 서비스의 토큰 엔드포인트: Edge API 호출을 통한 액세스 및 갱신 토큰의 Apigee 사용자 인증 정보입니다.
이러한 유틸리티는 Apigee 계정 사용자 인증 정보 (이메일 주소 및 기간이 다음과 같은 토큰의 경우:
- 액세스 토큰은 12시간 후에 만료됩니다.
- 갱신 토큰은 30일 후에 만료됩니다.
따라서 acurl
또는 get_token
로 API를 성공적으로 호출하면
30일 동안 토큰 쌍을 계속 사용할 수 있습니다. 만료 후에는
새 토큰을 가져올 수 있습니다
OAuth2로 Edge API에 액세스
Edge API에 액세스하려면 API 엔드포인트에 요청을 전송하고 액세스 토큰을 포함합니다.
curl
와 같은 명령줄 유틸리티를 포함한 모든 HTTP 클라이언트를 사용하여 이 작업을 수행할 수 있습니다.
Postman과 같은 브라우저 기반 UI 또는 acurl
와 같은 Apigee 유틸리티를 지원합니다.
acurl
및 curl
를 사용하여 Edge API에 액세스하는 방법은 다음에 설명되어 있습니다.
자세히 살펴보겠습니다
acurl 사용
acurl
로 Edge API에 액세스하려면 초기 요청에 다음을 포함해야 합니다.
사용자 인증 정보를 제공합니다 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" ]
이 예에서는 조직에 대한 세부정보를 가져오는 것 외에도 두 번째 요청을 보여줍니다. 'helloworld' 내의 정책 목록을 가져오는 API 프록시 두 번째 요청은 'o' 단축 '조직' 관련 을 입력합니다.
acurl
는 두 번째 요청 시 액세스 토큰을 자동으로 전달합니다. 나
acurl
에서 OAuth2 토큰을 저장하면 사용자 인증 정보를 전달할 필요가 없습니다. 그것은
후속 호출을 위해 ~/.sso-cli
에서 토큰을 가져옵니다.
자세한 내용은 curl을 사용하여 Edge API에 액세스를 참조하세요.
curl 사용
curl
를 사용하여 Edge API에 액세스할 수 있습니다. 이렇게 하려면 먼저
액세스 및 갱신 토큰을 사용할 수 있습니다 get_token
또는
Edge OAuth2 서비스.
액세스 토큰을 성공적으로 저장한 후에는
Edge API 호출의 Authorization
헤더입니다.
표시:
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 서비스: 다음을 포함하는 요청을 보냅니다.
<ph type="x-smartling-placeholder">
- </ph>
- 갱신 토큰
grant_type
양식 매개변수가 'refresh_token'으로 설정됨
머신 사용자용 OAuth2
acurl
및 get_token
유틸리티를 사용하여 자동 액세스를 스크립트로 작성할 수 있습니다.
Edge API에 액세스할 수 있습니다. 다음 예는 다음을 실행하는 방법을 보여줍니다.
다음 용도로 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/...'
또는 acurl
유틸리티를 사용하여 토큰 요청과 curl
호출을 결합할 수 있습니다.
예를 들면 다음과 같습니다.
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
두 가지 예 모두에서 -m
값을 빈 문자열로 설정하면 머신 사용자가
MFA 코드를 입력하라는 메시지가 표시되지 않습니다.