2013-04-25 6 views
1

stackoverflow에 다른 Java 및 CAC 게시물이 있다는 것을 알았습니다. 나는이 모든 것들로 초심자이며, 나는 아직도 무엇을해야하고 어디로 가야하는지에 대한 기본 틀에 노력하고있다.Java WebApp에서의 CAC 인증

저는 PC에 들어가기를 원하는 사용자를 인증하기 위해 Windows 7 상자가있는 CAC를 사용하는 큰 조직에서 일하고 있습니다. 그들은 CAC를 키보드에 꽂고 PIN을 입력합니다.

내 상사가 컴퓨터에 CAC가있는 경우 사용자를 인증하지 못하도록 Java Webap을 변경하려고합니다. 그렇지 않은 경우 기존 LDAP 로그인을 거치게됩니다.

우리는 주위에 인터넷 검색에서 웹 로직 11g 및 Java 6

를 사용하는

두 가지 방법이 있습니다 보인다처럼 :

  1. 사용자의 CAC를 읽고에 SSL 인증서를 보내 애플릿을 구현가 webapp.

  2. 는 브라우저가

내가 내 옵션의 올바른 평가를 수행하여 웹 애플리케이션에 CAC에 SSL 인증서를 전송하게됩니다 웹 서버에서 "상호 SSL 인증"을 구현 ?

어느 솔루션이 더 쉽습니까?

장기적으로 덜 번거롭고 견고 할 것인가?

나는 두 솔루션 모두에서 공통적으로 보이는 SSL에 관해서는 잘 알고 있습니다. 나는 추상 개념에 관해서 몇 가지 SSL 튜토리얼을 발견했다. 누구든지 내가하고 싶은 일에 대한 좋은 지침서를 추천 할 수 있습니까?

정보 사전에 많은 감사 또는 팁

스티브

답변

4
  1. 는 사용자의 CAC를 읽고 웹 애플리케이션에 SSL 인증서를 보낼 애플릿을 구현합니다.

  2. 브라우저 당신은 # 2 수행 할 것입니다 웹 애플리케이션

으로 CAC에 SSL 인증서를 전송하게됩니다 웹 서버에서 "상호 SSL 인증"을 구현합니다. 스마트 카드 하드웨어/소프트웨어를 엉망으로 만들고 싶지는 않습니다. OS가 모든 작업을 처리하도록하십시오.

IIS에서이 작업을 수행했지만 일반적으로이를 구현하려면 클라이언트 인증서가 필요하고 국방성 CA를 신뢰하도록 웹 서버를 구성해야합니다. 신뢰하는 CA를 클라이언트에 알리도록 웹 서버를 구성해야 할 수도 있습니다. Win7 클라이언트에 신뢰할 수있는 CA가 서명 한 클라이언트 인증서가있는 경우 클라이언트는이 인증서를 사용하려고 시도합니다. 스마트 카드 인증서 인 경우 Windows에서 자동으로 사용자에게 핀을 묻습니다. 당신은 그것에 대해 걱정할 필요가 없습니다. 사용자가 올바른 핀을 입력하면 인증서가 웹 서버로 전송되어 웹 서버가 CA의 인증서를 확인할 수있게됩니다.인증서가 유효한 인증서 인 경우 인증서의 필드를 구문 분석하고 값을 사용하여 사용자를 인증 할 수 있습니다 (즉, 유효한 인증서가 있어도 사용자가 실제로 자신의 이름/전자 메일 주소/기타). 거기에서 처리하는 방법은 사용자에게 달려 있습니다.

사용자가 스마트 카드 또는 CAC를 사용하고 있다는 사실을 잊어 버렸을 때 정보를 찾는 것이 훨씬 쉬울 것이며 인증을 위해 클라이언트 인증서를 사용한다는 생각부터 시작하십시오. . 먼저 자체 서명 된 CA 테스트 인증서를 작성하십시오. 그런 다음 웹 서버용 서버 인증서와 테스트 CA에서 서명 한 클라이언트 인증서를 만듭니다. 테스트 CA 인증서를 클라이언트와 서버에 신뢰할 수있는 루트 인증서로 추가합니다. 그런 다음 클라이언트 인증서를 사용하여 웹 서버를 인증하는 작은 테스트 응용 프로그램을 작성하십시오. 일단 그 일을하면 DoD CA를 추가하고 CaC 인증서에서 정보를 가져올 수 있습니다.

행운을 빈다!