Snego
Snego, cuyo identificador de servicio de autenticación está RPC_C_AUTHN_GSS_NEGOTIATE, no proporciona realmente servicios de autenticación en sí. En su lugar, toma una lista de servicios de autenticación y negocia un servicio que funcionará entre el cliente y el servidor. Snego no usa los parámetros de autenticación, sino que se pasan al servicio de autenticación elegido, que realiza la autenticación real. Snego fue estandarizado por el Grupo de Tareas de Ingeniería de Internet (IETF) en diciembre de 1998, en el documento RFC 2478.
Snego es útil cuando no sabe qué servicios de autenticación puede proporcionar el equipo remoto.
Para usar Snego, tanto el cliente como el servidor deben especificar Snego como servicio de autenticación. El servidor especifica RPC_C_AUTHN_GSS_NEGOTIATE como miembro dwAuthnSvc de una de las estructuras de SOLE_AUTHENTICATION_SERVICE del parámetro de matriz asAuthSvc que se pasa a CoInitializeSecurity. El cliente puede especificar Snego llamando a CoSetProxyBlanket y pasando RPC_C_AUTHN_GSS_NEGOTIATE como parámetro dwAuthnSvc . El cliente también debe proporcionar una lista de posibles servicios de autenticación para Snego a través del miembro PackageList de la estructura SEC_WINNT_AUTH_IDENTITY_EX que se pasa al parámetro pAuthInfo en la llamada a CoSetProxyBlanket. Si pAuthInfo es NULL, Snego compone una lista de servicios de autenticación de los paquetes de seguridad instalados en el equipo. A continuación, Snego envía la lista de servicios de autenticación al servidor, compara la lista con los servicios de autenticación disponibles del servidor y elige un servicio de autenticación que se usará para la conexión.
Nota
Schannel no puede estar en la lista de servicios de autenticación que usa Snego.
Los clientes también pueden especificar Snego cuando llaman a CoInitializeSecurity. Los parámetros dwAuthnSvc y pAuthInfo de CoSetProxyBlanket se convierten en miembros de una estructura de SOLE_AUTHENTICATION_INFO que se pasa a CoInitializeSecurity a través de su parámetro pAuthList . Los detalles de los valores de esos miembros son los mismos que se describen en el párrafo anterior.
Si se usa Snego, las llamadas a CoQueryProxyBlanket o CoQueryClientBlanket devolverán Snego como servicio de autenticación, en lugar del servicio de autenticación real que Snego eligió para establecer la conexión.
Temas relacionados