Security Token Service (STS)、STS への参照を含むサービス、およびデスクトップ アプリケーションの例を作成しました。
これは、Windows 認証とメッセージ セキュリティを使用している場合に期待どおりに機能し、STS からトークンが取得され、サービス メソッドが正常に呼び出されます。このサービスは、現在のユーザー ID を含む文字列を返します。これにより、AD ユーザー名が返されます。
ただし、AD ではなくデータベースに対して認証する必要があります。CustomUserNameValidator を作成して (STS で、これは正しい場所ですか?)、web.config でそれを参照しようとしました。次に、以下に示すように資格情報を提供します。
SampleServiceReference.SampleServiceClient client = new SampleServiceReference.SampleServiceClient();
client.ClientCredentials.UserName.UserName
= "alex";
client.ClientCredentials.UserName.Password
= "pass";
証明書が正しく設定されていると思います (すべて「localhost」を使用) が、サービスを呼び出すと次の例外が発生します。
System.ServiceModel.FaultException: ID3242: セキュリティ トークンを認証または承認できませんでした。
私が何をしようとしても失敗するようです。私が説明していることは可能ですか?サービス クライアントもクライアントの資格情報を STS に渡しますか? それとも、ここで何が起こっているのか完全に誤解していますか?
このスタックオーバーフローの質問は似ていますが、オーディエンスの URL を確認したところ問題ないようです。WIF STS ID3242
STS を使用するときにカスタム認証を実現する方法について誰かアドバイスはありますか?