Cloudflare Blog
75

Sản phẩm

Cloudflare nâng cấp OAuth: Chuyển từ cấp quyền toàn bộ sang cấp quyền theo tác vụ

(giờ Việt Nam)

Tóm tắt AI

Cloudflare vừa hỗ trợ phạm vi truy cập tùy chọn cho OAuth, cho phép người dùng kiểm soát dữ liệu chặt chẽ hơn và giúp nhà phát triển xây dựng quy trình xác thực an toàn, tập trung vào từng tác vụ cụ thể.

Bản dịch AI

From all-or-nothing to task-based OAuth consent

Kể từ tháng 6, các nhà phát triển đã tạo ra hàng nghìn ứng dụng OAuth của bên thứ ba trên Cloudflare, với hơn một triệu lượt cấp quyền kể từ đó.

OAuth cho phép thực hiện ủy quyền truy cập. Nó cho phép các ứng dụng hoạt động thay mặt người dùng mà không yêu cầu họ phải quản lý các thông tin xác thực có thời hạn dài hoặc phải cung cấp mật khẩu. Mô hình đó hoạt động hiệu quả khi một ứng dụng có thể mô tả nhu cầu truy cập của mình bằng một tập hợp nhỏ các phạm vi (scopes).

Các nhà phát triển sử dụng OAuth cho các tích hợp SaaS, công cụ nội bộ, CLI và các tác nhân (agents). Mô hình cấp quyền của chúng tôi đã trở nên chi tiết hơn theo thời gian để hỗ trợ việc phân định phạm vi tốt hơn cho các quy trình làm việc khác nhau này. Điều đó rất tốt cho bảo mật, nhưng nó khiến cho màn hình đồng ý theo kiểu "tất cả hoặc không có gì" trở nên khó thuyết phục.

Cloudflare OAuth vốn đã cho phép các client yêu cầu một tập hợp con các phạm vi đã cấu hình của họ. Tuy nhiên, một khi client đã thực hiện yêu cầu đó, người dùng không thể thu hẹp phạm vi thêm nữa trên màn hình đồng ý. Đối với người dùng trên màn hình đồng ý, trải nghiệm vẫn là "tất cả hoặc không có gì". Nếu một ứng dụng yêu cầu quyền truy cập nhiều hơn mức người dùng cảm thấy thoải mái, lựa chọn duy nhất của họ là phê duyệt toàn bộ yêu cầu hoặc từ chối hoàn toàn.

Các máy chủ MCP là một ví dụ điển hình cho điều này. Một máy chủ MCP có thể yêu cầu một tập hợp quyền rộng, vì về lý thuyết, một tác nhân có thể sử dụng tất cả chúng. Nhưng hầu hết người dùng sẽ không muốn một tác nhân có quá nhiều quyền truy cập như vậy. Trước tính năng này, cách duy nhất để xử lý là nhà phát triển ứng dụng phải xây dựng một màn hình chọn phạm vi tùy chỉnh trước khi chuyển hướng người dùng đến luồng đồng ý của chúng tôi.

Hôm nay, chúng tôi giới thiệu tính năng tùy chỉnh phạm vi OAuth (OAuth scope customization). Chủ sở hữu client có thể đánh dấu các phạm vi cụ thể là tùy chọn khi cấu hình một OAuth client, giúp người dùng có khả năng cấp một tập hợp con hẹp hơn các quyền truy cập mà ứng dụng yêu cầu tại thời điểm ủy quyền.

Đặc tả OAuth vốn đã cho phép các máy chủ ủy quyền cấp một tập hợp phạm vi hẹp hơn so với yêu cầu. Chúng tôi đã xây dựng dựa trên sự linh hoạt đó để làm cho tính năng này hoạt động trơn tru với mọi ứng dụng hiện có.

Kiểm soát nhiều hơn mà không làm người dùng choáng ngợp

Mục tiêu của chúng tôi khi giới thiệu tính năng chọn phạm vi là mang lại cho những người dùng chú trọng bảo mật sự linh hoạt hơn để đưa ra các lựa chọn phù hợp cho trường hợp sử dụng của họ, mà không biến màn hình đồng ý thành một danh sách kiểm tra phạm vi dài dằng dặc.

Với tính năng tùy chỉnh phạm vi:

Phân định phạm vi cho yêu cầu ủy quyền

Một chi tiết quan trọng là các phạm vi bắt buộc và tùy chọn chỉ được đánh giá dựa trên các phạm vi được yêu cầu trong một luồng ủy quyền cụ thể, chứ không phải mọi phạm vi được cấu hình trên client. Điều đó quan trọng vì các OAuth client không phải lúc nào cũng yêu cầu toàn bộ tập hợp phạm vi đã cấu hình của chúng.

Ví dụ: một client có thể được cấu hình với user-details.read, workers-scripts.write, workers-kv-storage.write và zone.read, trong khi đánh dấu workers-kv-storage.write và zone.read là tùy chọn. Nếu client đó bắt đầu một luồng ủy quyền yêu cầu cả bốn phạm vi, màn hình đồng ý sẽ đánh giá cả bốn. Trong trường hợp đó, user-details.read và workers-scripts.write vẫn là bắt buộc, trong khi người dùng có thể chọn cấp hoặc không cấp workers-kv-storage.write và zone.read.

Nhưng nếu sau đó client chỉ yêu cầu workers-scripts.write và zone.read, thì chỉ hai phạm vi đó được xem xét cho luồng ủy quyền đó. user-details.read và workers-kv-storage.write sẽ không được hiển thị hoặc thực thi vì chúng không được yêu cầu.

Điều này giúp màn hình đồng ý tập trung vào tác vụ hiện tại, thay vì mọi khả năng mà ứng dụng có thể yêu cầu. Nó cũng có nghĩa là các OAuth client hiện tại vẫn giữ hành vi mặc định của chúng: nếu một client không chọn sử dụng các phạm vi tùy chọn, luồng đồng ý vẫn không thay đổi.

Cấu hình OAuth client để sử dụng các phạm vi tùy chọn

Các nhà phát triển có thể chọn sử dụng tính năng tùy chỉnh phạm vi khi cấu hình một OAuth client. Các phạm vi vẫn được cấu hình như hiện nay, và các client giờ đây có thể chỉ định thêm phạm vi nào trong số đó là tùy chọn:

Trong ví dụ trên, client có thể yêu cầu cả bốn phạm vi, nhưng người dùng chỉ có thể bỏ chọn các phạm vi workers-kv-storage.write và zone.read trong quá trình đồng ý. user-details:read và workers-scripts.write vẫn là bắt buộc nếu chúng được bao gồm trong yêu cầu ủy quyền.

Nếu sau đó client chỉ yêu cầu workers-scripts.write và zone.read, thì chỉ hai phạm vi đó được xem xét cho luồng ủy quyền đó. user-details.read và workers-kv-storage.write sẽ không được hiển thị hoặc thực thi vì chúng không được yêu cầu.

Xây dựng với tư duy về cấp quyền một phần

Khi người dùng bỏ chọn bất kỳ phạm vi tùy chọn nào và hoàn tất luồng ủy quyền, mã truy cập (access token) được tạo ra sẽ chỉ chứa các phạm vi mà họ đã đồng ý. Đối với các nhà phát triển, điều này có nghĩa là bạn cần kiểm tra tập hợp phạm vi được cấp sau khi đổi mã ủy quyền, thay vì mặc định rằng toàn bộ tập hợp phạm vi yêu cầu đã được phê duyệt.

Một ứng dụng xử lý việc cấp quyền hạn hẹp một cách khéo léo, ví dụ như một tác nhân hoạt động trong bất kỳ tập hợp con quyền nào mà nó nhận được, là ứng dụng mà người dùng cảm thấy thoải mái khi ủy quyền. Chỉ yêu cầu các quyền cần thiết và đánh dấu phần còn lại là tùy chọn là một dấu hiệu tốt cho người dùng thấy rằng ứng dụng của bạn tôn trọng các quyết định truy cập của họ.

Phạm vi cho mọi Sản phẩm

Trong vài tuần tới, chúng tôi sẽ mở rộng bề mặt vai trò cấp tài khoản và vùng (zone) để bao phủ gần như mọi sản phẩm của Cloudflare. Điều đó có nghĩa là sẽ có thêm nhiều vai trò API token, tùy chọn thành viên tài khoản và phạm vi OAuth, cung cấp cho khách hàng các công cụ để bảo mật khối lượng công việc với mức độ truy cập phù hợp.

Xây dựng với Phạm vi Tùy chọn

Việc cho phép các nhà phát triển và người dùng hạn chế quyền truy cập tốt hơn thông qua các phạm vi OAuth tùy chọn là một bước quan trọng hướng tới trải nghiệm đồng ý linh hoạt và đáng tin cậy hơn trên Cloudflare. Với các phạm vi tùy chọn, các nhà phát triển có thể xây dựng các luồng ủy quyền tinh tế hơn, và người dùng có nhiều quyền kiểm soát hơn đối với những gì họ phê duyệt.

Để bắt đầu với OAuth của bên thứ ba, hãy xem tài liệu của chúng tôi hoặc truy cập trực tiếp vào trang ứng dụng OAuth trong bảng điều khiển và tạo ứng dụng OAuth đầu tiên của bạn.

Cảm ơn các thực tập sinh tuyệt vời của chúng tôi

Tính năng này là một trong nhiều tính năng mà chúng tôi đã xây dựng với sự giúp đỡ của 1.111 thực tập sinh. Xin chúc mừng Miller Vargas và José Enrique Rodriguez vì những đóng góp có tác động lớn của các bạn tại đây. Miller là sinh viên năm cuối tại Đại học Texas - Austin, chuyên ngành khoa học máy tính và toán học; và José là sinh viên năm cuối tại Universidad Panamericana, chuyên ngành kỹ thuật, trí tuệ dữ liệu và an ninh mạng.

CloudflareOAuthBảo mậtPhát triển ứng dụngXác thực
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Cloudflare Blog. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.