SAMLとOAuthの違いとは? それぞれのメリットや仕組みも解説
SAML(サムル:Security Assertion Markup Language)とは、異なるドメインとドメインの間でもユーザー認証が可能になるマークアップ言語です。
本記事では、シングルサインオンを実現するための技術の1つであるSAMLと、OAuthとの違いについて解説します。
目次
SAMLとは
SAML(サムル:Security Assertion Markup Language)とは、異なるドメインとドメインの間でもユーザー認証が可能になるXMLをベースとした標準規格です。
近年、効率化とセキュリティ強化のために注目されているシングルサインオン(SSO:Single Sign On)を実現するための技術の1つで、ユーザーを認証する際に属性情報(例えば所属の部門など)も付与できるという特徴があります。したがって、シングルサインオンだけでなくアクセス制限も可能にします。
SAMLの仕組み
SAMLは、ユーザー認証をシステムから分離して複数のシステムで共有できます。システムと分離した認証を複数のシステム間で共有できれば、システムが変更されても更新や再構築の必要はありません。
一般的に、従業員は社内のシステムを利用する際に、それぞれのシステムに対しログインする必要があります。しかし、一度SAML認証が完了すると、ユーザーは様々な連携システムにアクセスできるようになります。
企業がセキュリティを厳しくしたければ、SAMLに属性情報を付与し、管理することでアクセス制限をすることも可能です。重要なファイルやデータに対して操作をする権限を一部のユーザーのみ可能にすることができます。
SAMLのワークフロー
まず、ユーザーが、特定の利用サービス(Service Provider :SP)に対しログインを要求します。すると、SAMLと認証情報を提供するサービス(Identity Provider:IdP)がユーザー検証のために接続します。
次に、IdPでのユーザー認証を行います。IdPでのユーザーの認証が正常に完了すると、SAMLトークンが生成され、それが SP に渡されるとサービスの利用が可能になります。
SAMLのワークフローでは、サービスプロバイダー:SP、ブラウザ、アイデンティティプロバイダー:IdPが情報をシームレスにやりとりできるため、数秒で処理できます。
SAMLのメリット
ここでは、SAMLのメリットを解説します。
1点目は、ユーザーの利便性向上とセキュリティ強化です。SAMLは、シングルサインオンを実現する技術の1つです。
通常は、複数のシステムに対してそれぞれのパスワードを設定・認証する必要があります。シングルサインオンであれば一度認証をするだけで良いので、パスワードを複数覚える必要もなく、ユーザーの負担を軽減することが可能です。
さらに、認証にはID、パスワードを用いるだけではなく、複数の認証方法を組み合わせる多要素認証などを用いることにより、セキュリティ強化も実現できます。
2点目は、アカウントの一元化による管理側の負担軽減です。シングルサインオンを導入することで、ユーザーの認証は一度に済みます。それにより、利用者からのパスワード忘れなどの問い合わせに対する工数の削減が期待できます。
SAMLのデメリット
ここでは、SAMLのデメリットを解説します。
1点目は、ID・パスワードのみでの認証をしていた場合、その情報が漏洩してしまうと複数のシステムに侵入される可能性があります。そのため、認証を複数回実施する二段階認証や多要素認証での対策が必要です。
2点目は、対応していないシステムやサービスも存在する点です。SAML認証に対応していないシステムやサービスにもシングルサインオンを導入したい場合には、別の方法で連携する必要があります。
「Gluegent Gate」はSAMLをはじめ、さまざまな方法で各システムと連携することができます
Gluegent Gate が対応する各システムとの連携方法は機能詳細(SSO)を参照ください。
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サービスを利用する中で、認証の機会が増え、業務が滞るのを予防してくれます。
また、SAMLやOAuthはユーザーにとっても導入が簡単で、アカウントの管理と認証、認可を一元化できます。この点でSAMLとOAuthは類似していると言えるでしょう。
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は、とても便利でセキュリティの強化にも繋がるので導入を検討してみてはいかがでしょうか。
「Gluegent Gate」はSAML、OAuthをはじめ、さまざまな方法で各システムと連携することができます
Gluegent Gate は、さまざまな認証方法で多くのクラウドサービスとの連携を実現します。
また、多要素認証によるセキュリティ強化、アカウントの一元管理、監査機能などの機能を備えています。
サービスの詳細はこちらからご確認ください。
ぜひお気軽にご相談ください
ゼロトラストの構成要素に欠かせない統合的なID管理を実現します。
\詳しいPDF資料はこちら/
資料ダウンロードはこちら\お見積りや導入のご相談はこちら/
お問い合わせはこちら