1. ホーム
  2. authentication

[解決済み] SAMLとOAuthによる連携ログインの比較

2023-01-20 08:25:57

質問

SAMLとOAuthによる連携ログインの違いは何ですか? 企業がサードパーティのウェブアプリを使用したいが、シングルサインオンと認証機関になりたい場合、どちらのソリューションがより理にかなっていますか?

どのように解決するのですか?

さまざまな問題を解決します。

SAML は、ユーザーが誰であるか、その属性のセットについて情報を共有し、何かへのアクセスを許可/拒否する、あるいは認証を要求する方法を提供するために定義された一連の標準です。

OAuth は、何かへのアクセスを委譲することについての詳細です。 基本的に、誰かがあなたの代わりに行動することを許可することになります。 最も一般的には、あなたに代わって何かを行うことができるアクセスAPIを許可するために使用されます。

この2つは全く別のものです。


参考になりそうな例をいくつか。

OAuthはTwitterを考えてみてください。 例えば、あなたが Googleバズ とTwitterを利用していて、この2つを同期させるアプリを書きたいとします。 基本的には、アプリとTwitterの間に信頼関係を構築することができます。 アプリをTwitterにリンクしようとすると、最初にTwitterにログインするように促され、確認ボックスがポップアップして「あなたのアプリ名」へのアクセスを許可しますか、と尋ねられます。 あなたの投稿を読んだり、新しい投稿をしたりすることができます。

SAML - SAML については、2 つの無関係な会員制システムの間の何らかのタイプの契約について考えてみてください。 私たちの場合、US AirwaysとHertzを使うことができます。 あるサイトから別のサイトへ移動できる共有クレデンシャルセットはないが、HertzがUS Airwaysに"deal"を提供したいとする。(これは極端な例ですが、ご容赦ください)。フライトを購入した後、会長のメンバーに無料のレンタカーを提供するのです。 USエアウェイズとハーツは、何らかの形で信頼関係を築き、ユーザーを識別する方法を確立することになります。この場合、私たちの「連合 ID」は電子メールアドレスであり、それは一方通行の信頼関係である。ハーツは、US エアウェイズの ID プロバイダが正確で安全な方法でトークンを配信することを信頼する。 フライトの予約後、USエアウェイズのIDプロバイダはトークンを生成し、ユーザをどのように認証したかと、その人についての属性(この場合、最も重要な属性はUSエアウェイズのステータスレベル)を入力することになる。 トークンが入力されると、何らかの参照を通じて、または URL にエンコードされて渡され、Hertz に到達すると、トークンを見て、それを検証し、無料のレンタカーを許可することができるようになります。

この SAML の例の問題点は、多くの使用事例のうち、特殊な使用事例の 1 つにすぎないということです。SAMLは標準であり、それを実装できる方法はほとんどありません。


あるいは、認証にこだわらないのであれば、SAMLによる認証のアサートと OpenID .