2013-12-11 16 views
5

Tôi có một ứng dụng web java rất đơn giản, nơi tôi có thể quản lý đăng ký và xác thực người dùng. Tôi muốn hành động ứng dụng này dưới dạng nhà cung cấp nhận dạng SAML. Sau đó, tôi sẽ tạo một ứng dụng web đơn giản khác, yêu cầu người dùng phải được xác thực trước khi có thể sử dụng nó. Vì vậy, về cơ bản tôi muốn ứng dụng đầu tiên của tôi là IdP và ứng dụng thứ hai của tôi là nhà cung cấp dịch vụ. Luồng công việc phải như sau: người dùng truy cập app2. App2 chuyển hướng người dùng đến app1 nơi người dùng được xác thực. Nếu xác thực thành công, app1 sẽ chuyển hướng người dùng đến app2 nơi anh ta có toàn quyền truy cập. Tôi tương đối mới đối với SAML. Có bất kỳ hướng dẫn nào có thể giúp tôi làm điều đó không đau đớn không?cách định cấu hình ứng dụng java hoạt động như Nhà cung cấp nhận dạng

Trả lời

4

Hãy xem Shibboleth, một công cụ sẵn sàng để sử dụng nhà cung cấp nhận dạng SAML. Thực tế, rằng bạn đã có một ứng dụng mà bạn muốn đóng vai trò là nhà cung cấp nhận dạng cung cấp cho bạn hai lựa chọn:

  1. Configure Shibboleth sử dụng bạn mô hình dữ liệu người dùng như một nguồn xác thực (không chắc chắn nếu điều này là có thể)
  2. Sử dụng Thư viện Java OpenSAML-Java được sử dụng để triển khai Shibboleth. Điều này chỉ cung cấp Xử lý (Tạo, Xác thực, Trao đổi) các Xác nhận SAML xung quanh hồ sơ SSO Web của SAML 2.0. Bạn phải tạo ra quá trình chuyển hướng Yêu cầu Web của riêng bạn trong App2 và App1.

SAML không phải là rất đau, hơn nữa một tiêu chuẩn toàn diện mà hành động như một ví dụ về Tiêu chuẩn đơn giản khác như OpenID hoặc OAuth (họ có một số nguyên tắc chung, nhưng đơn giản hơn nhiều cho chắc chắn) của nó. khá nhiều những câu chuyện tương tự của nó hơn là với CORBA vs Java RMI

Đây là một điểm khởi đầu tốt để đạt được một số hiểu biết cơ bản những gì được thực hiện khi sử dụng SAML Web Browser SSO Profile:

1

Có hai phần cho câu hỏi của bạn.

Bạn muốn:

  • máy chủ Java SAML (STS)
  • Java SAML client

Viết một STS là một vấn đề không nhỏ. Bạn có thể sử dụng một triển khai hiện có tốt hơn. OpenAM là một khả năng khác. Nó hỗ trợ một số tùy chọn cho kho lưu trữ danh tính.

Về mặt khách hàng, hãy tham khảo SAML : SAML connectivity/toolkit.

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