0

これがセットアップです。STS プロバイダーと 2 つの ASP.NET MVC サイトがあり、どちらも同じ STS プロバイダーを信頼しています。ユーザーはサイト A にアクセスし、STS プロバイダーのパッシブ ログインにリダイレクトされ、適切に認証され、期待どおりサイト 'A' にリダイレクトされます。これはすべてうまくいきます。次を使用して、サイト「A」のコードでトークンと ID を確認できます。

IClaimsPrincipal claimsPrincipal = Thread.CurrentPrincipal as IClaimsPrincipal;
IClaimsIdentity claimsIdentity = (IClaimsIdentity)claimsPrincipal.Identity;

現在、サイト「A」からサイト「B」へのリンクがあり、同じSTS プロバイダーを信頼しています。問題は、サイト 'B' に移動すると、クレーム情報が存在せず、ユーザーが自動的に認証されないことです。STS および WIF のドキュメントによると、次のことが発生するはずです。

「フローは通常どおりに開始され、ユーザーはサイト A の B からページを要求し、トークンを取得するために STS にリダイレクトされます。ただし、このユーザーは、STS サイトで既に認証されています。 STS cookie. これは、STS ページの要求が、ユーザーに資格情報収集用の UI を表示することなく、SecurityTokenService 発行シーケンスの実行に直接つながることを意味します.トークンはサイレントに発行され、B に転送されます.いつもの順番通り。ユーザーが B へのリンクをクリックし、ブラウザーが B から要求されたページを表示した瞬間から、ブラウザーのアドレス バーのちらつきだけで、なんらかの認証がフードの下で行われたという事実が明らかになります。これがシングル サインオン (SSO) の意味です。ユーザーは 1 回だけサインインした経験があり、その瞬間から、システムはユーザーに再度資格情報を要求することなく、他の信頼できるパーティにアクセスできるようになります。」

これを正しく機能させるには、STS プロバイダー、サイト A、またはサイト B で明示的に何を行う必要があるかを知っている人はいますか? STS とサイト「A」は完全に機能していることを思い出してください。サイト「B」が SSO 機能を取得していないだけです。

ありがとう!

4

1 に答える 1

1

はい - SSO を取得する必要があります。

ADFS 用語を使用すると、STS で A と B の両方を FedUtil し、STS で A と B の両方を基本的に同じ構成の依拠当事者として構成したと思いますか? AとBの両方のweb.configを比較したと思いますか?

すべての Cookie を消去します。FireFox がこれに最適です。

Bに直接移動します。

  • STSログイン画面?
  • FBAログイン画面?
  • 何もない - B に直行?

STS ログイン画面の場合、認証してから A に移動するとどうなりますか?

何もない場合、B のランディング ページは保護されていますか?

于 2012-10-05T01:20:42.647 に答える