2012-10-23 3 views
1

https 시나리오에서 클라이언트 인증이 작동하는 방식과 기본 인증/권한 부여 기능을 제공하는 방법을 이해하는 중입니다.X509Certificate2를 사용하여 https에서 클라이언트 인증서 인증

인증서와 사용자 (예 : IPrincipal) 간의 매핑을 원한다고 가정 해 봅시다. 내 서버가 인증서를 발급하고 클라이언트에게 배포합니다. 클라이언트가 연결되면 인증서를 요청하고 유효한 인증서가 제공되면 이전에 정의 된 매핑을 기반으로 사용자를 인증합니다.

매핑을 만들려면 어떻게해야합니까? 인증서 엄지 손가락은 좋은 후보입니까? 고객 신원을 판단하는 것으로 충분합니까?

매핑이 필요하지 않고 단순히 내 서버에서 발급 한 모든 인증서를 수락 할 수 있습니까?

편집 : 클라이언트 인증서를 발급 할 수 있다고 가정 할 때 https 세션 중 클라이언트 신원을 확인하려면 어떻게해야합니까?

답변

1

귀하의 요구 사항은 기존 인증서 인프라가 어떤 모습을하고 있는지에 달려 있습니다. 보안상의 이유로 매핑을 통해 특정 사용자를 식별하는 것이 좋습니다. 당신이 사용자 인증을 위해 인증서를 배포하는만큼 멀리 갔다면 아마도 가치가있는 것입니다. 필요한 모든 권한 부여 또는 감사는 사용자별로 수행해야합니다. 가장 좋은 방법은 cert CN (일반 이름)을 사용하는 것입니다. 지문이 특정 인증서로 식별되지만 인증서가 만료되면 어떻게됩니까? 물론 이것은 CN이 제어되는 인증서를 발행 할 때 특정 사용자와 관련이 있음을 의미합니다. 전자 메일 주소를 사용하는 것이 매우 안정적이라는 사실을 알았습니다. 확인 이메일을 보내서 유효성 검사 루틴을 만들 수 있기 때문입니다. 전자 메일 주소로 일부 고유성을 적용 할 수도 있습니다.

어려운 부분은 certs를 배포하고 IIS가 클라이언트에게 certs를 요청하도록하여 asp.net 앱이 해당 정보에 액세스 할 수있게하는 것입니다. 일단 당신이 당신의 모든 요구에 Request.ClientCertificate에 무엇인가를 가지고 있다면 그것들을 인증해야 할 것입니다.

0

.Net 프레임 워크를 사용하고 있다고 가정합니다. HttpRequest.ClientCertificate 속성을 사용해보십시오. 인증서 유효성 검사는 이미 ASP.NET에서 IsValid 속성을 확인하기 만하면됩니다. 유효성 검사의 나머지 부분은 사용자에게 인증서를 매핑하는 것입니다.

모든 인증서가 동일한 CA에서 발급 된 경우 인증서 일련 번호를 사용할 수 있습니다. 일련 번호가있는 HttpClientCertificate.Issuer 속성을 포함하지 않은 경우

일부 디버깅이 필요한 경우 나중에 지문을 사용하기가 어렵습니다.

1) 어떻게 그 클라이언트 인증서가 내게로와 양호한 발급 확인을 수행합니다

0

당신의 질문이 개 다른 부분을 포함?

매우 일반적인 대답은 신뢰할 수있는 루트 인증서에 대한 체인의 유효성을 검사한다는 것입니다. 예를 들어 당신은 그것을 여기에서 읽을 수있다 :

http://msdn.microsoft.com/en-us/library/windows/desktop/dd407310(v=vs.85).aspx http://www.openssl.org/docs/apps/verify.html http://www.cryptosys.net/pki/x509_validatechain.html

는 대부분의 경우 코드를 작성할 필요가 없습니다 이것을하기 위해. 웹 서버 앞에 Apache를 설치하는 것만으로도 충분합니다. Apache는 신뢰할 수있는 인증서에 대해 클라이언트 인증서를 요청하고 유효성을 검사하도록 구성 할 수 있습니다.

2) 인증서를 사용자에게 어떻게 매핑합니까?

일반적인 방법을 찾으려면 인증서의 주체 대체 이름 속성을 사용하여 주체 이름을 저장해야합니다. 이것은 여러 공급자가 사용하는 가장 일반적인 방법입니다.

http://technet.microsoft.com/en-us/library/cc736706(v=ws.10).aspx

http://technet.microsoft.com/en-us/library/cc736781(WS.10).aspx

그러나, 일반적으로 말해서, 당신은 매핑에 인증서에 고유 한 일을 사용할 수 있습니다 여기에

는 윈도우와 관련된 흥미로운 링크의 커플입니다.

관련 문제