Verifique el inicio de sesión de Windows a través de una tarjeta inteligente

Hola, necesito verificar en mi aplicación WPF si el usuario inicia sesión en su computadora mediante contraseña o tarjeta inteligente. Ambas opciones de inicio de sesión están disponibles en los clientes de mi empresa, pero mi aplicación debe abrirse solo en el inicio de sesión de la tarjeta inteligente. Todos los clientes son Windows 7 OS.

Miro algunos sitios: http://technet.microsoft.com/en-us/library/ff404285(v=ws.10).aspx http://www.codeproject.com/Articles/240655/Using-a-Smart-Card-Certificate-with-NET-Security-i

y estoy pensando que necesito obtener el campo de atributo de uso mejorado de clave (EKU). Si el EKU está vacío => entonces el usuario se registró a través de una contraseña y no a través de una tarjeta inteligente.

Solo necesito esta simple verificación, no me importa crear/validaciones en certificados atc.

preguntado el 22 de mayo de 12 a las 18:05

Gracias, Owlstead, por los comentarios de antaño. Agregué parte de mi investigación para este problema, pero no estoy seguro de estar en la dirección correcta. Por sus comentarios sobre mi inglés, lo siento, pero mi hebreo es mucho mejor que mi inglés. -

Gracias por cambiar su pregunta, modifiqué, intenté echar un vistazo rápido, pero como estoy un poco desactualizado con respecto a las API de Microsoft. Sin embargo, una pregunta, normalmente los certificados con un nivel diferente de autenticación están en diferentes "ramas" del árbol PKI. ¿No podría hacer una distinción entre los certificados emitidos por la "autoridad de certificación de registro de tarjeta inteligente más segura"? -

1 Respuestas

Windows no registra qué certificado se usó para iniciar sesión, por lo que no puede verificar el EKU, ni Windows registra qué tipo de credenciales se usaron, por lo que no hay una solución simple. Tengo un par de sugerencias:

Opción 1: Usar Garantía del mecanismo de autenticación para agregar una membresía de grupo adicional al token de acceso del usuario cuando inicie sesión con una tarjeta inteligente y configure su aplicación para que requiera esa membresía de grupo. Esto requiere un dominio al nivel funcional de Windows Server 2008 R2.

Opción 2 Implementar un administrador de credenciales y utilice el NPLogonNotify devolución de llamada para verificar KERB_INTERACTIVE_LOGON con un KERB_LOGON_SUBMIT_TYPE de KerbSmartCardLogon, luego regístrelo en algún lugar para que su aplicación lo verifique.

Respondido el 01 de junio de 12 a las 11:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.