SAML(Security Assertion Markup Language)
SAML認証とは?
SAML認証はインターネットドメイン間でユーザー認証を行なうためのXML(マークアップ言語)をベースにした標準規格です。一度のログインで複数のサービスにログインできるシングルサインオンを実現するための規格として利用されることが多いです。
SAML認証を用いたログインの際、ユーザー認証だけでなく属性情報も認証できるため、ユーザーのアクセス範囲も制限できるという特徴を持ちます。
つまり、SAML認証を用いればシングルサインオンを実現できることに加え、一部の機能は特定の部署のみにしかアクセスさせない、といったアクセス制御も可能です。
SAML認証の仕組みと流れ
ユーザー、SP、IdPからなる認証フロー
SAML認証ではユーザー・SP・IdPの三者間で認証情報をやり取りします。
- ユーザー:利用者
- SP(サービスプロバイダ):ログイン先となるクラウドなどのサービス
- IdP(Identity Provider):シングルサインオンのサービス提供者
SPは主にOffice 365やDropboxなどのクラウドサービスが該当し、IdPはユーザーとSPとの橋渡し役として実際にユーザーの認証を行なう役割を持つものです。IdPはクラウドサービスだけでなく、オンプレミス環境のWindowsの認証基盤であるActive Directoryとも連携できます。
SMAL認証はこの三者が相互に通信することでシングルサインオンを実現しています。
2パターンの認証の流れ
実際の認証の流れについては、SPとIdPの両者を起点として2パターンのフローが考えられます。
- SPを起点とするSP Initiatedの場合
- IdPを起点とするIdP Initiatedの場合
SAML認証を用いたシングルサインオン(SSO)のメリット
SAML認証を用いればシングルサインオンを実現でき、そのことで大きなメリットを得られます。また、シングルサインオンを実現する方式はSAML認証以外にも存在しますが、そのなかでもSAML認証が選ばれる理由をメリットと併せて見ていきましょう。
業務効率化とセキュリティ向上
シングルサインオンは一度のログインで複数のサービスへのログインが自動化されるため、ユーザーの利便性が向上するメリットがあります。
さらに、SAML認証を用いてシングルサインオンを実現すれば、ユーザー・管理者ともに煩雑なパスワード管理から解放され、セキュリティの向上も期待できるのです。
例えば、管理者側にとっては、ユーザーのパスワードロックやパスワード忘れによる対応など、業務負荷の軽減が見込めます。
また、ユーザー側にとっては、多くのサービスを利用する場合にありがちなパスワードの使い回しや、パスワードを覚えておくために紙や付箋にメモをとるなど、パスワード管理としては好ましくない状態を回避することも可能です。
多くのクラウドサービスに対応可能
複数のシングルサインオンを実現する方式のなかでもSAML認証が選ばれる理由の一つとして、多くのクラウドサービスがSAML認証に対応していることが挙げられます。
近年では新型コロナウイルスの感染拡大の影響もあり、テレワークが普及し社外で仕事をすることも多くなりました。テレワークに合わせてクラウドサービスを利用する機会も増え、シングルサインオンはより重要なものになっています。
このような状況下において、多くのクラウドサービスがSAML認証に対応していることは、自社でシングルサインオンを導入する際にSAML認証を選択するための大きなメリットになっているといえるでしょう。
さらに、社内システムとクラウドサービスのID統合管理においてIDaaS(複数のID管理を一元的に行うクラウドサービス)が注目されていますが、前述の通りSAML認証ではユーザー認証と併せてユーザー属性情報も同時にやり取りできるため、IDaaSと連携したクラウドサービスのアクセス権限の管理も可能です。
SAML認証とOAuthの違いは認証と認可
最後に、SAML認証と併せて聞くことの多い“OAuth”について触れます。OAuthはアプリケーションを連動させるためのAPIを活用し、複数のサービスでシングルサインオンが利用できる環境を作る技術です。
例えば、クラウドのアルバムサービスに写真を登録すると、自動的にTwitterで投稿するなどの使い方が考えられます。このとき、クラウドのアルバムサービスはTwitterのAPIを利用して投稿を行なっていますが、結果的にはクラウドのアルバムサービスにログインすることで、Twitterにもログインできている状態です。
このように、シングルサインオンを実現するという点ではSAML認証とOAuthは同じといえるでしょう。両者の違いを理解するためのポイントは“認証”と“認可”の違いです。
認証とはユーザーを証明するプロセスであり、認可はアクセスの権限を与えるプロセスです。
SAML認証は認証と認可を行ない、OAuthは原則認証を行なわずに認可のみとなります。OAuthではAPIを利用する際に認証が行なわれていない、という点がSAML認証との大きな違いなのです。
まとめ
SAML認証はインターネットドメイン間でユーザー認証を行なうための標準規格です。
SAML認証の認証フローを理解するためには、ユーザー・SP・IdPの三者の存在を理解することが重要です。加えて、認証フローもSPとIdPのそれぞれが起点となる2パターンが存在しています。
SAML認証を用いてシングルサインオンを実現すると、ユーザビリティの向上やセキュリティの強化などのメリットが得られます。
Discussion