2017-01-10 17 views
7

Theo tài liệu, IdentityServer sử dụng cặp khóa bất đối xứng để ký và xác nhận JWT. Người ta có thể sử dụng AddTemporarySigningCredential() trong cấu hình tạo RSA mới mỗi khi khởi động hoặc sử dụng AddSigningCredential(..) bằng khóa RSA hoặc chứng chỉ.AddTemporarySigningCredential vs AddSigningCredential trong IdentityServer4

Tài liệu đề cập đến phiên bản tạm thời hữu ích cho các tình huống phát triển nhưng không cho biết nhược điểm của điều này khi được sử dụng trong môi trường sản xuất là gì.

Tôi có api web aspnetcore trong đó khách hàng được xác thực bằng IdentityServer4. Hệ thống này hoạt động tốt tại thời điểm này với tính tạm thời nhưng tôi tự hỏi liệu có bất kỳ lợi ích nào trong việc sử dụng biến thể khác không.

Cảm ơn,

Trả lời

12

Điểm bất lợi là, rằng mỗi khi bạn khởi động lại IdentityServer, vật liệu quan trọng sẽ thay đổi - hoặc IOW - tất cả các thẻ đã được ký kết với các tài liệu quan trọng trước sẽ thất bại để xác nhận.

"Tạm thời" thực sự chỉ dành cho các tình huống mà bạn không có sẵn tài liệu chính khác.

+0

Chỉ vì tò mò, điều gì sẽ xảy ra với khách hàng cố gắng xác thực bằng cách sử dụng tài liệu chính cũ trong ví dụ này? Nó sẽ đơn giản yêu cầu một mã thông báo mới? –

7

Thay vì AddTemporarySigningCredential xem xét để sử dụng AddDeveloperSigningCredential

Từ http://docs.identityserver.io/en/release/topics/startup.html#refstartupkeymaterial:

AddDeveloperSigningCredential

Cùng mục đích như các chứng chỉ ký tạm thời. Nhưng phiên bản này vẫn giữ nguyên khóa cho hệ thống tệp nên nó vẫn ổn định giữa máy chủ khởi động lại. Điều này giải quyết các vấn đề khi siêu dữ liệu máy khách/api lưu trữ không đồng bộ trong quá trình phát triển.

CẢNH BÁO: AddDeveloperSigningCredential thể được sử dụng chỉ khi IdentityServer máy chủ đang chạy trên một máy SINGLE, cho trang trại sản xuất bạn cần phải sử dụng AddSigningCredential.

+2

AddTemporary dường như bị thiếu trong bản xem trước mới nhất hỗ trợ lõi .net ?? –

+2

@RasmusChristensen, chính xác, xem https://github.com/IdentityServer/IdentityServer4/issues/1139 –

Các vấn đề liên quan