2016-06-20 33 views
0

同じドメインの同じマシンで実行される2つのサーバーがあります。ASP.NETシングルサインオン

ASP.NETで記述され、アイデンティティフレームワークを使用します。

これらの間にシングルサインオン(およびシングルサインアウト)を実装する必要があります。

実際のログインはAJAXで行われます(I POSTユーザー名とパスワード、サーバーはユーザーを認証してセッションを設定し、クライアントにリダイレクトデータURLを送信します)。

私は

私はチュートリアルだけで任意のモーダルダイアログについて使用してプロジェクトを作成する方法を説明すると、任意のウィザードは、Visual Studioであり見つかっなどOW​​IN、アイデンティティフレームワーク、クレームに関する情報の圧倒的な量を、見つけたI理解しようとしましたが、実際には認証システムが稼働しているので、実際には役に立たないのです。

私もいくつかのデモは、方法のすべての種類のSSOを実装すると主張し、単純にこれを入れて、私には奇妙に思えたweb.configファイル内の値と設定が完了し、ということに言ったいくつかのStackOverflow質問見つかりました私はそれがどのように動作するかについての基本的な理解が不足していると考えました。

まだ、ASP.NET IDでSSOがどのように動作するのかわかりません。

誰か簡単な方法で私に説明してもらえますか、そのような説明を私に紹介してもらえますか?

もう一度:私は2つの認証システムを稼働させています。シングルサインオンを有効にするために必要なコードや設定の変更

+1

あなたはどの認証システムを使用していますか? –

+0

私が言ったように、アイデンティティ・フレームワークは、何か他のことを意味しない限りですか? –

+0

なぜdownvote? –

答えて

2

まず、認証を共有するには、同じユーザーストアで作業する必要があります。つまり、両方のアプリケーションが共有するクラスライブラリにIdentity初期化コード(ApplicationUserApplicationDbContextApplicationUserManager、およびApplicationSignInManager)を取り除く必要があります。 2つの別々のデータベースを共有してユーザーデータと共有しようとすると、不可能で克服できない作業になります。

次に、両方のアプリケーションが同じマシンキーを使用していることを確認してください。認証クッキーは暗号化されており、暗号化はマシンキーに基づいているため、両方のアプリケーションが同じキーを使用してそのクッキーを暗号化/復号化する必要があります。

あなたはすでに、両方が同じドメインでホストされていると述べているので、それはすべてです。

+0

さて、ユーザーデータベースはすでに共有されています。だから私はあなたが正しく理解するなら、それはちょうどうまくいくはずです私はもはや仕事をしておらず、それを確認できませんが、そうではないと思います。 –

+2

マシンキーを共有していないためです。デフォルトでは、各アプリケーションによって固有のキーが生成され、使用されます。そのバリエーションを削除し、各サイトのWeb.configで同じマシンキーを指定する必要があります。 –

+0

私は試してみましたが、ローカルで動作しましたが、今は懸念しています - ロードバランサの背後にあるときにも動作しますか? –

関連する問題