サーバーに接続してさまざまなアクションを実行するSilverlight3アプリがあります。ユーザーはFormsAuthenticationを使用してログインしますが、要求するアクションはAppPoolアカウントを使用してサーバー上で実行されるため、監査ログにアクセスすると、AppPoolアカウントに対して記録されます。PCI DSS規制では、ユーザー自身のIDを監査ログに含める必要があります。つまり、ユーザーの資格情報を使用してアクションを実行する必要があります。これで、ユーザーがログオンしてリクエストごとに送信するときにユーザーの資格情報を保存でき、サーバーによって実行されるアクションでそれらの資格情報を使用できます。しかし、PCI regsは、クレジットを保存する場合は暗号化する必要があると述べています(誰かがPCのメモリダンプを取得してパスワードを取得するのを防ぐため)。
これを行う唯一の方法は、サーバーから公開鍵を取得してパスワードを暗号化し、暗号化されたパスワードを送信して、秘密鍵を使用してサーバー上で復号化することです。ただし、Silverlightには非対称暗号化はありません。
私は問題に近すぎて、別の解決策があるはずですが、それが何であるかわかりません。誰か助けてもらえますか?
明確化
これは内部アプリケーションです。これまで、SSL経由でActiveDirectoryに対してIISForms AuthNを使用してきました。パスワードがクライアントのメモリに保持されている間だけ、転送中のパスワードを保護する必要はありません。私が理解しているように、私はフォーム認証を使用しているため、LogonUserを使用しない限り、サーバーでのなりすましはできません。つまり、サーバーでパスワードが必要なので、毎回パスワードを送信する必要があるため、保持する必要があります。アプリが閉じるまで、クライアント内、メモリ内。