2015-12-18 28 views
23

Tôi đang cố gắng hiểu SSO bằng SAML. Tôi đã đi qua các tham số RelayState và rất bối rối chính xác lý do tại sao nó đến đầu tiên trong SSO để gửi các URL được mã hóa? Nó chính xác có ý nghĩa gì?Thông số RelayState chính xác được sử dụng trong SSO (Ví dụ: SAML) là gì?

hãy đọc phần sau đây từ the Google Developer documentation:

Google tạo ra một yêu cầu xác thực SAML. Yêu cầu SAML được mã hóa và được nhúng vào URL cho dịch vụ SSO của đối tác. Tham số RelayState chứa URL được mã hóa của ứng dụng Google mà người dùng đang cố truy cập cũng được nhúng trong URL SSO. tham số RelayState này được hiểu là một định danh đục đó là thông qua lại mà không cần bất kỳ sửa đổi hoặc kiểm tra

Trả lời

38

Ý nghĩa ban đầu của RelayState là SP có thể gửi một số giá trị cho IDP cùng với AuthnRequest và sau đó nhận được nó trở lại . SP có thể đặt bất kỳ giá trị nào mà nó muốn trong số RelayState và IDP sẽ chỉ phản hồi lại giá trị đó trong phản hồi.

tham số RelayState này được hiểu là một định danh đục đó là thông qua lại mà không cần bất kỳ sửa đổi hoặc kiểm tra

cũng khác Có, tiêu chuẩn de facto sử dụng cho RelayState khi sử dụng đăng nhập IDP-khởi xướng trên. Trong trường hợp đó, không có yêu cầu đến từ SP, do đó không thể chuyển trạng thái trở lại. Thay vào đó, RelayState được IDP sử dụng để báo hiệu cho SP URL nào SP sẽ chuyển hướng đến sau khi đăng nhập thành công. Đó là không phải là một phần của tiêu chuẩn SAML2.

Có vẻ như Google đang sử dụng RelayState cho URL mục tiêu ngay cả khi đăng nhập SP được khởi tạo, điều này hoàn toàn ổn. Nhưng IDP nên, như tài liệu nói, chỉ cần chuyển nó trở lại.

+0

Tôi rất vui vì 'sử dụng tiêu chuẩn thực tế' đã được chỉ ra ở đây. Tôi đã đấu tranh để hiểu tại sao URL chuyển hướng được gửi dưới 'RelayState'. –

5

RelayState là một định danh cho tài nguyên tại SP mà IDP sẽ chuyển hướng người dùng đến (sau khi đăng nhập thành công). Đó là một cách để làm cho quá trình SSO trở nên thoáng qua hơn cho người dùng vì chúng được chuyển hướng trở lại cùng một trang mà họ đã yêu cầu ban đầu tại SP.

0

Theo tài liệu SAML chính thức,

Một số ràng buộc xác định một cơ chế "RelayState" cho bảo quản và truyền đạt thông tin trạng thái. Khi cơ chế như vậy được sử dụng để truyền tải thông báo yêu cầu làm bước ban đầu của giao thức SAML, nó yêu cầu địa điểm về lựa chọn và sử dụng ràng buộc sau đó được sử dụng để truyền tải phản hồi. Cụ thể, nếu một thông báo yêu cầu SAML đi kèm với dữ liệu RelayState, thì đáp ứng SAML PHẢI trả lại phản hồi giao thức SAML bằng cách sử dụng một ràng buộc cũng hỗ trợ cơ chế RelayState và nó phải đặt dữ liệu RelayState chính xác mà nó nhận được với yêu cầu tham số RelayState tương ứng trong phản hồi.

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