2013-01-18 33 views
8

là bất kỳ ai biết về bất kỳ máy chủ Kerberos nhúng nào (KDC/KAdmin), được viết bằng Java và có thể chạy ngay trong quy trình JVM (giống như máy chủ Hadoop hoặc máy chủ LDAP nhúng)?Máy chủ Kerberos nhúng Java được viết Java để kiểm tra

Mục tiêu của tôi là cho phép mọi người chạy thử nghiệm tích hợp yêu cầu xác thực Kerberos mà không phải cài đặt máy chủ kerberos cục bộ/định cấu hình máy chủ từ xa và kết nối với máy chủ đó.

Trả lời

4

Bạn có thể cung cấp cho Apache Directory Server (http://directory.apache.org/) một thử. Nó hỗ trợ LDAP và Kerberos. Xem ví dụ sau:

http://svn.apache.org/repos/asf/directory/apacheds/trunk/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/SaslGssapiBindITest.java

+0

@ Michael-O kiểm tra này chứng tỏ chức năng của KDC được nhúng và được thực hiện trong java thuần túy. – kayyagari

+0

CÓ: '@ CreateKdcServer'. –

+0

Vâng, cảm ơn - chỉ có thời gian để quay lại công việc này, có vẻ như đó là một cách để đi. Tôi sẽ cố gắng và báo cáo ở đây nếu nó hoạt động như mong đợi hay không và nó gây ra bất kỳ nỗi đau bất ngờ nào. Cảm ơn cả hai bạn! – Zorkus

0

Tôi đã/đang tìm kiếm một điều như vậy, nhưng điều này chỉ đơn giản là không thực sự có thể bởi vì bạn sẽ cần một máy chủ DNS đầy đủ chức năng cho việc này. Một hệ thống hoàn toàn tách rời là cần thiết. Bạn có thể đạt được điều này thông qua virtualization-maven-plugin và một nhóm máy ảo trong VirtualBox với mạng nội bộ.

Máy chủ LDAP sẽ không giúp bạn chút nào vì chúng hoàn toàn không có gì với GSS-API và Kerberos. SASL thực hiện mọi thứ bằng cách ủy quyền auth cho KDC có sẵn tiếp theo.

Bạn cần máy chủ KDC và DNS. Bạn có thể thử Samba 4 trên một máy, thiết lập một máy thứ hai tham gia tên miền. Cài đặt Hadoop trên nó, thêm một thứ ba (máy khách), nối và chạy các thử nghiệm từ đó.

Nó có vẻ như bạn có thể có Apache DS bắt chước KDC: http://directory.apache.org/apacheds/configuration/ads-2.0-configuration.html

+0

Tôi không nghĩ mình cần DNS, tôi có thể cung cấp IP và sử dụng chúng, nhưng tôi cần KDC triển khai dưới dạng ứng dụng java và chạy trong quá trình thử nghiệm..không tìm thấy. – Zorkus

+0

Không, điều này sẽ không hoạt động. Kerberos yêu cầu DNS không * không * làm việc mà không có nó trừ khi có thể bạn đặt tất cả các host vào trong '/ etc/hots' của bạn. –

+0

Điều đó là tốt, tôi có thể đặt tất cả các máy chủ cần thiết trong đó, hoặc làm cho nó luôn luôn sử dụng localhost cho tất cả các thông tin liên lạc. – Zorkus

0

Tôi có một viết một LDAP Embedded cho mục đích tương tự và cũng để bạn có thể sử dụng nó để thử nghiệm với Kerberos, spcially hữu ích cho các trường hợp như kiểm tra thử nghiệm Hadoop Kerberos.

https://github.com/krishdey/EmbeddedLdapKDC

Bạn cũng có thể nhìn vào lớp học để viết thử nghiệm JUnit nhúng https://github.com/krishdey/EmbeddedLdapKDC/blob/master/EmbeddedLdapKDC/src/test/java/com/krish/ead/server/KerberosLdapIntegrationTest.java

Có thể hữu ích cho bạn.

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