Anmeldeinformationen für die Clientauthentifizierung

Jeder authentifizierte Client muss dem Server Anmeldeinformationen für die Authentifizierung bereitstellen. Unter RPC speichert der Client seine Anmeldeinformationen für die Authentifizierung in der Bindung zwischen dem Client und dem Server. Dazu ruft der Client RpcBindingSetAuthInfo oder RpcBindingSetAuthInfoEx auf.

Es gibt zwei Arten von Anmeldeinformationen: implizit und explizit:

  • Explizite Anmeldeinformationen sind vorhanden, wenn der Client Benutzername, Kennwort und Domäne angibt.
  • Implizite Anmeldeinformationen sind vorhanden, wenn der Client Anmeldeinformationen aus dem Thread oder Prozesstoken verwendet, die die Funktionen RpcBindingSetAuthInfo oder RpcBindingSetAuthInfoEx aufrufen.

Clients sollten keine expliziten Anmeldeinformationen angeben, da das Speichern, Bearbeiten und Abrufen eines Benutzerkennworts eine Sicherheitslücke in einem verteilten System mit sich bringen kann, wenn explizite Anmeldeinformationen verwendet werden.

Um implizite Anmeldeinformationen zu verwenden, ruft der Client RpcBindingSetAuthInfo(Ex) auf. Das Sicherheitssystem und RPC erhalten Anmeldeinformationen aus dem Thread oder Prozesstoken zur Verwendung in der Authentifizierungssitzung.

Wenn der Client explizite Anmeldeinformationen verwendet, ist der fünfte Parameter dieser beiden Funktionen vom Typ RPC_AUTH_IDENTITY_HANDLE. Dies ist ein flexibler Typ, der ein Zeiger auf eine Datenstruktur ist. Der Inhalt der Datenstruktur kann sich je nach Authentifizierungsdienst unterscheiden. Derzeit erfordern die von RPC unterstützten SSPs, dass Ihre Anwendung RPC_AUTH_IDENTITY_HANDLE festlegen, um auf eine SEC_WINNT_AUTH_IDENTITY-Struktur zu verweisen. Die SEC_WINNT_AUTH_IDENTITY-Struktur enthält Felder für einen Benutzernamen, eine Domäne und ein Kennwort.