SAMLとは ~SSO(シングルサインオン)認証の仕組みやフローから導入するメリットまで解説~
SAMLとは、Security Assertion Markup Languageの頭文字を取ったもので「サムル」と読み、SSO(シングルサインオン)やID連携などで利用される、マークアップ言語を中心とする認証情報の規格のことです。SSOを実現する仕組みの一つで、異なるインターネットドメインの間でユーザーの認証情報をやり取りする際に使われます。
業務に利用されるアプリケーションの数が増加するにつれて、ユーザーの利便性と情報セキュリティを両立する手法としてSSOに期待が集まるようになり、SAMLが用いられるようになりました。
本コラムでは、SAMLの認証の仕組みやフロー、SAML認証によるSSO(シングルサインオン)、その導入メリットなどについてご紹介いたします。
【関連記事】
シングルサインオン(SSO)のメリットとデメリットとは
イントラマートをすべて知れる資料はこちら
ローコード開発・業務プロセスのデジタル化で豊富な実績を持つintra-martが、お客様のビジネスにどのような効果をもたらすのか、製品コンセプト・特長・導入効果などをまとめています。
1.SAMLとは
SAMLは、Security Assertion Markup Languageの頭文字を取ったもので「サムル」と読みます。
SSO(シングルサインオン)やID連携などで利用される認証情報の規格で、XMLをベースとしたマークアップ言語を用いています。
セキュリティソフトメーカーだった米Netegrity社が発表した「S2ML」という規格と、認証ソリューションを手がけていた米Securant Technologies社が発表した「AuthXML」を統合して作られました。
一つのサーバで認証されたユーザー情報を、ほかのサーバと共有することでSSOを実現しています。
SSO(シングルサインオン)とは
SSO(シングルサインオン/Single Sign-On)とは、一度のログインで、利用したいサービスやシステムすべてにログインできる仕組みのことをいいます。
業務に利用するシステムやアプリケーションの数が増加すると、ユーザー一人ひとりがログインにかけなければならない手間や時間が増加し、パスワード管理も煩雑になります。その結果、推測されやすい危険なパスワードを設定してしまう人も出てきます。
この解消に役立つのがSSOです。SSOに期待が集まるにつれて、SAMLも頻繫に用いられるようになりました。
SSOについて詳しくは、下記の記事をご覧ください。
【関連記事】
シングルサインオン(SSO)のメリットとデメリットとは
SAMLとOAuthの違い
SAMLと同様に、SSOを実現するための仕組みに「OAuth」があります。 OAuth(オーオース)とは、あらかじめ認可サーバがクライアントアプリケーション側へアクセストークンを発行することで、認可を行う仕組みです。 SAMLではユーザーを識別(認証)しますが、OAuthでは行いません。
認可と認証の違い
上記をもう少し補足すると、SAMLで行うユーザーの識別を「認証」といい、OAuthでは「認証」は行わず、「認可」のみを行います。
「認可」とは、特定の条件下においてアクセス権限を与えることです。
整理すると、
・SAML:「認可」「認証」とも行う。
・OAuth:「認可」のみを行う。
ということになります。
2.SAML認証の仕組みとフロー
SAML認証の具体的な仕組みと流れは、下記の通りです。
SAML認証の仕組み
まず、ユーザーが使いたいサービス(サービスプロバイダ:SP)にアクセスすると、SPではユーザーが利用を許可されているアカウントかどうかを確認(認証リクエスト)します。
これを受けて、ユーザーは、SAML認証を提供するIdP(Identity Provider)に認証依頼を行い、入力したID/パスワードが正しいと判断されれば、認証トークンを発行してもらいます。
ユーザーは、IdPに発行してもらった認証トークンをSPに渡します。
すると、SPは認証トークンを確認して正規のユーザーであれば認証するという仕組みです。
SAML認証のフロー
SAML認証のフローには、起点がSPとなる場合とIdPとなる場合の2通りがあり、上記はSPを起点とした場合のフローです。
IdPを起点とした場合は、下記のようなフローになります。
IdPを起点とする場合
IdPを起点とした場合は、まず、ユーザーがIdPにアクセスして、認証依頼を行います。
ここで入力したID/パスワードが正しいものなら、認証トークンが発行されます。
次に、ユーザーは利用したいサービス(SP)にアクセスします。
すると、SPはIdPから発行された認証トークンを検証し、正規のユーザーであると判断されれば、認証します。
3.SAML以外のSSO(シングルサインオン)の仕組み
冒頭でもお伝えしたように、SAMLはSSOを実現する仕組みの一つです。
ほかに、SSOに用いられている仕組みとして、主に次の5つがあります。
フェデレーション方式
本コラムのテーマである「SAML」のほか、「SAMLとOAuthの違い」でご紹介した「OAuth」、ほかにも「OpenID Connect」といったSSOを実現するためのプロトコルを活用する仕組みです。
「SAML認証の仕組みとフロー」でご紹介したように、パスワードの代わりにトークンを受け渡すことでSSOを実現します。
なお、上記のうち「OAuth」は認可のみを行うため、OAuthの拡張規格である「OpenID Connect」と組み合わせることでSSOを実現します。
証明書認証方式
証明書認証とは、通信端末に設定されたクライアント証明書を使ってシングルサインオンを実現させる仕組みです。
具体的には、証明書で設定されているパスワードを入力することで認証します。
エージェント方式
Webサーバに認証用のエージェント(ソフトウェア)を組み込んでおき、クライアント端末とSSOサーバの間でやり取りを行って、ログイン状態およびアクセス権限をチェックした上で、認証の可否を返します。
リバースプロキシ方式
上記の「エージェント方式」と似た仕組みで、クライアント端末とWebサービスなどとの間に、リバースプロキシと呼ばれるサーバを介してアクセスします。
リバースプロキシがログイン状態およびアクセス権限をチェックした上で、認証の可否を返します。
代理認証方式
SSOの対象となるシステムやサービスの代わりにプロキシサーバがID/パスワードを送って認証する仕組みです。Webサービスでもクライアント端末とサーバ間でも利用できます。 導入も比較的簡単に行えます。
4.SAMLを使ったSSOを導入するメリット
SAMLを使ったSSOを導入することで、主に次の3点のメリットが得られます。
情報セキュリティの向上
SSOを導入することで、ユーザーには1組のID/パスワードのみを付与し、管理者側で各システムやサービスへアクセスするためのID/パスワードを管理することが可能です。ユーザーに複雑で長く、推測されにくい安全なIDやパスワードを付与できるようになります。
また、IDの発行から抹消までのIDライフサイクル管理がしやすくなるため、利用されていないID/パスワードを放置して悪用されるリスクを下げることができます。
ユーザーの利便性の向上
SSOを導入すると、それまでは、ユーザーが複数のシステムやサービスすべてにログインしなければならなかったのが、1度のログイン作業だけですべてにアクセスできるようになり、利便性が向上します。
管理しなければならないID/パスワードも1つで済むため、負担が軽減されます。
SSOに対応していないサービスがあれば、一部(もしくは大部分)を1度のログインで済ませられても、残りのシステムやサービスにログインする手間は省くことができません。
しかし、SAMLを活用したSSOは対応サービスが多いため、その点でもユーザーの利便性の向上に貢献します。
アクセスの一元管理が可能
SSOを実現できると、ユーザーのすべてのシステムやサービスへのアクセスを管理者側で一元管理できるようになります。
ユーザーごとのほか、ユーザーグループごとにアクセス権限を管理でき、アクセスログからどのユーザーがいつどのシステムにアクセスしたかを把握することが可能です。
一元管理できるようになることで、管理のためにかかる工数を削減でき、情報セキュリティ対策を立てやすくなります。
5.まとめ
SAMLとはシングルサインオン(SSO)を実現する仕組みの一つで、異なるインターネットドメインの間でユーザーの認証情報をやり取りすることが可能です。
SSOを実現する仕組みはほかにも、証明書認証方式やエージェント方式、リバースプロキシ方式などがあります。
SSOのメリットとして、情報セキュリティの向上やアクセスの一元管理などが挙げられますが、特に情報セキュリティの向上においては、ほかの認証方式よりも対応サービスの多いSAMLに軍配が上がります。
これから、SSOを導入しようと検討されている企業様は、ぜひSAMLにご注目ください。
Concept Book
ローコード開発・業務プロセスのデジタル化で豊富な実績を持つintra-martが、お客様のビジネスにどのような効果をもたらすのか、特長や導入効果など製品コンセプトを詳しくご紹介しています。
お困りごとがありましたら、お気軽にご相談頂ければと思います。