Gluegent Gate

SAMLとOAuthの違いとは? それぞれのメリットや仕組みも解説

最終更新日:
  • SSO
  • 認証

SAML(サムル:Security Assertion Markup Language)とは、異なるドメインとドメインの間でもユーザー認証が可能になるマークアップ言語です。

本記事では、シングルサインオンを実現するための技術の1つであるSAMLと、OAuthとの違いについて解説します。

SAMLとOAuthの違いとは? それぞれのメリットや仕組みも解説
 目次

SAMLとは

SAML(サムル:Security Assertion Markup Language)とは、異なるドメインとドメインの間でもユーザー認証が可能になるマークアップ言語です。

近年、効率化とセキュリティ強化のために注目されているシングルサインオンを実現するための技術の1つで、ユーザーを認証する際に属性情報も認証できるという特徴があります。したがって、シングルサインオンだけでなくアクセス制限も可能にしています。

SAMLの仕組み

SAMLは、ユーザー認証をシステムから分離して複数のシステムで共有できます。システムと分離した認証を複数のシステム間で共有できれば、システムが変更されても更新や再構築の必要はありません。

ここでは、SAMLの仕組みを簡単に解説します。

SAMLは、ユーザーを検証して認証するための標準です。普通、従業員は社内のシステムなどにログインする必要があります。一度SAML認証が完了すると、ユーザーは企業の様々なシステム全体にアクセスできるようになります。

企業がセキュリティを厳しくしたければ、SAMLでアクセス制限をすることも可能です。重要なファイルやデータに対して操作をするような権限を一部のユーザーのみ可能にすることやその承認もできます。

SAMLのワークフローを簡単に解説します。

まず、ユーザーがログインを要求します。すると、SAMLとアイデンティティプロバイダーがユーザー検証のために接続します。

次に、ログイン画面にIDとパスワードの入力画面が表示されます。ユーザーが正しいIDとパスワードを入力すると、SAMLトークンが生成され、それがサービスプロバイダーに渡されるとサーバーへのログインが可能になります。

SAMLのワークフローでは、サービスプロバイダー、ブラウザ、アイデンティティプロバイダーが情報をシームレスにやりとりできるため、数秒で処理できます。

SAMLのメリット

ここでは、SAMLのメリットを解説します。

1点目は、セキュリティの向上です。SAMLは、シングルサインオンを実現する技術の1つです。従来は、複数のシステムに対してそれぞれ別のパスワードを設定する必要がありました。異なるパスワードを設定することは、一見リスクを分散してセキュリティ強化に繋がると思われがちですが、実際はユーザーが負担を軽減するために単純なパスワードを設定してしまうことが多いです。シングルサインオンならば、1つの複雑なパスワードを設定するだけで良いので、ユーザーの負担を軽減しながらセキュリティの強化が可能です。

2点目は、管理の一元化による利便性の向上です。シングルサインオンを導入することで、ユーザーの覚えるパスワードは1つで済みます。さらに、一度の認証で複数のシステムやサービスにアクセスできるので、業務効率も改善されることが期待されます。

SAMLのデメリット

ここでは、SAMLのデメリットを解説します。

1点目は、ID・パスワードが漏洩してしまうと複数のシステムに侵入されてしまうという点です。これは、シングルサインオンの技術に共通して言えることですが、その分パスワードを複雑にしたり、二段階認証や多要素認証での対策が必要です。

2点目は、対応していないシステムやサービスも存在する点です。SAML認証に対応していないシステムやサービスにもシングルサインオンを導入したい場合には、別で対策する必要があります。

OAuthとは

OAuth(オーオース)とは、ネットワーク内でのアクセストークンの要求とその返答を標準化した認可プロセスです。例えば、あるWebサービスにログインしているときに、新たにID・パスワードを入力せずに別のWebサービスに移ったときにはOAuthを利用していることになります。このとき、元々ログインしていたWebサービスが別のWebサービスにアクセス権限を認可しています。この仕組みが、OAuthです。

OAuthの仕組み

OAuthは、業務上複数のシステムを何度も切り替えながら作業するような場合に活躍します。ここでは、OAuthの仕組みを簡単に解説します。

OAuthの「Auth」は、認証と認可の意味を持ちますが、ここでは認可の意味で使われています。OAuthでは、ユーザーのIDとパスワードを保護しながら、別のユーザーに認可を渡すための技術です。これもSAMLと同じく、シングルサインオンを実現する技術の1つであると言えます。

OAuthのワークフローを簡単に解説します。

まず、ユーザーがログインを要求します。すると、OAuthは、使用するサードパーティの認可情報を選択します。

次に、認可サーバーからアクセストークンが生成され、リソースサーバーに渡されます。そして、アクセストークンを検証した後、リソースサーバーがユーザーにログインを許可します。

OAuthのワークフローでは、2つのサーバーがやりとりします。やりとりの間、トークンは基本的に暗号化されません。

OAuthのメリット

ここでは、OAuthのメリットを解説します。

OAuthの最大のメリットはアクセストークンを使用しているその認可プロセスにあるでしょう。あるWebサービスから別のWebサービスへIDとパスワードを直接渡すのではなく、アクセストークンを生成してそれを渡すことで、万が一トークンを盗まれても最小限の被害で済ませることができます。

トークンには有効期限をかけることや権限を制限することもできるので、セキュリティの高いシングルサインオンを実現することができます。

OAuthのデメリット

ここでは、OAuthのデメリットを解説します。

OAuthのデメリットとしてあげられるのは、認可情報を誤って悪意のあるWebサービスにアクセストークンを受け渡してしまった場合に悪用されてしまう可能性がある点です。近年、SNSなどで多く利用されているOAuthですが、なりすましやアカウント情報の書き換えなどの被害が起きてしまいます。

SAMLとOAuthの類似点

SAMLとOAuthは、異なるシステムやWebサービスの相互運用を支援し、標準化するプロトコルで、シングルサインオンを実現します。ほとんどの企業が複数のシステムやWebサービスを利用する中で、IDやパスワードが増え、業務が滞るのを予防してくれます。

また、SAMLやOAuthはユーザーにとっても導入が簡単で、アカウントの管理と認証、認可を一元化できます。この点でSAMLとOAuthは類似していると言えるでしょう。

IDaaS 「Gluegent Gate」の機能詳細は、こちらのページを参照ください。

Gluegent Gate 機能一覧

SAMLとOAuthの違いとは

ただ、SAMLとOAuthには決定的な違いがあります。それは、SAMLは「認証」と「認可」するのに対し、OAuthは「認可」のみ行うという点です。

「認証」と「認可」の違い

ここでは、その「認証」と「認可」の違いを簡単に解説します。

「認証」とは、ユーザーのアイデンティティを識別するプロセスです。例えるならば、家の鍵のようなものです。

対して、「認可」とは、ユーザーにアクセス権限を与えるプロセスです。例えるならば、その家の中のルールのようなものです。

OAuthは、認証は行わないため、アクセスした後のユーザーの検証ができません。なりすましの検証ができないという意味では、OAuthはSAMLよりもセキュリティ面で劣ると言えるでしょう。

IDaaSで利用されるSAMLとOAuth

IDaaSとは、クラウド上でアイデンティティの管理をするサービスです。IDaaSは、複数サービスのシングルサインオンやユーザー情報の管理、その間の連携などを可能にします。

そのIDaaSを運用する上でフェデレーションと呼ばれる複数サービス間の連携が非常に重要になってきますが、その認証と認可のプロセスの中でSAMLやOAuthの技術が使われています。SAMLは主にBtoBのサービスで利用されることが多く、OAuthはBtoCのサービスで利用されることが多いです。

まとめ

ここまで、SAMLとOAuthについて解説してきました。

SAMLとOAuthはどちらもシングルサインオンを実現する技術で、とても利便性が高いです。「認証」と「認可」の違いはあれど、どちらかを選ぶかというよりも2つを相互に連携して利用することを考える方が良いです。

SAMLとOAuthが使われているシングルサインオンやIDaaSは、とても便利でセキュリティの強化にも繋がるので導入を検討してみてはいかがでしょうか。

ぜひお気軽にご相談ください

IDaaS「Gluegent Gate」はシングルサインオンによるユーザーの利便性・セキュリティ向上に加え、
ゼロトラストの構成要素に欠かせない統合的なID管理を実現します。

\詳しいPDF資料はこちら/

資料ダウンロードはこちら

\お見積りや導入のご相談はこちら/

お問い合わせはこちら