クライアント認証の制御
クライアントを認証するための最適な方法は、 RpcServerRegisterIf2 または RpcServerRegisterIfEx 関数を使用してセキュリティ コールバック関数 を インストールすることです。は、セキュリティ コールバック関数を引数として受け入れます。 セキュリティ コールバック関数が呼び出されたら、必要なチェックを行います。 接続の属性、呼び出し元の ID、またはその両方を確認できます。 接続の属性をチェックするには、RpcServerInqCallAttributes または RpcBindingInqAuthClient 関数を呼び出します。 これにより、認証されていないクライアント、特定のセキュリティ プロバイダーを使用するクライアント、または十分な強力な保護 (プライバシーなど) を使用していないクライアントのフィルター処理が可能になります。
認証済みユーザーのサブセットへのアクセスを許可するには、 RpcGetAuthorizationContextForClient を使用します。 この関数は、非常に高度なアクセス チェックを行うために使用できる Authz クライアント コンテキストを返します。 たとえば、この方法を使用すると、通常の営業時間中にorganizationの副社長にのみアクセスでき、Active Directory サービスを使用して任意の時間に CEO にアクセスして、ユーザー名をタイトルにマップできます。 ユーザーを偽装し、その名前を取得できます。 ID がわかったら、必要なチェックを行うことができます。