Tengo una solicitud de mi cliente que dice algo como esto:
Este es un sitio web público conalgunoinformación para los empleados de la agencia. Mi cliente quiere tener una ventana emergente en la página principal que solo se muestre a los empleados.
La agencia utiliza tarjetas CAC para autenticarse, estas tarjetas tienen varios certificados. En sitios internos, esto es bastante sencillo: configurar IIS en consecuencia y luego compararlo con AD.
Sin embargo, dado que este es un sitio externo, no quiero autenticarme per se. Quiero que IIS verifique silenciosamente la existencia de CAC/certificados, si están allí, y luego ejecute la lógica emergente, si no, ignórelo. La segunda parte es toda codificación, pero necesito saber si IIS puede intentar buscar silenciosamente los CAC/Certs.
Mi idea original era comparar la IP de la solicitud con nuestros rangos de IP internos, pero mis servidores están detrás de un equilibrador de carga y, cuando llegue a mis servidores, la solicitud tendría la IP del equilibrador de carga y cada solicitud estaría dentro del rango.
Es una situación compleja y todo lo que he investigado hasta ahora dice que no se puede hacer, pero quería preguntar
gracias de antemano
Respuesta1
Un servidor web no puede "mirar" las tarjetas inteligentes de los clientes, eso esenteramenterealizado por el navegador web. La única forma en que IIS puede influir en esto es enviando una lista de DN de emisores de certificados "aceptables" (y creo que esto tampoco es posible en TLSv1.3). Pero si el navegador cree que necesita mostrar una lista de certificados, entoncesvoluntadmostrar una lista de certificados.
La mayoría de los sitios web, incluso aquellos que utilizan CAC u otra autenticación de certificado de cliente, tienen una URL de inicio de sesión dedicada que requiere autenticación de certificado, pero el resto del sistema no. En cambio, el estado de "iniciar sesión" se realiza a través de cookies/sesiones tradicionales. Esto permite que el sistema ofrezca varios métodos de autenticación diferentes. (No sé si IIS admite la autenticación de certificado por URL; es posible que tengas que usar un subdominio separado para la página de "inicio de sesión").
Un ejemplo es la página de "iniciar sesión" https://account.cern.ch/account/
, que en realidad parece manejar todo a través de Microsoft ADFS.
Alternativamente, puede alojar la aplicación web completa en dos subdominios diferentes: uno para acceso público y otro que requiera autenticación. ( https://public.cyber.mil/
es un ejemplo que he visto recientemente).