3

SharePoint 2010 Web サイトを ADFS への応答側として要求専用に構成しています。同じ ADFS サーバーへの応答側として、SAML 2.0 CTP の WIF + 拡張機能を使用してクレーム用に構成された ASP.NET アプリケーションもあります。

SharePoint に移動すると、ADFS サーバー ( https://.../adfs/ls?.. ) にリダイレクトされ、Windows ログイン プロンプトが表示されます。その後、同じブラウザー インスタンスで ASP.NET アプリケーションに移動すると、リダイレクトが同じ ADFS サーバーにすばやく行われ、自動的に認証されて、セキュリティ プロンプトなしで ASP.NET アプリケーションにリダイレクトされます。「SharePoint 2010 サイトと ASP.NET アプリケーションの間で認証コンテキストを共有する方法」のように。

SharePoint Web パーツの IFrame 内に ASP.NET アプリケーションを埋め込むと、この問題が発生します。新しいブラウザー インスタンスを開始して SharePoint に移動すると、Windows のログイン プロンプトが表示されます。ページが IFrame まで読み込まれると、埋め込み ASP.NET アプリケーションの同じサーバーに対して 2 番目の Windows プロンプトが表示されます。プロンプトをキャンセルすると、IFrame に 401 Unauthorized が表示されます。ASP.NET アプリケーションに移動すると、プロンプトは表示されず、自動的にログインします。SharePoint アプリケーションに戻ると、プロンプトなしで IFrame コンテンツを含むページが読み込まれます。

https://sharepoint:port/_trust/SharePoint エンドポイントは、バインディング POST でWS-Federation パッシブ エンドポイントを使用しています。ASP.NET アプリケーション エンドポイントは、SAML アサーション コンシューマー エンドポイントを使用しhttps://aspnetapp/て、POST と Artifact をバインドします。両方から渡されたクレームには、各アプリケーションに必要なすべてが含まれています。

SharePoint で IFrame を使用しているときに 2 回目のログイン プロンプトを表示しないようにする方法を知っている人はいますか?

4

3 に答える 3

1

System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0現在組み込まれている WIF クラスから更新した後、シングル サインオンで期待どおりに動作するようになり ました。私は、Microsoft.IdentityModel.Web.Saml2AuthenticationModuleSAML 2.0 CTP 拡張機能との互換性の問題があり、完成していないと推測しています。

于 2014-07-25T02:18:57.040 に答える
0

これは推測にすぎませんが、Sharepoint サイトと iframe から埋め込まれた asp.net サイトの両方のサイトが同時にロードを開始するためだと思います。

どちらも認証されていないため、両方とも Adfs に移動します。しかし、認証されていないため、Adfs は認証を求める 401 チャレンジを開始します。ただし、Web ブラウザは両方のログイン プロンプトを同時に表示しません。むしろ、最初のログイン プロンプトが表示され、ログインに成功すると、その瞬間から Adfs が認証を保持するため、要求を求めてくる他のサイトは認証を無料で取得できます。しかし、内側のサイトである asp.net は、すでにログイン プロセスを開始しています。ブラウザはこれを認識せず、ログインを続行するように強制します。

結論として、私の考えは、認証を必要とする共有ポイントページを作成し、iframe に asp.net サイトがある別のページにリダイレクトして、ブラウザーが両方のサイトのログインシーケンスを開始しようとしないようにすることです。同時。

于 2012-07-18T08:22:09.667 に答える
0

暗い場所でのショットですが、カスタム ASP .NET アプリケーションと SharePoint が 2 つの別々のマシン上にあると仮定すると、ASP .NET ページが IFRAME にあることを考えると、kerberos に関していくつかの微妙な点がある可能性があります。kerberos チケットが必要になる可能性があります。 SharePoint と ASP .NET の間で渡されます。

HTH。

于 2012-07-18T07:55:59.313 に答える