Bỏ qua để đến nội dung

Xác thực

Restorm không có danh sách thả xuống “kiểu xác thực”. Nó có thứ tổng quát hơn: yêu cầu xác thực, một yêu cầu đầy đủ mà vai trò là tạo ra header cho những yêu cầu khác.

Ưu điểm: bất kỳ sơ đồ nào cũng mô hình hóa được, kể cả những sơ đồ mà không danh sách thả xuống nào dự trù — một trao đổi hai bước, một token có chữ ký, một API tự viết. Nhược điểm: bạn phải viết nó một lần.

Nhấp chuột phải lên một thư mục biếnThêm ▸ Yêu cầu xác thực HTTP.

Trước hết hãy cấu hình lời gọi như một yêu cầu HTTP bình thường: phương thức, URL, header, thân. Sau đó mở tab Cấu hình của nó, nơi chứa ba thiết lập riêng của phần xác thực.

Tab Cấu hình của một yêu cầu xác thực, với ba phần: các header sinh ra, thời hạn tính bằng giây và các mã lỗi xác thực

Danh sách các header mà tuyến này sẽ chèn vào mọi yêu cầu tham chiếu tới nó. Mỗi giá trị là một biểu thức được ước lượng trên thân phản hồi của yêu cầu xác thực.

HeaderGiá trị
Authorization{{token_type}} {{access_token}}

Một biểu thức, cũng được ước lượng trên thân phản hồi, cho ra thời gian hiệu lực tính bằng giây — thường là {{expires_in}}. Nếu để trống, token sẽ không bao giờ tự hết hạn.

Các mã trạng thái HTTP mà khi một yêu cầu dùng tuyến này nhận được, sẽ kích hoạt việc gia hạn token rồi tự động thử lại. Mặc định: 401403.

Một yêu cầu xác thực là phần tử bạn tạo ra trong cây. Một tuyến xác thực là chính phần tử đó nhìn từ một yêu cầu khác, trong bộ chọn dùng để gắn nó. Hai thuật ngữ này chỉ cùng một thực thể, ở hai nơi trong giao diện.

Trên tab của yêu cầu, trong smartbar, một bộ chọn Tuyến xác thực liệt kê các tuyến của thư mục biến. Nhãn mặc định là Không xác thực.

Sau khi được gắn, các header sinh ra sẽ được chèn vào mỗi lần gửi, token được lưu đệm cho tới khi hết hạn, và một mã 401 sẽ gây ra một lần gia hạn trong suốt.

Yêu cầu: POST https://auth.exemple.test/oauth/token, thân x-www-form-urlencoded với grant_type=client_credentials, client_id={{clientId}}, client_secret={{clientSecret}} (trong đó secret là một giá trị kiểu Bí mật).

Header sinh ra: Authorization = {{token_type}} {{access_token}}. Thời hạn: {{expires_in}}.

Không cần yêu cầu nào nếu bạn đã có sẵn thông tin đăng nhập: chỉ cần đặt header lên yêu cầu (hoặc lên thư mục):

Authorization = Basic {{base64Encode (append (append user ":") password)}}

Một header hoặc một tham số truy vấn là đủ: X-API-Key = {{apiKey}}, với khóa là một biến kiểu Bí mật.

Hãy tạo một kịch bản: lời gọi thứ nhất, trích xuất mã trung gian, lời gọi thứ hai, rồi dùng Đặt biến để đưa token vào các biến của lần chạy. Những yêu cầu tiếp theo trong kịch bản đọc token đó bằng {{jeton}}.

Khi nhập một đặc tả, các sơ đồ bảo mật được khai báo sẽ được chuyển thành các header hoặc tham số đấu nối sẵn, kèm một biến môi trường được tạo giúp bạn:

Sơ đồ trong đặc tảNhững gì Restorm đặt ra
apiKey (header hoặc truy vấn)Một cặp đặt tên theo sơ đồ, giá trị {{<schema>}}
http / basicAuthorization: Basic {{<schema>_credentials}}
http / bearer, oauth2, openIdConnectAuthorization: Bearer {{<schema>_token}}

Bạn chỉ còn việc điền giá trị cho biến, hoặc thay nó bằng một tuyến xác thực nếu bạn muốn có cơ chế tự động gia hạn.

Thông tin đăng nhập gốc theo giao thức

Section titled “Thông tin đăng nhập gốc theo giao thức”

Một số giao thức không đi qua header HTTP. Thông tin đăng nhập của chúng là các trường của chính yêu cầu:

Giao thứcCác trường
MQTTusername, password, định danh client
AMQPusername, password, vhost
Redispassword
KafkaCơ chế SASL (plain, scram-sha-256, scram-sha-512), định danh, mật khẩu, TLS
STOMPHeader loginpasscode của CONNECT
gRPCMetadata của lời gọi

Mỗi mật khẩu trong số này đều chấp nhận một giá trị kiểu Bí mật.