2017-06-26 10 views
0

ユーザーがSAML経由でログインできるようにするWebアプリケーションがあります。 IdPログインURL、ログアウトURL、証明書などを提供するか、メタデータURLだけを提供することで、アイデンティティプロバイダを設定できるようにしたいと考えています。自分のサイトにSAML IDプロバイダを許可することはできますか?

また、私の顧客の一部は、独自の内部IDプロバイダをセットアップして使用したいと考えています。

私の質問は、一度鍵が交換されると、署名が検証されるなどです。アイデンティティプロバイダが安全であると私がどのように信頼することができますか? SAMLResponseが(特にIdPによって開始されたSSOを介して)入ってくると、NameID要素の電子メールアドレスがログインしたい正当なユーザーに関連していることをどのように知ることができますか?サイト管理者としてログインするために自分のメールアドレスを送信できないのはなぜですか?

私はSAML 2.0仕様の多くを読み、ここで回答していますが、ブログの投稿はありますが、この質問に対する具体的な解決策は見当たりませんでした。

答えて

0

署名されているため、SAMLトークンを変更することはできません。

最終的には、これらすべてのIDPを確認する必要があります。

このため、フェデレーションは手動で行われます。

あなたが連合する場合、あなたは信頼します。

+0

SAMLResponseのNameIDとして悪意を持って(または他の管理者または顧客の)電子メールアドレスを* * IdPが悪意のあるようにして、自分のサイトに完全にアクセスすることを妨げるものは何もありません。どのように安全ですか? – user3112401

+0

これは認可がどこに来るかです。あなたのAD上ではなく自分のIDP上の役割しか持たず、あなたはマッピングを制御します。 – nzpcmad

0

質問にジャンプする前に、SSO認証の流れについて明確にすることが重要だと思います。

SAML 2.0の場合、IDプロバイダ(IDP)とサービスプロバイダ(SP)の2つの関係者が関係します。彼らはプロトコルのエンドポイントと証明書を使用してバックチャネル(サーバー間)通信を行います。

これで、通信プロセスが安全であることを保証するためのあらゆる種類のネットワーク層プロセスがあり、man-in-the-middle攻撃は起こりません。

  1. SAML 2.0メタデータ
  2. SAML 2.0属性マッピング

自分のアイデンティティを設定します。正しい場合

はその後戻ってあなたの元の質問に、私は、それは、次の2つのトピックが含まれてだと思いますプロバイダは、IdPログインURL、ログアウトURL、証明書などを提供するか、メタデータURLのみを提供します。

これらはすべて、SAML 2.0に必要なメタデータですので、あなたは一般的にそれを自分で設定するか、私は別のSAML 2.0フェデレーションサーバーは、メタデータの独自のセットを持っている意味in your wayで(あなたの方法で行うにはあなたのパートナーを信頼することができますが、彼らは同じでなければならない)。

一度鍵が交換され、署名が検証されるなど、アイデンティティプロバイダが安全であると私はどのように信頼できますか? SAMLResponseが(特にIdPによって開始されたSSOを介して)入ってくると、NameID要素の電子メールアドレスがログインしたい正当なユーザーに関連していることをどのように知ることができますか?サイト管理者としてログインするために自分のメールアドレスを送信できないのはなぜですか?

  1. IDPは(ソーシャルエンジニアリング)、彼らがハッキングしまったかのように、安全でなければならない、彼らはあなたのアプリケーションにログインすることができます。

  2. SAMLは、あなたが(私たちはおよそprovisioningの話ができた場合)SAML_SUBJECTの役割が何であるかを判断するために使用できる他の属性があるか、(そのユーザーに事前に定義されたロールマッピングを持つことができます脇SAML_SUBJECTから、マッピング属性SAML_SUBJECT)を使用して役割を決定します。

SAMLはちょうど認証のためのものであり、利用者のための信頼できる情報を交換するので、どのように相互に合意したSAMLペイロード内の情報を使用するにはSPのアプリケーションで実装する必要があります。

@nzpcmadによってコメントされたトークン操作に関しては、PingFederateがOpenTokenアダプタ経由でSPアプリケーションと話すとき、これはPingFederateの契約履行とも言えるでしょう。そして、Okta、OAuth0はどちらも同じような概念を持っています。

これはあなたの質問にお答えします。

関連する問題