Tôi đang xem xét một dự án mới mà chúng tôi đang lên kế hoạch thực hiện API trước tiên, để chúng tôi có thể triển khai ứng dụng web và bản địa trên đầu trang hội nhập bên. Tất cả đều khá chuẩn.Kiểm tra API tự động của API được bảo vệ bởi OAuth2/OpenID Connect
Chúng tôi cũng muốn có một bộ đầy đủ các kiểm tra tự động cho API, cả hai để đảm bảo rằng nó hoạt động mà không có hồi quy, và để đảm bảo nó đáp ứng các yêu cầu. Một lần nữa, khá chuẩn, nhưng vì chúng tôi đang thử nghiệm API, chúng tôi sẽ sử dụng một ứng dụng khách HTTP trong mã và không phải là một trình duyệt web.
Chúng tôi đã xem xét oauth2/OpenID Connect để tạo điều kiện xác thực và ủy quyền cho API - về cơ bản để khách hàng có thể xác thực, nhận mã thông báo truy cập và sử dụng nó để truy cập tất cả các tài nguyên API.
Điều tôi đang cố gắng giải quyết là một cách hay để làm các thử nghiệm tự động hoạt động với phần oauth2 để có thể thực sự gọi API. Ý nghĩ đầu tiên là sử dụng các loại tài khoản "client_credentials" hoặc "password", cả hai có vẻ như chúng sẽ hoạt động cho những gì chúng ta muốn, nhưng chúng không được đề cập trong đặc tả OpenID Connect, và dĩ nhiên là "mật khẩu" "ít nhất là nó thường không được coi là một ý tưởng hay.
Đây có phải là cách tốt nhất để đạt được điều này hoặc có các phương pháp hay nhất khác cho tình huống này có thể được sử dụng với các luồng khác, nhưng không có trình duyệt web?
Chỉnh sửa: sau khi đọc (nhiều) hơn, tôi có một gói mới. Chạy thử nghiệm hoàn toàn ngoại tuyến, sử dụng triển khai riêng biệt với cơ sở dữ liệu riêng biệt và dữ liệu gieo trực tiếp vào cơ sở dữ liệu trước khi chạy thử nghiệm và sau đó sử dụng luồng OpenID Connect chuẩn, nhưng:
- Khách hàng được đánh dấu cơ sở dữ liệu như cho mục đích thử nghiệm. Đây là một bit quan trọng, và chỉ có thể nếu khách hàng có thể được đăng ký trực tiếp vào cơ sở dữ liệu mà không phải trải qua logic nghiệp vụ.
- nhắc = none
- login_hint = tên người dùng để có được một thẻ truy cập cho
- phạm vi chứa "thử nghiệm"
Hệ thống này sau đó có thể phát hiện sự kết hợp của sự kiện, và tự động xác nhận tên người dùng được cung cấp mà không cần phải đi qua một trình duyệt.
Điều này có vẻ hợp lý không? đây có phải là cách tốt hơn không?
Bạn đã thử [công cụ chứng nhận OpenID Connect] (https://openid.net/certification/testing/) do OpenID Foundation cung cấp chưa? –
Sự hiểu biết của tôi là điều này là để thử nghiệm các dịch vụ OpenID Connect, trong khi tôi quan tâm hơn đến việc kiểm tra các dịch vụ API khác sẽ được sản xuất và bảo vệ sau Thẻ truy cập kết nối OAuth2/OpenID, có nghĩa là để gọi chúng tôi cần một số cách để có được các Thẻ truy cập hợp lệ theo chương trình. – Graham
Tôi không hiểu cách tạo người dùng thử nghiệm đặc biệt được bảo mật? Điều gì xảy ra nếu ai đó truy cập vào môi trường thử nghiệm của bạn hoặc tìm ra cách tạo người dùng thử nghiệm trên sản xuất? Nó không có vẻ như là giải pháp phù hợp với tôi. –