Phạm vi OAuth
Phạm vi (scope) xác định access token được phép thực hiện những gì. API của Altium 365 kiểm tra scope trên mọi yêu cầu – token không có scope cần thiết cho một thao tác sẽ nhận lỗi ủy quyền.
Scope được nền tảng gán dựa trên ngữ cảnh mà token được cấp. Bạn không tự chọn scope theo cách thủ công, nhưng bạn sẽ gặp chúng khi kiểm tra token và khi làm việc với API. Hiểu cách scope được cấu trúc sẽ giúp bạn diễn giải token được cấp quyền cho điều gì và suy luận về ranh giới truy cập.
Scope trong JWT Token
Access token là JWT và có thể được giải mã để kiểm tra các claim của nó. Claim scope liệt kê tất cả các scope mà token được cấp cùng. Ví dụ, token được cấp để truy cập Workspace sẽ có dạng như sau:
{
"scope": [
"openid",
"profile",
"a365:workspace:a9a01426-ac92-480e-9f80-97fe0f8ba344"
]
}
Scope a365:workspace:{workspace-id} mã hóa cả vùng truy cập và Workspace cụ thể mà token có hiệu lực.
Quy ước đặt tên
OAuth scope của Altium tuân theo mẫu:
area[:resource][.action]
-
area– miền nền tảng ở mức rộng (ví dụ:workspace,global,supply) -
resource– tùy chọn; bounded context cụ thể hoặc miền dữ liệu cụ thể bên trong vùng đó (ví dụ:design,library,app) -
action– tùy chọn; loại thao tác (ví dụ:read,write,execute)
Một vài nguyên tắc đằng sau cách đặt tên:
-
Tên vùng dựa trên miền, không dựa trên sản phẩm.
workspacethay vìa365,supplythay vìoctopart. -
Tên tài nguyên được căn chỉnh theo bounded context và từ vựng miền đã được thiết lập.
-
Scope lấy dữ liệu làm trung tâm, không lấy chức năng làm trung tâm.
Scope |
Ý nghĩa |
|
Quyền đọc dữ liệu thiết kế trong một Workspace |
|
Tạo và quản lý đăng ký ứng dụng |
|
Quyền đọc dữ liệu chuỗi cung ứng |
OIDC Scope tiêu chuẩn
Token cũng có thể chứa các OIDC scope tiêu chuẩn được dùng cho quản lý danh tính và phiên:
Scope |
Mục đích |
|
Bắt buộc cho các luồng xác thực OIDC |
|
Truy cập thông tin hồ sơ người dùng cơ bản |
|
Truy cập dữ liệu thành viên nhóm của người dùng |
|
Cho phép phát hành refresh token |
Workspace Scope
Việc truy cập dữ liệu Workspace hiện đang được biểu diễn dưới dạng một scope a365:workspace:{workspace-id} duy nhất, bao phủ mọi tài nguyên của Workspace. Nền tảng đang chuyển dần sang mô hình chi tiết hơn, trong đó quyền truy cập có thể được giới hạn theo từng bounded context cụ thể:
Scope |
Bao gồm |
|
Dự án PCB, sơ đồ nguyên lý, biến thể, bản phát hành |
|
Component, symbol, footprint, dữ liệu linh kiện |
|
Bảng kê vật tư, các mục BOM |
|
Bình luận, tác vụ, chú thích |
|
Thành viên Workspace và nhóm |
|
Thông tin chuyên sâu và phân tích của Workspace |
|
Tích hợp PLM |
|
Định nghĩa và thực thi quy trình làm việc |
|
Quản lý yêu cầu |
Mỗi granular scope hỗ trợ các hành động .read và .write. Mô hình chi tiết hơn đang được triển khai từng bước – nó căn chỉnh scope với mô hình bounded context của API, giúp có thể cấp cho một tích hợp quyền truy cập chỉ vào đúng dữ liệu mà nó thực sự cần.