Snego
Snego, dont l’identificateur de service d’authentification est RPC_C_AUTHN_GSS_NEGOTIATE, ne fournit pas de services d’authentification proprement dits. Au lieu de cela, il accepte une liste de services d’authentification et négocie un service qui fonctionnera entre le client et le serveur. Les paramètres d’authentification ne sont pas utilisés par Snego, mais sont transmis au service d’authentification choisi, qui effectue l’authentification réelle. Snego a été normalisé par l’Internet Engineering Task Force (IETF) en décembre 1998, dans le document RFC 2478.
Snego est utile lorsque vous ne savez pas quels services d’authentification l’ordinateur distant peut fournir.
Pour utiliser Snego, le client et le serveur doivent spécifier Snego comme service d’authentification. Le serveur spécifie RPC_C_AUTHN_GSS_NEGOTIATE en tant que membre dwAuthnSvc de l’une des structures SOLE_AUTHENTICATION_SERVICE dans le paramètre de tableau asAuthSvc passé à CoInitializeSecurity. Le client peut spécifier Snego en appelant CoSetProxyBlanket et en passant RPC_C_AUTHN_GSS_NEGOTIATE comme paramètre dwAuthnSvc . Le client doit également fournir une liste des services d’authentification possibles pour Snego via le membre PackageList de la structure SEC_WINNT_AUTH_IDENTITY_EX qui est passée au paramètre pAuthInfo dans l’appel à CoSetProxyBlanket. Si pAuthInfo a la valeur NULL, Snego compose une liste des services d’authentification à partir des packages de sécurité installés sur l’ordinateur. Ensuite, Snego envoie la liste des services d’authentification au serveur, compare la liste aux services d’authentification disponibles du serveur et sélectionne un service d’authentification à utiliser pour la connexion.
Notes
Schannel ne peut pas figurer dans la liste des services d’authentification que Snego utilise.
Les clients peuvent également spécifier Snego lorsqu’ils appellent CoInitializeSecurity. Les paramètres dwAuthnSvc et pAuthInfo de CoSetProxyBlanket deviennent membres d’une structure SOLE_AUTHENTICATION_INFO qui est passée à CoInitializeSecurity via son paramètre pAuthList . Les détails des valeurs de ces membres sont les mêmes que ceux décrits dans le paragraphe précédent.
Si Snego est utilisé, les appels à CoQueryProxyBlanket ou CoQueryClientBlanket retournent Snego en tant que service d’authentification, plutôt que le service d’authentification que Snego a choisi pour établir la connexion.