Sự khác biệt giữa 'aud' và 'iss' trong jwt


12

Tôi muốn triển khai một dịch vụ xác thực mạnh mẽ hơn và jwtlà một phần lớn trong những gì tôi muốn làm và tôi hiểu cách viết mã, nhưng tôi gặp một chút khó khăn khi hiểu sự khác biệt giữa bảo lưu issaudkhiếu nại. Tôi hiểu rằng máy chủ xác định máy chủ đang phát hành mã thông báo và máy chủ đề cập đến ứng dụng được sử dụng. Nhưng theo cách tôi hiểu đó là khán giả và nhà phát hành của tôi giống nhau myserver.comđang phát hành mã thông báo để những người đến myserver.comcó thể được ủy quyền và xác thực. Tôi đoán tôi không thấy sự khác biệt giữa hai yêu sách, mặc dù tôi biết có một.
Có một bài viết hay được viết tạimsdn trên tất cả các khiếu nại được bảo lưu và đó là nơi tôi cảm thấy bối rối nhất vì họ có nhà phát hành và đối tượng hoàn toàn khác nhau.


Bạn có thể quan tâm JWT RFC-7519
Laiv

Câu trả lời:


9

Chúng được dành cho các tình huống trong đó bạn có quyền phát hành mã thông báo không giống với ứng dụng là người nhận dự định.

Điều này có thể không khác nhau cho ứng dụng của bạn.

Nhưng hãy xem xét một ứng dụng quy mô lớn. Bạn có thể có máy chủ OAuth hoặc SSO đang cấp chứng chỉ và ứng dụng muốn có mã thông báo cho thấy máy chủ SSO đã kiểm tra thông tin đăng nhập của người dùng và đã chấp thuận cho người dùng sử dụng ứng dụng. Trong trường hợp đó, bạn có thể có mã thông báo với "aud": "aud.example.com""iss": "sso.example.com".


Ồ tôi hiểu rồi. Đó là một sự hiểu lầm từ phía tôi bởi vì tôi nghĩ hai điều: 1. Bạn phải có cả "hiện tại" và "kiểm toán" như là một phần của yêu cầu bồi thường. 2. Họ phải là duy nhất cho nhau. Đây rõ ràng không phải là sự thật. Vì vậy, nếu bạn có một ứng dụng như của tôi, bạn thậm chí sẽ bao gồm hai yêu cầu đó trong của bạn jwthoặc loại bỏ chúng vì chúng sẽ giống hệt nhau?
Adam McGurk

Bạn chắc chắn có thể loại bỏ chúng và thêm chúng sau này khi bạn có lý do để sử dụng nó
Paul
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.