2011-04-13 1 views
4

우선 나쁜 영어로 유감입니다.asp.net에서 인증서 인증 구현

지난 2 일 동안 나는 많은 것을 읽었지만 내 문제에 대한 해결책을 찾지 못했습니다.

해당 승인을 구현해야합니다. 사용자 열기 웹 페이지, 특별 양식이 나타납니다. 이 양식에서 단 하나의 버튼 "인증서 파일 선택". 사용자가이를 클릭하면 인증에 사용될 인증서 파일을 선택해야합니다. 이 파일은 플래시 드라이브에 저장된 이어야하며 컴퓨터 하드 드라이브에 저장되어 있지 않아야합니다.

cer/pfx 파일에 대해서는 읽었지만 그러한 모델에 대해서는 읽지 않았습니다.

은 아마이 사이트에 구현 될 것입니다 동시에 양식 인증에서 .NET

System.Security.Cryptography.X509Certificates.X509Certificate 
System.Security.Cryptography.X509Certificates.X509Certificate2 

이 클래스를 사용하여이 문제를 확인하는 것은 불가능하다, 때문에 사용자는 권한을 부여하는 방법을 선택할 수 있습니다.

업데이트 : 이 클래스는이 모델에 사용할 수 없다고 생각합니다. 나에게 조언 해 줄 수 있니?

답변

1

우선 SSL 사용 웹 페이지가 필요합니다. 포함 된 개발 웹 서버 (cassini)로는 개발할 수 없습니다. IIS Express 또는 로컬 IIS 인스턴스를 사용하여 이러한 인증 모델을 개발할 수 있습니다. SSL 인증은 코드에서 직접 제어 할 수 없으며 IIS 웹 페이지 폴더 설정에 따라 다릅니다. this article을보십시오.

GUI 경험의 경우 인증서는 일반적으로 보안이 유지되는 인증서 저장소에 저장되며 클라이언트 쪽 페이지/스크립트 내에서 제어 할 수 없습니다. 웹 브라우저가 클라이언트 인증서 협상 요청으로 응답을 받으면 호환 가능한 모든 클라이언트 인증서를 보여주는 브라우저/플랫폼 별 대화 상자가 표시됩니다. 서버 측에서는 신뢰할 수있는 인증 기관에서 적절한 루트 인증서를 설치하여 클라이언트가 선택할 수있는 인증서를 제어 할 수 있습니다. 그러나 어떤 인증서 (지원되는 스마트 카드에 저장되었거나 하드 드라이브에 로컬로 저장된 인증서)를 클라이언트가 더 이상 선택할 수 없도록 제어 할 수는 없습니다.

귀하의 경우에는

UPDATE, 나는 그것이 인증서 저장소의 관리하는 방법을 제어 할 수 없기 때문에 당신이 원하는 것은 클라이언트 인증 된 HTTPS 세션을 통해 웹 브라우저 내에서 가능하지 않다 생각합니다.

그러나 클라이언트의 USB 드라이브에있는 휴대용 인증서 저장소에 액세스하는 플러그인을 개발하면 가능할 수 있습니다./ 여러 플랫폼에서

  • 가능한
  • 실행할 수있는 브라우저 : 나는 자바 애플릿은 다음과 같은 이유로, 백그라운드에서 실행, 페이지의 자바 스크립트에서 액세스 할 수있는 공개 API를 만들어 갈 것 같아 SSL 사용 가능 웹 페이지 전체 신뢰 모드 인증서로
  • 캔 위협 PFX 파일 저장 (see)

에 당신은 인증을 구현해야합니다/handshake 부분은 XMLDSIG (가수의 공개 키를 포함 할 수 있고 .net에서 지원됨)를 사용하여 XML 문서/조각 (애플릿 사용자 이름과 암호 해시를 추가 할 수도 있음)에 애플릿을 서명하는 것으로 말합니다. 서명 된 XML의 유효성을 검사하면 클라이언트에 일반 인증 쿠키를 반환 할 수 있습니다.

+0

SSL에 문제가 없습니다. 내가 아는 증명서에 대해 쓴 모든 것. 하지만 난 이동식 장치에 인증서를 저장하는 사용자가 필요합니다, 나는 그들을 쓸 것입니다. 그리고이 플래시 드라이브없이 아무도 웹 페이지에 액세스하지 않습니다. 하지만 대답 해줘서 고마워. – Dimka

+0

귀하의 의견에 따라 답변을 업데이트했습니다 – m0sa

+0

고마워요! 나는 자바 애플릿에 대해 생각하고 있었지만, 전체 프로젝트는 .net에서 작업 중이므로 C#으로 솔루션을 찾고 싶습니다. 이제 실버 라이트를 사용하려고합니다. – Dimka