5

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 を使用するときにカスタム認証を実現する方法について誰かアドバイスはありますか?

4

2 に答える 2

3

ここに必要なものの簡単な例があります: http://claimsid.codeplex.com

サンプル 8 または 4 を見てください。

小さな説明ですが。ユーザー名/パスワード認証は、サービスではなく STS で行われます。サービスは、STS から取得したセキュリティ トークンで認証されます。

于 2011-05-12T21:44:11.493 に答える
2

StarterSTSを見てください。

完全なソース コードが提供され、標準の aspnetdb ロール ベースの SQL DB に対して認証されます。起動して実行するのに役立つビデオが多数あります。

その後、このプロジェクトは ASP MVC- IdentityServerになりました。これは、ヘルプファイルなどに関してはそれほど成熟していません。

于 2011-05-10T19:41:53.380 に答える