2014-07-17 29 views
8

Thông thường tôi Xuân SAML dựa trên cung cấp dịch vụ (SP) thực hiện hoạt động tốt, nhưng đôi khi nó sẽ trả về lỗi này:Recipient endpoint không phù hợp với SAML phản ứng

[2014-07-17 16:00:58.767] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseMessageDecoder:  Successfully decoded message. 
[2014-07-17 16:00:58.767] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: Checking SAML message intended destination endpoint against receiver endpoint 
[2014-07-17 16:00:58.768] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: Intended message destination endpoint: https://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias 
[2014-07-17 16:00:58.768] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: Actual message receiver endpoint: http://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias 
[2014-07-17 16:00:58.768] boot - 1078 ERROR [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: SAML message intended destination endpoint 'https://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias' did not match the recipient endpoint 'http://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias' 
[2014-07-17 16:00:58.782] boot - 1078 DEBUG [http-bio-80-exec-1] --- SAMLProcessingFilter: Incoming SAML message is invalid 
org.opensaml.xml.security.SecurityException: SAML message intended destination endpoint did not match recipient endpoint 
... 

Tôi đang sử dụng (như thiết lập mặc định của xuân an) các HTTP Strict Transport Security (HSTS) trên Tomcat 7 với SSL kích hoạt.

Có cách nào để khắc phục lỗi này không?


Lưu ý: mã nguồn mẫu là trên Github: vdenotaris/spring-boot-security-saml-sample.

+0

Tôi nghĩ bạn đã bỏ lỡ 's' trong giao thức được định cấu hình trong điểm cuối idp của bạn. Bạn mong đợi "https" nhưng có vẻ như bạn nhận được "http". –

+0

Cấu hình hiện tại hoạt động bình thường, đôi khi nó gây ra lỗi như trên. Tôi nghĩ rằng vấn đề là cái gì khác. Có lẽ tôi đã thiết lập thủ công các siêu dữ liệu, có lẽ tôi đã bỏ lỡ một thiết lập nhất định (tôi chỉ giả sử). – vdenotaris

+0

Liên kết cung cấp cho tôi một "Trang lỗi có nhãn trắng". Nó không phải là siêu dữ liệu. Ngoài ra, đó là có dây khi bạn nói "hoạt động thường tốt", nó nên luôn luôn hoặc không bao giờ hoạt động! Tôi đoán có cái gì đó để làm với giao thức. Có thể đôi khi bạn kết nối từ http và đôi khi từ https. Và idp của bạn dường như mong đợi https. –

Trả lời

16

Tôi không biết tại sao sự cố của bạn xảy ra ngẫu nhiên, nhưng ít nhất một cách để khắc phục sự cố là định cấu hình SAMLContextProviderLB thay vì SAMLContextProviderImpl hiện tại của bạn.

Thông tin SAMLContextProviderLB thường được sử dụng để báo cho công chúng biết về URL công cộng được sử dụng trên proxy ngược hoặc trình cân bằng tải. Tuy nhiên, trong trường hợp này, bạn có thể sử dụng để buộc SAML sử dụng HTTPS. Bạn có thể tìm thấy chi tiết trong chương 9.1 của Spring SAML manual.

Bạn cũng nên đảm bảo đặt đúng thuộc tính entityBaseURL trên bean MetadataGenerator của mình, vì không làm như vậy, siêu dữ liệu được tạo sẽ phụ thuộc vào việc bạn đã thực hiện yêu cầu đầu tiên cho ứng dụng của mình bằng http hay https. Một lần nữa, tất cả điều này là documented.

+0

Có, khi bạn đạt đến 2.000 đại diện, bạn không còn nhận được mức tăng danh tiếng để chỉnh sửa. Bạn cũng không phải đợi các chỉnh sửa của mình được chấp thuận khi bạn thực hiện chúng và bạn có quyền truy cập vào bảng đánh giá cho các chỉnh sửa được đề xuất của những người khác. – TylerH

+0

Cảm ơn bạn rất nhiều (như thường lệ). Bây giờ, nó hoạt động tốt. – vdenotaris

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