Anmeldeinformationen für die Clientauthentifizierung
Jeder authentifizierte Client muss Authentifizierungsanmeldeinformationen für den Server bereitstellen. Unter RPC speichert der Client seine Authentifizierungsanmeldeinformationen in der Bindung zwischen dem Client und dem Server. Hierzu 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 anfing.
- Implizite Anmeldeinformationen sind vorhanden, wenn der Client Anmeldeinformationen aus dem Thread oder Prozesstoken verwendet, die die RpcBindingSetAuthInfo- oder RpcBindingSetAuthInfoEx-Funktionen aufrufen.
Clients sollten von der Bereitstellung expliziter Anmeldeinformationen absehen, da das Speichern, Bearbeiten und Abrufen eines Benutzerkennworts zu einem Sicherheitsrisiko in einem verteilten System führen kann, wenn explizite Anmeldeinformationen verwendet werden.
Um implizite Anmeldeinformationen zu verwenden, ruft der Client RpcBindingSetAuthInfo(z. B.) auf. Das Sicherheitssystem und rpc beziehen Anmeldeinformationen aus dem Thread oder Prozesstoken für die 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 SSPs, die RPC unterstützt, dass Ihre Anwendung RPC _ AUTH _ IDENTITY _ HANDLE so festgelegt, dass sie auf eine SEC _ WINNT _ AUTH _ IDENTITY-Struktur verweisen kann. Die SEC _ WINNT _ AUTH _ IDENTITY-Struktur enthält Felder für einen Benutzernamen, eine Domäne und ein Kennwort.