Sự khác biệt giữa SSO khởi tạo SP và SSO khởi tạo IDP


107

Bất cứ ai có thể giải thích cho tôi sự khác biệt chính giữa SSO do SP khởi tạoSSO do IDP khởi xướng là gì, bao gồm giải pháp nào sẽ là giải pháp tốt hơn để triển khai đăng nhập một lần cùng với ADFS + OpenAM Federation?


2
Để làm rõ cho bất kỳ ai mới làm quen với các khái niệm: SP = nhà cung cấp dịch vụ (hệ thống mà người dùng muốn sử dụng) và IdP = xác định nhà cung cấp (hệ thống xác thực người dùng)
Seafish 12/02

Câu trả lời:


72

Trong IDP Init SSO (SSO Web không mong muốn), quá trình Liên kết được bắt đầu bởi IDP gửi một phản hồi SAML không mong muốn tới SP. Trong SP-Init, SP tạo AuthnRequest được gửi tới IDP như là bước đầu tiên trong quy trình Liên kết và IDP sau đó sẽ phản hồi bằng một Phản hồi SAML. Hỗ trợ IMHO ADFSv2 cho SAML2.0 Web SSO SP-Init mạnh hơn hỗ trợ IDP-Init tái: tích hợp với các sản phẩm của Fed bên thứ 3 (chủ yếu xoay quanh hỗ trợ cho RelayState) vì vậy nếu có lựa chọn, bạn sẽ muốn sử dụng SP- Init vì nó có thể sẽ làm cho cuộc sống dễ dàng hơn với ADFSv2.

Dưới đây là một số mô tả SSO đơn giản từ Hướng dẫn bắt đầu PingFederate 8.0 mà bạn có thể xem qua cũng có thể hữu ích - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html


81

IDP đã khởi tạo SSO

Từ tài liệu PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

Trong trường hợp này, người dùng đã đăng nhập vào IdP và cố gắng truy cập tài nguyên trên máy chủ SP từ xa. Xác nhận SAML được chuyển đến SP qua HTTP POST.

Các bước xử lý:

  1. Một người dùng đã đăng nhập vào IdP.
  2. Người dùng yêu cầu quyền truy cập vào tài nguyên SP được bảo vệ. Người dùng chưa đăng nhập vào trang SP.
  3. Theo tùy chọn, IdP truy xuất các thuộc tính từ kho dữ liệu người dùng.
  4. Dịch vụ SSO của IdP trả về một biểu mẫu HTML cho trình duyệt với phản hồi SAML chứa xác nhận xác thực và bất kỳ thuộc tính bổ sung nào. Trình duyệt tự động đăng biểu mẫu HTML trở lại SP.

SP Khởi tạo SSO

Từ tài liệu PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

Trong trường hợp này, người dùng cố gắng truy cập tài nguyên được bảo vệ trực tiếp trên một trang Web SP mà không cần đăng nhập. Người dùng không có tài khoản trên trang SP, nhưng có tài khoản liên kết do IdP bên thứ ba quản lý. SP gửi một yêu cầu xác thực đến IdP. Cả yêu cầu và xác nhận SAML trả về đều được gửi qua trình duyệt của người dùng thông qua HTTP POST.

Các bước xử lý:

  1. Người dùng yêu cầu quyền truy cập vào tài nguyên SP được bảo vệ. Yêu cầu được chuyển hướng đến máy chủ liên kết để xử lý xác thực.
  2. Máy chủ liên kết gửi một biểu mẫu HTML trở lại trình duyệt với yêu cầu SAML để xác thực từ IdP. Biểu mẫu HTML được tự động đăng lên dịch vụ SSO của IdP.
  3. Nếu người dùng chưa đăng nhập vào trang IdP hoặc nếu yêu cầu xác thực lại, IdP sẽ yêu cầu thông tin xác thực (ví dụ: ID và mật khẩu) và người dùng đăng nhập.
  4. Thông tin bổ sung về người dùng có thể được truy xuất từ ​​kho dữ liệu người dùng để đưa vào phản hồi SAML. (Các thuộc tính này được xác định trước như một phần của thỏa thuận liên kết giữa IdP và SP)

  5. Dịch vụ SSO của IdP trả về một biểu mẫu HTML cho trình duyệt với phản hồi SAML chứa xác nhận xác thực và bất kỳ thuộc tính bổ sung nào. Trình duyệt tự động đăng biểu mẫu HTML trở lại SP. LƯU Ý: Các thông số kỹ thuật của SAML yêu cầu các phản hồi POST phải được ký điện tử.

  6. (Không hiển thị) Nếu chữ ký và xác nhận hợp lệ, SP thiết lập một phiên cho người dùng và chuyển hướng trình duyệt đến tài nguyên đích.


1
Re SP Initiated SSO - điểm 3 ở trên cho biết "Nếu người dùng chưa đăng nhập vào trang IdP hoặc nếu yêu cầu xác thực lại, IdP sẽ yêu cầu thông tin xác thực (ví dụ: ID và mật khẩu) và người dùng đăng nhập." Làm cách nào để hệ thống xác định xem người dùng đã đăng nhập vào trang IdP hay chưa? Chẳng hạn, nó có tạo ra một cookie không?
Edwardo

1
@Edwardo Giả định của bạn là đúng. Khi một phiên được thiết lập với IdP, thường thì IdP sẽ tạo một cookie để duy trì phiên đó.
jekennedy

Tôi có một câu hỏi khác stackoverflow.com/questions/43861315/… . Bạn có thể nhìn vào nó được không?
kawadhiya21

49

SP Khởi tạo SSO

Lập hóa đơn cho người dùng: "Này Jimmy, hãy cho tôi xem báo cáo đó"

Jimmy the SP: "Này, tôi chưa chắc bạn là ai. Chúng tôi có một quy trình ở đây để bạn tự xác minh IdP với Bob trước. Tôi tin tưởng anh ấy."

Bob the IdP: "Tôi thấy Jimmy đã cử bạn đến đây. Vui lòng cung cấp cho tôi thông tin đăng nhập của bạn."

Lập hóa đơn cho người dùng: "Xin chào, tôi là Bill. Đây là thông tin đăng nhập của tôi."

Bob the IdP: "Xin chào Bill. Có vẻ như bạn đã thanh toán."

Bob the IdP: "Này Jimmy. Anh chàng Bill này đã kiểm tra và đây là một số thông tin bổ sung về anh ta. Bạn có thể làm bất cứ điều gì bạn muốn từ đây."

Jimmy the SP: "Được rồi. Có vẻ như Bill cũng nằm trong danh sách những vị khách đã biết của chúng tôi. Tôi sẽ cho Bill vào."

IdP đã khởi tạo SSO

Gửi hóa đơn cho người dùng: "Này Bob. Tôi muốn đến chỗ của Jimmy. Ở đó an ninh được thắt chặt."

Bob the IdP: "Này Jimmy. Tôi tin tưởng Bill. Anh ấy đã kiểm tra và đây là một số thông tin bổ sung về anh ấy. Bạn có thể làm bất cứ điều gì bạn muốn từ đây."

Jimmy the SP: "Được rồi. Có vẻ như Bill cũng nằm trong danh sách những vị khách đã biết của chúng tôi. Tôi sẽ cho Bill vào."


Tôi đi vào chi tiết hơn ở đây, nhưng vẫn giữ mọi thứ đơn giản: https://jorgecolonconsults.com/saml-sso-in-simple-terms/ .


33
Tôi không nghĩ cuộc trò chuyện thứ hai là đúng .... thay vào đó phải là: IdP: "Này, đây là một số thông tin về Sal, vui lòng cho cô ấy vào" / SP: "Ok, tôi tin tưởng bạn, tôi sẽ để cô ấy trong "
Jeff Olson

4
cuộc nói chuyện đầu tiên cũng là không đúng: trong bước SP đầu tiên không biết gì về những người sử dụng nó là chưa, chỉ tại IdP người dùng sẽ đăng nhập và tự coi mình là "Sal"
Allie

4
Cuộc trò chuyện đầu tiên nên là: SP: "Này, ID của bạn ở đâu?" IdP: "Chờ đã, tôi sẽ kiểm tra nó. Hãy cho tôi xem ID của bạn. Ok anh bạn cho cô ấy vào, cô ấy tên là Sal và cô ấy 21 (tùy chọn)" SP: "Tuyệt vời, bạn tuyệt vời! Này bạn, vào đi ! "
Erdal G.

3
Tôi tin rằng câu trả lời này không xứng đáng với số phiếu bầu mà nó nhận được. Nó trả lời câu hỏi theo cách sáng tạo, có thể không chính xác như một số người đã chỉ ra, nhưng sáng tạo thì không.
Aaron C

2
Sẽ rất thú vị khi xem câu trả lời chính xác ở định dạng này. Đôi mắt của tôi đang dán vào khi đọc các câu trả lời được bình chọn cao, định dạng này giúp nắm bắt khái niệm chung rất nhanh. Tôi không biết đủ để tự tin tạo ra một câu trả lời dựa trên các nhận xét của chính mình.
Sean Connolly
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.