Edge OAuth2 서비스를 사용하여 토큰 가져오기

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

Edge OAuth2 서비스를 사용하여 사용자 인증 정보를 액세스 및 갱신 토큰으로 교환한 다음 OAuth 워크플로에서 Edge 엔드포인트를 호출하는 데 사용할 수 있습니다.

이 섹션에 설명된 기법 외에도 acurlget_token 유틸리티를 사용하여 OAuth2 토큰을 가져올 수도 있습니다.

경로

POST https://login.apigee.com/oauth/token

퍼블릭 클라우드용 Edge의 SAML 사용 조직에서 Edge OAuth2 서비스에 액세스하는 경우 경로에 영역 이름을 포함해야 합니다. 예를 들면 다음과 같습니다.

POST https://zone.login.apigee.com/oauth/token

요청 헤더

매개변수
Content-Type "application/x-www-form-urlencoded"
Accept 'application/json;charset=utf-8'
Authorization

'기본 ZWRnZWNsaTplZGdlY2xpc2VjcmV0'

이 값을 환경 변수로 내보내면 이러한 API 호출에서 재사용할 수 있습니다. 예를 들면 다음과 같습니다.

export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0
curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

양식 매개변수

매개변수 필수 여부
username 선택사항. 사용자 이름과 비밀번호 조합 또는 비밀번호가 필요합니다. Apigee 사용자 이름(일반적으로 Apigee 계정과 연결된 이메일 주소)입니다.
password 선택사항. 사용자 이름과 비밀번호 조합 또는 비밀번호가 필요합니다. Apigee 계정의 비밀번호입니다.
mfa_token Optional 계정의 유효한 다중 인증 (MFA) 코드입니다. MFA를 사용 설정한 경우에만 필요합니다.
passcode 선택사항. 사용자 이름과 비밀번호 조합 또는 비밀번호가 필요합니다. 비밀번호 대신 사용할 수 있는 일회용 비밀번호 비밀번호는 SAML IDP로 인증할 때 필요하며 LDAP IDP로 인증하는 데 사용할 수 있습니다.
grant_type 필수 항목

새 액세스 토큰을 가져올지 또는 기존 토큰을 새로고침할지 결정합니다. 유효한 값은 다음과 같습니다.

  • 'password': 새 액세스 토큰을 가져옵니다. grant_type이 'password'인 경우 요청에 Apigee 사용자 인증 정보를 포함해야 합니다.
  • 'refresh_token': 갱신 토큰을 전송하여 새 액세스 토큰을 가져옵니다. grant_type가 'refresh_token'인 경우 요청에 사용자 인증 정보를 포함하지 않아도 됩니다.
refresh_token 선택사항 현재 액세스 토큰이 만료되었을 때 새 액세스 토큰을 얻기 위해 전달하는 토큰입니다. grant_type이 'refresh_token'인 경우 이 매개변수가 필요합니다.

새 액세스 토큰 가져오기

새 액세스 토큰을 가져오려면 grant_type을 'password'로 설정합니다.

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://login.apigee.com/oauth/token \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

MFA로 새 액세스 토큰 가져오기

MFA (다단계 인증)가 사용 설정된 새 액세스 토큰을 가져오려면 MFA 코드를 가져오고 mfa_token 매개변수를 해당 값으로 설정합니다.

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://login.apigee.com/oauth/token?mfa_token=424242 \
  -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

액세스 토큰 새로고침

액세스 토큰을 새로고침하려면 grant_type을 'refresh_token'으로 설정하고 기존 갱신 토큰을 양식 매개변수로 추가합니다.

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://login.apigee.com/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

액세스 토큰을 새로고침할 때 사용자 인증 정보를 전달할 필요는 없습니다.

응답

성공하면 액세스 토큰, 갱신 토큰 및 관련 정보가 반환됩니다. 예를 들면 다음과 같습니다.

{
  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
  "expires_in": 1799,
  "scope": "scim.me openid password.write approvals.me oauth.approvals",
  "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
}

응답 값을 저장합니다.

  • Edge API 호출에서 access_token 사용
  • 액세스 토큰이 만료되어 갱신해야 하는 경우 refresh_token를 사용합니다.

다음과 같은 응답이 표시되는 경우:

{
  "error": "unauthorized",
  "error_description": "Bad credentials"
}

요청의 Authorization 헤더에 위에 제공된 정확한 문자열 ('ZWRnZWNsaTplZGdlY2xpc2VjcmV0')을 사용했는지 확인합니다.