認証された各クライアントは、サーバーに認証資格情報を提供する必要があります。 RPC では、クライアントは認証資格情報をクライアントとサーバー間のバインディングに格納します。 これを行うには、クライアントは RpcBindingSetAuthInfo呼び出すか、RpcBindingSetAuthInfoExをします。
資格情報には、暗黙的と明示的の 2 種類があります。
- 明示的な資格情報は、クライアントがユーザー名、パスワード、およびドメインを指定する場合に存在します。
- クライアントが、RpcBindingSetAuthInfo を呼び出すか、RpcBindingSetAuthInfoEx 関数を 呼び出すスレッドまたはプロセス トークンからの資格情報を使用する場合、暗黙的な資格情報が存在します。
明示的な資格情報が使用されている場合、ユーザー パスワードを格納、操作、および取得すると、分散システムにセキュリティの脆弱性が発生する可能性があるため、クライアントは明示的な資格情報を提供しないようにする必要があります。
暗黙的な資格情報を使用するために、クライアントは RpcBindingSetAuthInfo (Ex)呼び出します。 セキュリティ システムと RPC は、認証セッションで使用するためにスレッドまたはプロセス トークンから資格情報を取得します。
クライアントが明示的な資格情報を使用する場合、これら 2 つの関数の 5 番目のパラメーターは RPC_AUTH_IDENTITY_HANDLE型です。 これは、データ構造へのポインターである柔軟な型です。 データ構造の内容は、認証サービスごとに異なる場合があります。 現時点では、RPC がサポートする SP では、アプリケーションセットが SEC_WINNT_AUTH_IDENTITY 構造を指す RPC_AUTH_IDENTITY_HANDLE 必要があります。 SEC_WINNT_AUTH_IDENTITY 構造体には、ユーザー名、ドメイン、およびパスワードのフィールドが含まれています。