2017-01-11 557 views
3

先週、私はSAML 2.0でシングルサインオンを使用するというテーマについて多くの研究を行いました。 SSOのプロセスを詳細に理解していますが、.Net Framework 4.5のC#ソリューションで実装する際に問題が発生しています。 SAML 2.0を使用したC#でのシングルサインオンの実装

は私がプロセスの私の理解を記述してみましょうと私は想像してどのように私はそれを適用するに取り掛かる必要があります。

  1. ユーザーがサービスプロバイダ(SP)である当社のソフトウェアに行きます。私たちは、クライアントのニーズに合わせて異なるインスタンスを整えています。

  2. メールアドレスを入力した後、彼は アイデンティティプロバイダ(IdP)にリダイレクトする必要があります。この時点で、私は に、ユーザがIdP上にまだ を記録していないかどうかを確認する認証トークンを送信する必要があると考えています。ユーザーがいる場合は、ユーザー を当社のシステムにログインさせたいと考えています。彼がそうでない場合、彼は彼らのIdPにログインするでしょう。

  3. 彼が正常に認証された後、我々はSAMLレスポンストークンをウェブサイトのURLに送り返しています。
  4. トークンが私たちの側に到着すると、トークンを復号化し、認証が成功したときにユーザーにサービスへのアクセスを許可する必要があります。

は、これまでのところ私は、SAMLの要求またはC#コードで私たちのSAMLトークンを解読する方法を生成する実際のプロセスに何か良いリソースを発見していません。

私たちはIdPとしてADFS 2.0を使用しており、その応答はSAMLです。回答を処理する際には、データベース内の情報とレスポンスの電子メールを比較して、ユーザーの詳細を確認してからシステムに入れてみたいと考えています。

私が見つけた例は古くなっているか、詳細な説明をしていません。もし誰かが私のためにいくつかの光を照らすことができるなら、実現のいくつかの例を提供するか、まだ見つけられなかった良い最新のリソースを提供する。

+0

これらの記事を見てください:[C#ASP.NETシングルサインオン実装](http://stackoverflow.com/a/14309354/5588347)と[asp.netでSAML2.0を使用するSSO](http ://stackoverflow.com/questions/10794817/sso-using-saml2-0-in-asp-net) –

+0

これは話題にはならないかもしれませんが、多くの人がSAMLをWeb SSOの「レガシー」プロトコルと見なし始めています。 oauth/openid接続の好意。最初からビルドする場合は、そのルートを将来的に証明する方がよいでしょう。 –

答えて

1

SAMl 2.0は単純なプロトコルではありません。あなたが発見したように、自分自身をロールするのは簡単ではありません。

SAMLクライアントサイドスタックを使用します。

注:Microsoftの公式のものはありません。

いくつかのアイデアについては、SAML : SAML connectivity/toolkitを参照してください。

これはあなたのために重い持ち上げと配管を行います。

+0

なぜdownvote? SAMLスタックを使用することで問題は解決します。それはエンコーディング/暗号化を行います。または、指導のための情報源を見てください。 – nzpcmad

関連する問題