Phê duyệt và thu hồi mã truy cập

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

Thu hồi mã truy cập và làm mới

Trong một số trường hợp, ứng dụng phải thu hồi hoặc vô hiệu hoá mã thông báo một cách rõ ràng, chẳng hạn như khi người dùng đăng xuất khỏi ứng dụng có hỗ trợ OAuth. Nếu thu hồi mã thông báo, bạn có thể phê duyệt lại mã đó bất cứ lúc nào trước khi hết hạn.

Quy trình thu hồi mã thông báo được xác định theo quy cách Thu hồi mã thông báo của OAuth 2.0.

Apigee Edge cung cấp hoạt động InvalidateToken cho phép bạn định cấu hình một điểm cuối thu hồi mã thông báo. Bằng việc xuất bản URI của điểm cuối này, bạn cho phép nhà phát triển ứng dụng vô hiệu hoá mã thông báo do Edge cấp.

Dưới đây là một cấu hình mẫu cho chính sách OAuthV2 và hoạt động InvalidateToken. Trong trong trường hợp này, cả mã truy cập và mã làm mới liên kết đều bị thu hồi. Về mặt kỹ thuật, đều bị thu hồi vì cờ phân tầng được đặt thành true. Để biết thêm thông tin về cách cờ phân tầng hoạt động, hãy xem phần thuộc tính của phần tử Mã thông báo dưới đây.

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

&lt;Tokens&gt;/&lt;Token&gt; phần tử

Xác định biến luồng chỉ định mã thông báo cần thu hồi. Nếu nhà phát triển gửi yêu cầu thu hồi bằng tham số truy vấn có tên là access_token, ví dụ, biến luồng chính xác sẽ là: request.queryparam.access_token. Để yêu cầu mã thông báo trong tiêu đề HTTP, Ví dụ: đặt giá trị này thành request.header.access_token.

Thuộc tính

  • type (bắt buộc, chuỗi): Loại mã thông báo do biến xác định đã chỉ định. Các giá trị được hỗ trợ là accesstokenrefreshtoken:
    • Để thu hồi mã truy cập, hãy chỉ định loại accesstoken.
    • Để thu hồi cả mã truy cập và mã làm mới, hãy chỉ định loại Refreshtoken. Thời điểm phát hiện nhập Refreshtoken, Edge sẽ giả định mã thông báo này là mã làm mới. Nếu mã làm mới đó là tìm thấy, thì lệnh đó sẽ bị thu hồi. Nếu không tìm thấy mã làm mới đó, Edge sẽ kiểm tra để để xem đó có phải là mã truy cập hay không. Nếu có thì mã truy cập sẽ được thu hồi.

      Lưu ý: Nếu bạn chuyển một mã thông báo đã bị vô hiệu hoá đến một InvalidateToken chính sách, chính sách sẽ không trả về lỗi, mặc dù bạn có thể thấy lỗi này. Đúng là không có tác dụng.
  • cascade (không bắt buộc, boolean, mặc định: true) Công dụng chính của thuộc tính này là để thu hồi mã làm mới mà không thu hồi mã truy cập liên kết. Cân nhắc các trường hợp sau:
    • Chỉ thu hồi mã làm mới và không thu hồi mã truy cập đã liên kết. Để thực hiện việc này, thiết lập <Token> nhập thành refreshtoken và đặt thác nước thành false
    • Thu hồi cả mã truy cập và mã làm mới. Để làm việc này, hãy đặt <Token> nhập thành accesstoken. Giá trị của thác có thể là true ( mặc định) hoặc false. Nếu bạn đặt thành true, thì cả hai quyền truy cập và mã làm mới đều bị thu hồi. Nếu bạn đặt thành false, quyền truy cập đã bị thu hồi và không sử dụng được mã làm mới. Hãy xem Ghi chú bên dưới để biết thêm thông tin nội dung giải thích.
    • Thu hồi mã truy cập và không thu hồi mã làm mới đã liên kết. Không phải được hỗ trợ. Hãy xem Ghi chú bên dưới để biết thêm nội dung giải thích.

Lưu ý: Vì lý do bảo mật, nếu bạn thu hồi một mã truy cập, thì mã làm mới liên kết cũng sẽ bị thu hồi. Do đó, bạn không thể sử dụng thuộc tính tầng để chỉ thu hồi mã truy cập. Ví dụ: nếu bạn đặt <Token> nhập thành accesstoken và đặt cascade=false, mã truy cập sẽ bị thu hồi (như mong đợi); tuy nhiên, mã làm mới liên quan sẽ không sử dụng được. Không thể dùng để làm mới mã truy cập đã thu hồi. Trường hợp sử dụng chính cho thuộc tính tầng là khi bạn chỉ muốn thu hồi mã làm mới. Trong trường hợp đó, hãy đặt <Token> nhập thành refreshtoken, và đặt cascade=false. Mã làm mới sẽ bị thu hồi, nhưng quyền truy cập được liên kết sẽ bị thu hồi mã thông báo sẽ vẫn hợp lệ (cho đến khi hết hạn hoặc bị thu hồi). Để biết thêm thông tin, hãy xem Thảo luận trên diễn đàn cộng đồng.

Phê duyệt mã truy cập và mã làm mới

Sử dụng thao tác ValidateToken để "phê duyệt lại" mã thông báo bị thu hồi. Tức là, khi bạn áp dụng chế độ cài đặt này thì trạng thái của mã truy cập được nhắm mục tiêu hoặc mã làm mới sẽ thay đổi từ "bị thu hồi" đến " đã phê duyệt". Bạn có thể xác thực mọi mã thông báo đã thu hồi chưa hết hạn.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

&lt;Tokens&gt;/&lt;Token&gt; phần tử

Xác định biến luồng chỉ định mã thông báo cần xác thực. Nếu nhà phát triển gửi yêu cầu xác thực bằng cách sử dụng tham số truy vấn có tên là access_token, ví dụ, biến luồng chính xác sẽ là: request.queryparam.access_token. Để yêu cầu mã thông báo trong tiêu đề HTTP, Ví dụ: đặt giá trị này thành request.header.access_token.

Thuộc tính

  • type (bắt buộc, chuỗi) Loại mã thông báo do biến xác định đã chỉ định. Các giá trị được hỗ trợ là accesstokenrefreshtoken.
  • cascade (không bắt buộc, boolean): Theo mặc định, tuỳ chọn này được đặt thành true và làm cho quy trình xác thực được truyền đến các mã thông báo liên kết. Vì vậy, nếu được áp dụng vào mã làm mới, mã truy cập liên kết của mã đó cũng được xác thực. Nếu được áp dụng cho một quyền truy cập mã làm mới liên quan của mã đó cũng sẽ được xác thực. Nếu bạn đặt tuỳ chọn này thành false, thì chỉ có quyền truy cập hoặc mã làm mới được chỉ định mới được xác thực.