SAML認証は、シングルサインオンを実現する手段のひとつ。メリットが大きな手段であることから、多くのシングルサインオンシステム(SSO)に利用されています。

とはいえ、SAML認証の仕組みや特徴については、詳しく知らないという方が多いのではないでしょうか。

そこで今回は、シングルサインオンのSAML認証について詳しく解説していきます。

SAML認証とは

まずは、SAML認証とはどのようなものなのか、その概要と特徴について見ていきましょう。

SAML認証

SAMLとは、異なるインターネットドメイン(※1)間でユーザーの認証を行うための、XML (※2)ベースの標準規格のこと。「Security Assertion Markup Language」を略しSAML(サムル)と呼ばれています。

SAMLは、2002年にOASIS (※3)によって策定され、さらに2005年にはバージョン2.0がOASIS標準として承認されています。

安全な認証を可能にするSAMLは、主にシングルサインオン(※4)や電子商取引などに用いられています。

※1ドメイン
インターネット上の住所。
※2XML
HTMLなどど同様に、主にデータのやり取りに使用されるマークアップ言語。
※3OASIS
情報に関する技術標準を作成する国際団体。
※4シングルサインオン
一回のユーザー認証のみで、連携した複数のシステムにログインできる仕組み。SSO。

SAMLの特徴

前述の通り、SAML認証は異なるドメイン間でのユーザー認証を可能にします。これにより、一回のユーザー認証で、連携した複数のクラウドサービスやアプリにログインできるシングルサインオンが可能になるわけです。

また、ユーザー認証だけでなく、属性情報の認証も可能な点が、SAML認証の大きな特徴でしょう。属性情報の認証は、「どの機能をどの属性の人に使わせるか・使わせないか」というユーザーのアクセス制限に活用できます。

SAML認証の仕組みと流れ

ここからは、SAML認証の仕組みと2パターンある認証の流れについて解説していきましょう。

SAML認証の仕組み

SAML認証の仕組みや流れについて知るにあたって押さえておきたいのが、「SP」「IdP」「ユーザー」というワードについて。これらのワードの意味を理解していなければ、SAMLの仕組みも理解できません。
まずは、それぞれのワードの意味を確認しておきましょう。

◆SP(Service Provider)とは
認証情報を利用する、クラウドサービスやアプリケーションサービス側(Office 365やDropbox等)

◆IdP(Identity Provider)とは
認証情報を提供する、シングルサインオンのサービス提供側

◆ユーザーとは
システム利用者

SAML認証では、「IdP」 が「SP」と「ユーザー」の橋渡しを行うことで、シングルサインオンを可能にしています
つまり、SAML認証は.「SP」「IdP」「ユーザー」の三者間における認証情報のやり取りによって成り立っているのです。

SAML認証の流れ

SAML認証の流れは、SPを起点とするかIdPを起点とするかによって、2パターンに分けられます。

①SP Initiated(SPを起点とする場合)

まずは、SPを起点とする場合「SP Initiated」のパターンにおける認証の流れを確認していきます。

1.ユーザーがクラウドサービスやアプリケーションサービス(SP)にアクセスする。
2.SPがユーザー確認ののち、IdPへとリダイレクトし、SAML認証を要求する。
3. SPからの要求を受け、IdPがユーザー認証画面を表示する。
4.ユーザーがIDとパスワードを入力する。
5.IdPが認証処理を実行する。
6.認証が成功したら、IdPがSAML認証応答を作成する。
7. IdPから受け取ったSAML認証応答を、ユーザーがSPに送信する。
8.SPがSAML認証応答を検証し、ログインを許可する。

②IdP Initiated (IdPを起点とする場合)

次に、IdPを起点とする場合「IdP Initiated」のパターンにおける認証の流れを確認していきます。

1.ユーザーがIdPにアクセスする。
2.IdPがユーザー認証画面を表示する。
3.ユーザーがIDとパスワードを入力する。
4.IdPが認証処理を実行する。
5.ユーザーがIdPへのログインに成功。
6.ユーザーが、IdPの画面からクラウドサービスやアプリケーションサービス(SP)をクリックする。
7. IdPがSAML認証応答を作成する。
8.IdPから受け取ったSAML認証応答を、ユーザーがSPに送信する。
9.SPがSAML認証応答を検証し、ログインを許可する。

このように、パターンかによって、SAML認証を実現する仕組みの流れは異なります。

SAML認証を利用したシングルサインオン(SSO)のメリット

SAML認証を利用したシングルサインオンには、複数のメリットが期待できます。ここからは、そのメリットを、シングルサインオン自体のメリットとともに3つご紹介します。

ログインの手間省略による業務効率化

シングルサインオンを使用すれば、連携した複数のクラウドサービスやアプリに一回のユーザー認証でログインできるようになります。サービスやアプリごとに毎回ユーザー認証を行う手間が不要になるため業務が中断されず、業務効率化を目指せます。

パスワード漏えいに対するセキュリティ向上

クラウドサービスやアプリでは、ログインのためのIDとパスワードを設定します。それぞれのIDとパスワードを管理していくのはユーザーにとって負担となり、パスワードの使い回しやメモ紛失などが起こりやすくなってしまいます。

シングルサインオンなら、複数のサービスやアプリへのログインに使うIDとパスワードはひとつだけ。パスワード管理が簡単になり、漏えいのリスクも低くなります。

多様なクラウドサービスに対応可能

認証に対応していないクラウドサービスやアプリが多いと、使っているサービスやアプリをシングルサインオンにすることが難しくなる可能性があります。

しかし、SAML認証は、多様なクラウドサービスやアプリに対応可能。あらゆるサービスやアプリをシングルサインオンにまとめられる点が、SAML認証を利用したシングルサインオンの大きなメリットです。

SAML認証とOAuthの違い

SAML認証と比較されることが多い仕組みに、OAuthというものがあります。SAML認証とOAuthの違いについても、押さえておきましょう。

OAuthとは

OAuth(オーオース)とは、複数の異なるクラウドサービスやアプリケーションを連動させるための仕組みのことです。OAuthを利用すれば、サービスやアプリごとにユーザー認証を行わなくても、サービス・アプリ間の連携が行えます。

クラウドのアルバムサービスに写真を投稿したら、それと同時に自分のTwitterアカウントに「アルバムに写真を投稿しました」というメッセージとそのURLがツイートされるようなクラウドサービス・アプリ間の連携を例にすると、理解しやすいでしょう。
この場合、アルバムサービスにログインすることで、実質Twitterにもログインしていることになります。

SAMLは認証とOAuthは認可

連携により、一度のユーザー認証で他のクラウドサービスやアプリにログインできるという点で、SAML認証とOAuthは似ています。しかし、これらには違いがあります。

SAML認証とOAuthの大きな違いは、「認証するか」「認可するか」という点にあります。
認証とはユーザーを確認すること、認可はアクセス権限を付与することで、SAML認証では認証行いますが、OAuthが行うのは認可になります。
この特徴を踏まえ、SAML認証とOAuthは使い分けられています。

まとめ

シングルサインオンシステムの導入検討にあたっては、シングルサインオンを実現する手段であるSAML認証について理解しておくことをおすすめします。SAML認証についての理解は、シングルサインオンシステムの導入や活用に役立つでしょう。

シングルサインオンは、ビジネスの効率化やセキュリティ向上に効果的な手段。その仕組みをきちんと理解した上で、効果的な活用を目指しましょう。