2015-06-26 25 views
5

Chỉnh sửaLàm cách nào để thiết lập nhà cung cấp danh tính Shibboleth 3?

Vì vậy, tôi nghĩ tôi gần như ở đó. Điều duy nhất vẫn còn thiếu là Shibboleth IdP trả về một NameId tạm thời được mã hóa và tôi cần nó để trả lại tên người dùng, không được mã hóa. Nếu bất cứ ai có thể đưa tôi qua cái chặn cuối cùng này, tôi sẽ đánh dấu câu trả lời đó.

(kết thúc chỉnh sửa)

Tôi đã cố gắng để thiết lập một Shibboleth 3 IdP (ứng dụng của chúng tôi hỗ trợ SAML, và chúng ta cần một môi trường thử nghiệm).

Mục tiêu của tôi là một môi trường đơn giản truy vấn thư mục LDAP của chúng tôi để cung cấp xác thực.

Tôi thiết lập Shibboleth IdP 3 và có vẻ như truy vấn AD một cách chính xác, nhưng tôi đang gặp khó khăn khi trả lại thuộc tính (uid, First Name, Last Name, email) mà tôi yêu cầu.

Tôi khá chắc chắn rằng sự cố của tôi nằm trong tệp thuộc tính-resolver.xml và thuộc tính-filter.xml của mình, nhưng tôi không có may mắn khi nó hoạt động.

Về cơ bản những gì xảy ra là tôi đăng nhập thành công (theo như Shibboleth có liên quan), nhưng khi nó chuyển Assertion về ứng dụng của tôi, không có thuộc tính nào ở đó.

Tôi đã thử thêm chúng vào Attribute-resolver.xml và thuộc tính-filter.xml, nhưng sau đó tôi nhận được lỗi trong idp-warn.log (bên dưới). Đó là lỗi thông tin xác thực. Tôi khá chắc chắn mật khẩu tên người dùng là đúng, bởi vì shibboleth có thể xác thực tôi (nó sẽ thất bại nếu đó là sai, phải không?) Vì vậy, phải có cái gì khác sai với thiết lập của tôi.

Tôi cũng đã thử trả lại tên người dùng trong Định danh tên xác nhận, nhưng tất cả dường như tôi quay lại là chuỗi mã hóa cơ sở 64 (giải mã nó tạo ra byte không giải mã trở lại chuỗi, vì vậy tôi không chắc chắn những gì trong đó).

Tại thời điểm này, những gì tôi thực sự có thể sử dụng tham chiếu đến cách thực hiện tốt để thiết lập Shibboleth IdP 3 với LDAP. Tôi đã trải qua các tài liệu của họ trực tuyến, và trong khi có rất nhiều dữ liệu thô ở đó, nó rất khó khăn để lấy được một danh sách tất cả mọi thứ phải được thực hiện để có được nó và chạy. Bất kỳ đề xuất?

Trả lời

0

không phải là câu trả lời đầy đủ và tôi chưa từng làm việc với shibboleth, nhưng chúng tôi đã gặp sự cố tương tự với NameID trong khi thiết lập SAML.

Tôi tin trang này cho thấy nóng để thiết lập mà tên id khẩu hiệu sẽ gửi: https://wiki.shibboleth.net/confluence/display/SHIB2/ResolverSAML2NameIDAttributeDefinition

và câu trả lời này mô tả những gì chương trình tên khác có nghĩa https://stackoverflow.com/a/21682789/143585

Những gì chúng ta đã làm, tuy nhiên, là trong cấu hình saml cho SAMLAuthenticationProvider chúng tôi đã thêm userDetails và có một mảnh đẹp mã mà tôi rất tự hào về:

@Override 
public Object loadUserBySAML(SAMLCredential credential) throws UsernameNotFoundException { 
    try { 
     String login = credential.getAttributeByName("login").getAttributeValues().get(0).getDOM().getFirstChild().getNodeValue(); 
     return loadUserByUsername(login); 
    } catch (Exception e) { 
     LOG.error("could not get login name from saml credential", e); 
     throw new UsernameNotFoundException("Could not load user", e); 
    } 
} 

thứ IDP đã được xử lý bởi một bên thứ 3 vì vậy tôi đoán đó là những kẻ adde d thuộc tính tùy chỉnh này để phản hồi saml. Tôi đoán bạn có thể cấu hình shibboleth để làm như vậy.

+0

Hi Denis: Cảm ơn bạn đã phản hồi. Wiki Shibboleth mà bạn liên kết là dành cho v2. Thật không may, họ đã cập nhật hệ thống cấu hình trong phiên bản 3.Bây giờ nó rất phức tạp và cách phân tích v2 trong Attribute-Resolver được xem là di sản. Cuối cùng, tôi đã xoay xở để lén lút và làm cho nó hoạt động, với sự giúp đỡ của một số người trên diễn đàn người dùng Shibboleth. – JMarsch

+1

@JMarsch, vâng, triển khai đăng nhập saml trong ứng dụng của chúng tôi là quá đáng. Tôi không biết tại sao mọi thứ phải phức tạp đến vậy. –

+0

Hãy cho tôi biết về nó - thật khủng khiếp. – JMarsch

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