SAMLとOAuthを使用したフェデレーションログインの違いは何ですか?企業がサードパーティのWebアプリを使用したいが、シングルサインオンを希望し、認証機関になりたい場合、どちらのソリューションがより理にかなっていますか?
7 に答える
ここに要約されたこの簡単な説明を見てください。
多くの人が SAML、OpenID、OAuth の違いについて混乱していますが、実際には非常に単純です。重複する部分もありますが、ここでは 3 つを区別するための非常に簡単な方法を示します。
OpenID – 消費者向けシングル サインオン
SAML – エンタープライズ ユーザー向けのシングル サインオン
OAuth – アプリケーション間の API 認証
オブジェクト指向のデザインパターンに慣れている人にとっては、ラッパーパターンには良い結果があると思います。Facade、Decorator、およびProxyパターンを考えてみてください。基本的にこれらはすべて同じで、ラッパーにすぎません...違いは、各パターンの意図です。
同様に、SAML、OAuth、および OpenID はすべて、共通の基本メカニズムを介してさまざまな意図を促進します。このメカニズムは、プライベートなやり取りのためのサービス プロバイダー/ID 機関へのリダイレクトと、それに続く元のサードパーティ アプリへのリダイレクトです。
ネットで調べてみると、プロトコルの機能が重複していることがわかります。OAuth による認証は完全に合理的です。SAML と OpenID はフェデレーテッド ID を特に対象としているため、OAuth を介した SSO はあまり意味がないかもしれません。
質問自体には、企業のコンテキストでは SAML が SSO の OAuth よりも適切に聞こえます。企業アイデンティティと統合したいサードパーティのアプリを見れば、SAML/LDAP/Radius などと統合するように既に設計されていることがわかると思います。IMO OAuth は、インターネットのやり取りに適しています。アプリケーション間、またはおそらく大規模な企業環境でサービス指向アーキテクチャを構成するアプリケーション間。
承認規則は、他の方法でも企業環境で指定できます。LDAP は、このための一般的なツールです。ユーザーをグループに編成し、アプリケーション権限をグループ メンバーシップに関連付けることは、広く普及している方法です。たまたま LDAP を認証にも使用できます。Active Directory は良い例ですが、私は OpenLDAP の方が好きです。
彼らは微妙なユースケースを扱います
- SAML - ユーザーの資格情報 (SSO など) をさまざまなサービス プロバイダー (Web または Web サービスなど) に共有する
- OAuth - ユーザーに代わってリソースにアクセスするアプリを委任するユーザー
SAML には、他のユーザーがサイトに「ログイン」できるように選択できるさまざまな「プロファイル」があります。SAML-P または SAML パッシブは非常に一般的で、セットアップが非常に簡単です。WS-Trust も同様で、Web サイト間のフェデレーションも可能です。
OAuth は認可用に設計されています。ここでもっと読むことができます: