Informations d’identification d’authentification du client
Chaque client authentifié doit fournir des informations d’identification d’authentification au serveur. Sous RPC, le client stocke ses informations d’authentification dans la liaison entre le client et le serveur. Pour ce faire, le client appelle RpcBindingSetAuthInfo ou RpcBindingSetAuthInfoEx.
Il existe deux types d’informations d’identification : implicites et explicites :
- Des informations d’identification explicites existent lorsque le client fournit le nom d’utilisateur, le mot de passe et le domaine.
- Des informations d’identification implicites existent lorsque le client utilise les informations d’identification du jeton de thread ou de processus appelant les fonctions RpcBindingSetAuthInfo ou RpcBindingSetAuthInfoEx .
Les clients doivent s’abstenir de fournir des informations d’identification explicites, car le stockage, la manipulation et la récupération d’un mot de passe utilisateur peuvent introduire une vulnérabilité de sécurité dans un système distribué si des informations d’identification explicites sont utilisées.
Pour utiliser des informations d’identification implicites, le client appelle RpcBindingSetAuthInfo(Ex). Le système de sécurité et RPC obtiennent les informations d’identification du thread ou du jeton de processus à utiliser dans la session d’authentification.
Si le client utilise des informations d’identification explicites, le cinquième paramètre de ces deux fonctions est de type RPC_AUTH_IDENTITY_HANDLE. Il s’agit d’un type flexible qui est un pointeur vers une structure de données. Le contenu de la structure de données peut différer avec chaque service d’authentification. Actuellement, les fournisseurs de services de sécurité (SSP) pris en charge par RPC nécessitent que votre ensemble d’applications RPC_AUTH_IDENTITY_HANDLE pointe vers une structure SEC_WINNT_AUTH_IDENTITY . La structure SEC_WINNT_AUTH_IDENTITY contient des champs pour un nom d’utilisateur, un domaine et un mot de passe.