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

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

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

이 섹션에서 설명하는 기법 외에도 acurl 및 OAuth2 토큰을 가져오는 get_token 유틸리티

경로

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

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

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

요청 헤더

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

'Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0'

이 값을 환경 변수로 내보내서 API 호출 예를 들면 다음과 같습니다.

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

양식 매개변수

매개변수 필수 여부
username 선택사항입니다. 사용자 이름과 비밀번호 조합 또는 비밀번호가 필요합니다. Apigee 사용자 이름으로, 일반적으로 Apigee 계정과 연결된 이메일 주소입니다.
password 선택사항입니다. 사용자 이름과 비밀번호 조합 또는 비밀번호가 필요합니다. Apigee 계정의 비밀번호입니다.
mfa_token 선택사항 계정에 유효한 다단계 인증 (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 헤더를 포함하는 것이 좋습니다.