ビジネス課題への解決策(アイディア)と、新たな発想(+α)が見つかるIT情報メディア

Menu
  1. TOP
  2. システム運用
  3. シングルサインオン(SSO)に必要なSAMLとは?

シングルサインオン(SSO)に必要なSAMLとは?

  • LINEで送る
  • このエントリーをはてなブックマークに追加

今回は、シングルサインオン(SSO)の仕組みの一つ、SAMLについて詳しく説明します。
難しい専門用語をわかりやすく言い換えて説明しますので、SAMLとはどのような仕組みなのかイメージしていただけると幸いです。

そもそもシングルサインオン(SSO)とは?

はじめに、そもそもシングルサインオン(SSO)とは何かを説明します。

シングルサインオン(SSO)とは、一度のログインで複数のWebサービスやアプリケーションに対しログインできる仕組みです。
複数のWebサービスやアプリケーションにログイン済みとなるので、それらを利用するたびにIDやパスワードを入力する必要がなくなります。
シングルサインオンはよく「SSO(エスエスオー)」という略称で呼ばれることもあります。

【関連記事】シングルサインオン(SSO)とは?を解説している記事もおすすめです

SAMLとは

SAML(Security Assertion Markup Language)とは、シングルサインオン(SSO)を実現するために用いられる通信プロトコルの一つで、異なるインターネットドメイン間でユーザーの認証情報を行うためのマークアップ言語です。SAMLの読み方は「サムル」または「サムエル」と読まれます。
SAMLでは、利用するサービスに対し直接ID・パスワードを渡すのではなく、認証情報として各サービスへユーザーの情報を渡します。

そのためパスワードの直接的なやり取りが行われずとても安全な方法だと言われています。

近年、企業によるクラウドサービスの活用が増加したこともあり、シングルサインオン(SSO)の需要が高まりました。それに伴いSAMLの必要性も高まっています。

SAMLの仕組みについて

SAMLでは認証情報を提供する側を「IdP(Identity Provider)」と呼び、認証情報を利用する側(一般的にアプリケーションやサービス側)を「SP(Service Provider)」と呼びます。
SAMLによる認証フローがどのようになっているのかを簡単にご紹介します。

技術用語を用いて説明すると、以下のフロー図のようになります。

前提条件として、予めSPとIdPの間で信頼関係を築いておきます。これは、SPの設定画面から秘密鍵などの登録により実施する場合が多いです。

1.アクセス要求

まず利用者(ユーザー)は使いたいサービス(SP)に対してアクセスします。

2.認証リクエスト

アクセスしてきた利用者(ユーザー)がサービス(SP)の利用を許可されているかどうか、アカウントがあるかどうかを確認します。

3.認証依頼

ユーザーはサービス(SP)を利用するために、認証が必要です。認証の証明書である認証トークンをIdPに発行してもらいます。
このときまだログインしていない(シングルサインサービスに対してまだID・パスワードの入力をしていない)場合は、ここでID・パスワードや、設定によっては多要素認証などを求められるので必要に応じて入力します。

4.認証トークン

ID・パスワードなどが適切に入力された場合は、ユーザーに「認証トークン」という証を渡します。

5.認証トークン

IdPからもらった「認証トークン」をSPに渡します。

6.サービス提供

SPはユーザーから受け取った「認証トークン」を確認し、正規のユーザーであることをチェックします。
チェックし、正規のユーザーであると認証した後、ユーザーは各サービス(SP)が利用できるようになります。

しかし、これだけ読んですぐ理解できるものではないと思います。なので、すこし言い換えて理解しやすいようにご紹介させていただきます。

先程の図の一部を簡単な言葉に言い換えた図になります。

まず、あらかじめSPとIdPは親友同士になっておく必要があります。

1.使いたい!

ユーザーはSPに対して、「ねぇねぇ、あなた(SP)のサービス使わせて」と問い合わせします。

2.知らない人には使わせない

SPは知らない人にはサービスを使わせたくありません。なので、「知らない人には私(SP)のサービス使わせないわ」と返答します。

3.私たちの仲を証明してほしい

SPからサービスを使わせてもらえなかったユーザーは困りました。
なので、SPの親友であるIdPに「SPにサービス使わせてもらえなかったんだけど、私(ユーザー)とあなた(IdP)が友達だってことを証明してほしいの。親友のIdPが私(ユーザー)を信頼できる友達って認めてくれたらSPもサービス使わせてくれるはずだから。」とお願いしました。

4.ユーザーとIdPが友達ということの証明書を発行

するとIdPはユーザーが本当に信頼のおける友達かどうかチェックします(ID・パスワードなどの認証情報の入力をチェック)。チェックに合格するとユーザーとIdPが友達ということの証明書をもらうことができます。

5.友達証明書を提示

ユーザーはIdPからもらった友達証明書を持って再度SPに対して「ねぇねぇ、あなた(SP)のサービス使わせて。ちなみに私(ユーザー)はあなた(SP)の親友のIdPと友達なんだ!友達証明書もあるよ!」と問い合わせます。

6.知り合いなら使ってもOK

するとSPは「IdPの知り合いなら信頼できるから、私(SP)のサービス使っていいよ!」となり、ユーザーはサービスを利用することができるのです。

SAML以外のシングルサインオン(SSO)の手法

本記事で説明したSAML以外にも、シングルサインオン(SSO)の手法はいくつか存在します。有名なものを抜粋して、3つ紹介します。

代行認証方式(代行ログイン方式)

ユーザーの代わりにエージェントがID・パスワードなどを打ち込む方式です。SAMLなどシングルサインオン(SSO)の業界標準に対応していないサービスに対してシングルサインオンする場合にはよく用いられる方式です。

リバースプロキシ方式

ユーザーとサービスの間に中継サーバーを用意し、その中継サーバー上で認証を管理することでシングルサインオン(SSO)を実現する方式です。
サービス(SP)に対するアクセスのすべてが中継サーバーを経由することになります。なので、通信量の負荷などネットワーク設計を考慮する必要があります。ただ、既存のサービス(SP)に対して大きな改修が必要ないというメリットがあります。

OpenID Connect

SAMLと同じく認証プロトコルの一種で、OAuthを拡張した規格です。
今回、SAMLとOpenID Connectの違いについて詳しく記述するのは長くなってしまうので控えますが、簡単に説明するとSAMLとOpenID Connectが発展した経緯や元となる考え方の違いから対応しているサービスも異なっています。
どちらが優れていてどちらが劣っているというのではないので、利用シーンに応じてどちらを採用するのか決めるのがいいでしょう。

最後に:本当のシングルサインオン(SSO)を実現するには

今回は、シングルサインオン(SSO)方式の一つ、SAMLについて詳しくご紹介しました。シングルサインオン(SSO)の手法はさまざまあり、それぞれにメリット・デメリットがあります。連携するSPやIdP、必要とする要件などを理解しどの方式でシングルサインオン(SSO)を実現することが大切です。また、シングルサインオンのサービスを選定する際には、さまざまな手法に柔軟に対応しているサービスを選ぶことがおすすめです。そうすることで、多くのSPやIdPと連携することができ導入後の拡張性はもちろんですが、「シングルサインオンサービスを導入したけど一部のサービスは連携できなくて本当のシングルサインオンはできなかった」という事態を避けることができます。

今回の記事がシングルサインオン(SSO)導入の参考になれば幸いです。

>> Digital Workforceはさまざまな社内システムに対応したシングルサインオン(SSO)が可能です

関連記事

 

クラウドと社内システムをシームレスにつなぎテレワークを推進
「Digital Workforce」

Digital Workforce

「Digital Workforce」は、働き方改革のプラットフォームとして従業員やIT部門の皆様の生産性・セキュリティを向上する機能を取り揃えたサービスです。
「ポータル」「認証/SSO」「ID管理」「API管理」「セキュアブラウザ」の5つの機能を組み合わせ、安全で快適なテレワーク体制を提供します。

>> 「Digital Workforce」の詳細はこちら

海蔵航太

執筆者情報:

海蔵 航太(かいぞう こうた)

株式会社ユニリタ
クラウドサービス事業本部
ITマネジメントイノベーション部
プロモーションフォースグループ

働き方改革基盤「Digital Workforce」のプロモーション活動を担当しています。
要件定義や設計などの上流工程から、コーディングやテストなどの下流工程まで幅広く経験してきました。
お客様の課題を解決できるご提案ができるよう、尽力いたします。

メールマガジンの登録はこちらから
メルマガ登録 お問い合わせ