Sử dụng dịch vụ Edge OAuth2 để nhận mã thông báo

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Bạn có thể sử dụng dịch vụ OAuth2 của Edge để trao đổi thông tin đăng nhập của mình lấy quyền truy cập và mã làm mới mà sau đó bạn dùng để gọi các điểm cuối Edge trong Quy trình làm việc của OAuth.

Ngoài những kỹ thuật được mô tả trong phần này, bạn cũng có thể sử dụng acurlget_token tiện ích để nhận mã thông báo OAuth2.

Đường dẫn

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

Nếu bạn đang truy cập vào dịch vụ Edge OAuth2 từ một tổ chức hỗ trợ SAML trong Edge dành cho Đám mây công cộng, bạn phải bao gồm tên vùng trong đường dẫn của bạn. Ví dụ:

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

Tiêu đề của yêu cầu

Thông số Giá trị
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;character=utf-8"
Authorization

"ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

Bạn có thể xuất giá trị này sang một biến môi trường để có thể sử dụng lại trong những biến này Lệnh gọi API. Ví dụ:

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

Thông số biểu mẫu

Thông số Bắt buộc? Giá trị
username Không bắt buộc. Bạn phải kết hợp tên người dùng và mật khẩu hoặc mật mã. Tên người dùng Apigee của bạn, thường là địa chỉ email liên kết với tài khoản Apigee của bạn.
password Không bắt buộc. Bạn phải kết hợp tên người dùng và mật khẩu hoặc mật mã. Mật khẩu cho tài khoản Apigee của bạn.
mfa_token Không bắt buộc Mã xác thực đa yếu tố (MFA) hợp lệ cho tài khoản của bạn. Chỉ bắt buộc nếu bạn có Đã bật tính năng Xác thực đa yếu tố (MFA).
passcode Không bắt buộc. Bạn phải kết hợp tên người dùng và mật khẩu hoặc mật mã. Mật mã một lần bạn có thể sử dụng thay cho mật khẩu. Bạn cần phải nhập mật mã khi xác thực bằng một nhà cung cấp danh tính (IDP) dựa trên SAML. Bạn có thể sử dụng mật mã này để xác thực với IDP LDAP.
grant_type Bắt buộc

Xác định xem bạn sẽ nhận được mã truy cập mới hay làm mới mã thông báo hiện có. Hợp lệ là:

  • "password": Lấy mã truy cập mới. Khi grant_type là "mật khẩu", bạn phải thêm thông tin đăng nhập Apigee của mình vào yêu cầu.
  • "refresh_token": Gửi mã làm mới để nhận mã truy cập mới. Thời gian grant_type là "refresh_token", bạn không bắt buộc phải thêm thông tin xác thực trong yêu cầu.
refresh_token Không bắt buộc Mã thông báo mà bạn truyền để nhận mã truy cập mới khi mã truy cập hiện tại đã đã hết hạn. Bạn phải sử dụng tham số này khi grant_type là "refresh_token".

Ví dụ

Nhận mã truy cập mới

Để nhận mã truy cập mới, hãy đặt grant_type thành "password" (mật khẩu):

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'

Nhận mã truy cập mới bằng tính năng xác thực đa yếu tố (MFA)

Để nhận mã truy cập mới có bật MFA (xác thực đa yếu tố), lấy mã MFA rồi đặt tham số mfa_token thành giá trị của nó:

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'

Làm mới mã truy cập

Để làm mới mã truy cập, hãy đặt grant_type thành "refresh_token" và thêm mã làm mới hiện có dưới dạng thông số biểu mẫu:

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'

Xin lưu ý rằng bạn không cần chuyển thông tin xác thực khi làm mới mã truy cập.

Phản hồi

Sau khi thực hiện thành công, bạn sẽ nhận lại được mã truy cập, mã làm mới và thông tin liên quan. Ví dụ:

{
  "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"
}

Lưu các giá trị phản hồi:

  • Sử dụng access_token trong các lệnh gọi đến API Edge
  • Hãy sử dụng refresh_token khi mã truy cập của bạn hết hạn và bạn cần làm mới nó

Nếu bạn nhận được phản hồi như sau:

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

Đảm bảo rằng bạn đã sử dụng chuỗi chính xác đã cho ở trên ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") cho Authorization tiêu đề trong yêu cầu của bạn.