3

ASP.Net MVC3とADFS(パッシブフェデレーションを使用)を使用してシングルページアプリケーション(SPA)を作成しています。「ADFSからの再認証」と呼ぶものを除いて、すべてが期待どおりに機能しています。定期的に(30分未満)、WebサイトはSTSを使用してユーザーの再認証を試みます。これは問題ありませんが、Webアプリケーションは単一ページアプリケーションとして構築されているため、一度ロードされたページをリロードすることはありません。さらに、再認証要求はajax呼び出し中に頻繁に発生します。

ADFSには、WebSSOLifetimeとTokenLifetimeのデフォルト設定があります。

次のいずれかの方法があります:a)JavaScriptからバックグラウンドでサイレントにユーザーを再認証しますか(おそらくCORSやJSONPをクリエイティブに使用して)?またはb)再認証要求間の時間を延長しますか?またはc)何か他のもの。

b)に関しては、persistentCookiesOnPassiveRedirects = "true"を設定してから、cookieHandler内でpersistentSessionLifetimeを目的の値に設定できるようです。

<wsFederation persistentCookiesOnPassiveRedirects="true" passiveRedirectEnabled="true" issuer="xxx" realm="yyy" requireHttps="true" />
    <cookieHandler requireSsl="true" persistentSessionLifetime="0.8:0:0" path="/" />

ただし、永続的なCookieは使用したくありません。

最後に、ここで説明する鮮度設定を試してみました。ADFS2.0とのフェデレーションが成功しない場合にタイムアウトを適切に設定する方法。

どんな助けでも大歓迎です。

4

1 に答える 1

2

b) に関しては、必要な設定はトークンの有効期間です。Set-AdfsRelyingPartyTrust PowerShell スクリプトを使用して、この値を更新できます。

Set-AdfsRelyingPartyTrust -TargetName "My App" -TokenLifetime 120

トークンの有効期間の値は分単位です。AD FS 2.0 の既定値 (0) は 60 分です。

a) に関しては、私が知っている唯一の方法は、ajax 呼び出しによってスローされた例外をキャッチし、単一のページを更新することです。

于 2012-08-30T18:50:34.503 に答える