2

SSO Windows認証を行いたいasp.net MVCアプリケーションがあります。Ping Federate を IdP および SP として使用します。サイトに入ると、資格情報を入力した後に SSO ページにリダイレクトされ、SAML が SP にポストされ、SP がサイトにリダイレクトされます。

問題 私のアプリは、ユーザーが認証されていることを認識せず、すでにユーザーを認証している SSO ページにリダイレクトして、再び SAML を SP に送信し、無限ループが発生します。 私は何が欠けていますか?web.config ファイルで何かを変更する必要がありますか?

これは私がweb.configに持っているものです

<authentication mode="Windows">
</authentication>
<identity impersonate="true" /> 
4

2 に答える 2

3

SP 側に使用しているアダプターの種類に応じて、適切なキットを使用することをお勧めします。OpenToken キット、Agentless キットなどです。

私は以前に同じ問題を抱えていたので、アプリケーションでフローを終了し、応答に Cookie を書き込む必要があります。これは、使用しているアダプターによって異なりますが、最後は同じです。

OpenToken アダプターを使用している場合は、クエリ文字列またはフォーム ポストのいずれかでオープン トークンを受け取る必要があります。そのトークンは、OpenToken エージェント キットで開く必要があります。これを行うと、「属性」または「クレーム」が内部にあることがわかります。次に、応答に Cookie を書き込み、その Cookie を使用してセッションを開始する必要があります。

エージェントレス アダプタを使用している場合は、クエリ文字列またはフォーム ポストのいずれかで REF ID を受け取ります。その REF ID を取得し、PingFederate でピックアップ エンドポイントを呼び出す必要があります。その呼び出しでクレームが返されるので、もう一度 Cookie を書き込んでセッションを開始する必要があります。

以前は、これを行う HTTPModule をコーディングし、WS-Federation 機能を別の目的で使用して Cookie を書き込んでいました。最後に、サイトは Ping で認証しますが、WS-Federation 対応アプリのように WIF Coo​​kie を読み取ってセッションを継続します。

しかし、最終的には OpenIdConnect/OAuth2 に移行しました。これはより新しい標準であり、SP アダプターを必要としません。

PingFederate で OAuth2/OpenIdConnect モジュールが有効になっている限り、すべてを処理してくれる OWIN 用のクライアントをリリースしました。

移動する場合のリンクはこちらです。 https://www.nuget.org/packages/Owin.Security.Providers.PingFederate

于 2015-05-02T18:33:22.820 に答える