2011-08-05 37 views
12

Khi ký một Phản hồi SAML cũng có một Xác nhận đã ký tên, tôi nên:Đăng câu trả lời SAML có hoặc không có Chữ ký xác nhận?

A) Tạo chữ ký Phản hồi mà không có chữ ký xác nhận. Sau đó, chèn chữ ký xác nhận sau khi cả hai chữ ký đã được tạo.

B) Tạo chữ ký xác nhận và bao gồm chữ ký đó khi tạo chữ ký Phản hồi.

C) Cái gì khác.?.

~ Cảm ơn bạn trước!

Trả lời

6

Tôi tin câu trả lời đúng là B). Ký Assertion trước rồi ký vào Response có chứa dữ liệu Assertion đã ký. Tuy nhiên, nếu một tổ chức phát hành đơn lẻ (STS/IDP/etc) đang ký cả hai thì không có lý do thực sự nào để ký xác nhận là có? Chỉ cần ký vào Thông báo/Phản hồi của Giao thức cần bao gồm dữ liệu Xác nhận. Điều này sẽ cắt giảm các yêu cầu xử lý tại SP. Đối với SSO Web, tôi chỉ từng thấy cả hai phần được ký khi bạn có một thực thể khác ký xác nhận và phản hồi. - Ian

5

Nếu bạn ký cả hai, thì xác nhận PHẢI được ký trước, sau đó trả lời, vì chữ ký phản hồi sẽ dựa trên toàn bộ nội dung của phản hồi (bao gồm chữ ký xác nhận). Vì vậy, việc ký xác nhận thứ hai sẽ làm mất hiệu lực chữ ký phản hồi.

35

SAML là khủng khiếp, mỗi khi tôi đọc câu trả lời họ là gần như chính xác, đây là thuật toán chính xác cất:

  1. SHA1 phiên bản kinh điển của Assertion.
  2. Tạo một mảnh với chữ ký SHA1
  3. Ký tên vào mảnh SignedInfo XML, một lần nữa các hình thức kinh điển
  4. Lấy SignedInfo, chữ ký và các thông tin quan trọng và tạo ra một mảnh Chữ ký XML
  5. Chèn SignatureXML này SignedInfo XML vào assertion (nên đi ngay trước khi saml: môn)
  6. Không tak sự khẳng định (có chữ ký kèm theo) và đưa vào ứng
  7. SHA1 phản ứng này
  8. Tạo một SignedI đoạn XML nfo với chữ ký SHA1
  9. Ký tên vào mảnh SignedInfo XML, một lần nữa các hình thức kinh điển
  10. Lấy SignedInfo, chữ ký và các thông tin quan trọng và tạo ra một mảnh Chữ ký XML
  11. Chèn SignatureXML này vào đáp ứng
  12. Thêm thông tin phiên bản XML vào phản hồi.

Thats it. SAML hoàn toàn khủng khiếp. Có rất nhiều sự tinh tế nhỏ làm cho việc thực hiện SAML trở thành cơn ác mộng (như tính toán hình thức kinh điển của một tập hợp con của XML (xác nhận), cũng không phải là phiên bản XML của các tài liệu XML không được bao gồm.

0

Câu trả lời đúng là B.

Nếu khẳng định bên ký nhận phản hồi SAML bằng A, thì bên phụ thuộc phải xóa chữ ký của phản hồi SAML và chữ ký xác nhận SAML trước khi xác thực phản hồi SAML. Đặc tả kỹ thuật cốt lõi SAML nói rằng chữ ký không được tạo ra bằng cách sử dụng các biến đổi khác với biến đổi chữ ký bao bọc hoặc biến đổi chuẩn hóa độc quyền. Không ai trong số hai biến đổi này có thể loại bỏ chữ ký xác nhận SAML. Do đó, bên phụ thuộc không thể xác thực phản hồi SAML.

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