내 고객으로부터 다음과 같은 요청을 받았습니다.
이것은 다음과 같은 공개 웹사이트입니다.일부해당 기관의 직원을 위한 정보입니다. 내 고객은 첫 페이지에 직원에게만 표시되는 팝업을 원합니다.
기관에서는 CAC 카드를 사용하여 인증하며, 이 카드에는 여러 인증서가 있습니다. 내부 사이트에서는 그에 따라 IIS를 설정하고 AD와 비교하는 것이 매우 간단합니다.
하지만 외부 사이트이기 때문에 자체적으로 인증하고 싶지는 않습니다. IIS가 CAC/인증서가 있는지 자동으로 확인한 다음 무시하지 않으면 팝업 논리를 실행하기를 원합니다. 두 번째 부분은 모두 코딩이지만 IIS가 자동으로 CAC/인증서를 찾으려고 시도할 수 있는지 알아야 합니다.
내 원래 아이디어는 요청 IP를 내부 IP 범위와 비교하는 것이었지만 내 서버는 로드 밸런서 뒤에 있고 내 서버에 도달할 때쯤에는 요청에 로드 밸런서 IP가 있고 모든 요청이 범위 내에 있게 됩니다.
상황이 복잡하고 지금까지 파헤쳐본 결과 다 불가능하다고 하는데 묻고 싶었습니다.
미리 감사드립니다
답변1
웹 서버는 클라이언트의 스마트 카드를 "조사"할 수 없습니다.전적으로웹 브라우저에 의해 수행됩니다. IIS가 이에 영향을 미칠 수 있는 유일한 방법은 "허용되는" 인증서 발급자 DN 목록을 보내는 것입니다(내 생각에는 TLSv1.3에서도 더 이상 가능하지 않습니다). 그러나 브라우저가 인증서 목록을 표시해야 한다고 생각하면 브라우저는~ 할 것이다인증서 목록을 표시합니다.
CAC 또는 기타 클라이언트 인증서 인증을 사용하는 웹사이트를 포함하여 대부분의 웹사이트에는 인증서 인증이 필요한 전용 로그인 URL이 있지만 나머지 시스템에서는 그렇지 않습니다. 대신 "로그인" 상태는 기존 쿠키/세션을 통해 전달됩니다. 이를 통해 시스템은 다양한 인증 방법을 제공할 수 있습니다. (IIS가 URL별 인증서 인증을 지원하는지 여부는 알 수 없습니다. "로그인" 페이지에 별도의 하위 도메인을 사용해야 할 수도 있습니다.)
https://account.cern.ch/account/
한 가지 예는 실제로 Microsoft ADFS를 통해 모든 것을 처리하는 것처럼 보이는 의 "로그인" 페이지입니다 .
또는 두 개의 서로 다른 하위 도메인에서 전체 웹앱을 호스팅할 수 있습니다. 하나는 공개 액세스용이고 다른 하나는 인증이 필요합니다. ( https://public.cyber.mil/
최근에 본 예 중 하나입니다.)