企業の情報システム部門で勤務されている方や、IT業界で勤務されている方の多くは「シングルサインオン」という言葉を聞いたことがあると思います。
しかし、それ以外の方にとっては「何となく意味は分かるが、正確な意味は分からない」単語ではないでしょうか。以下では、シングルサインオン (SSO) について、改めてご説明いたします。
シングル + サインオン = シングルサインオン
「シングルサインオン」は、「シングル (single)」と「サインオン (sign-on)」の2つの単語・フレーズが合わさった造語です。
「シングル」はここでは「1度の」「1回の」という意味で用いられています。
次に、「サインオン」という言葉ですが、本来は「テレビ局やラジオ局で、その日の放送開始の合図をする(無音の映像や局名告知を行う)」という意味です。
現在でも、英語圏の放送業界では「サインオン = 放送開始の合図」「サインオフ = 放送終了の合図」として用いられています。「開始するときの合図」という意味が転じて、「システム利用開始時の認証」という意味合いとしても用いられています。
この2つの語が合わさることで、「1度システム利用開始の認証を行うと、複数のシステムを利用開始する際に、都度認証を行う必要がないこと」、または「1度のシステム認証で複数システムに同時に認証できるようにする製品・システム・ツール」を意味するようになりました。
なお、「サインオン」という語を情報システムの文脈で利用する場合、「ログイン (login)」「ログオン (logon)」「サインイン (sign-in)」という言葉も全く同じ意味で利用されます。しかし、語の頭に「シングル」がついて利用されるのは「シングルサインオン」のみで、「シングルログイン」「シングルログオン」「シングルサインイン」という言葉はありません。
シングルサインオンの種類・技術
時代と供に、利用されるシングルサインオンの技術も変化しています。ここでは、現在も利用されているシングルサインオンの種類・技術、そして製品に用いられている手法をご紹介します。
1.Kerberos認証
Kerberos認証は、ギリシャ神話の「3つの頭を持つ冥界の番犬」である「ケルベロス」からその名が取られています。最初のサインオン時には、ユーザーのID・パスワード情報の入力を行うと、チケットを取得します。その後、他のシステム・サービスを認証する場合にこのチケットを利用して認証を行うのがケルベロス認証の特徴です。
ID・パスワード自体をやり取りするのでなく、有効期限が設定されたチケットを暗号化された通信上でやりとりをすることで高い安全性が確保されています。
2.Windows統合認証
Windows 2000以後のWindows OSに導入された認証で、Kerberos認証やマイクロソフト独自の認証方式を組み合わせたものの総称となります。Windows統合認証は、Windows Serverのウェブサービス機能である IIS (Internet Information Services)、ディレクトリ機能であるActive Directoryの認証などとして提供されています。
3.SAML (Security Assertion Markup Language) 認証
ユーザーエージェント(ブラウザ)、IDサービスプロバイダ(シングルサインオンサービス)とサービスプロバイダ(クラウドサービス等サインオン先のサービス)の間で、認証情報を交換するXMLベースの認証方式です。主にクラウドサービスのシングルサインオンに利用されています。
例として、当社シングルサインオンサービス「トラスト・ログイン」を利用した際に、SAMLを用いた認証の流れをご紹介します。
ユーザー(クライアント)とサーバーの2者間の認証であるKerberos認証に対し、SAML認証は3者間の認証となっています。そして、SAML認証においては、ID・パスワード情報はユーザーとシングルサインオンサービスの間でのみやり取りを行います。ユーザーとクラウドサービスの間、またシングルサインオンサービスとクラウドサービスの間では、「SAMLリクエスト」と「リクエストに対する回答」のみを行い、ID・パスワード情報のやり取りを行いません。
・参考記事
トラスト・ログイン用語集 SAML
4.スマートカードベースの認証
初回のシングルサインオン時に、スマートカードのパスワードを入力し認証を行う方式です。一度サインオンを行った後、他のアプリケーションの認証時にはパスワード入力が不要となります。スマートカードベースのシングルサインオンでは、クライアント証明書かパスワードをスマートカード自体に保存し、利用できます。
5.エージェント型
「エージェント方式」ともとも呼ばれます。HTTPで用いられるcookie (クッキー)を利用した方式です。まず、Webアプリケーションのサーバーに、ユーザーの代理人(エージェント)となるアプリを入れます。そして、このアプリがシングルサインオンサーバーに認証情報を確認し、認証できたらcookieを発行する、という流れです。
初回のログイン時には、シングルサインオンサーバーに認証情報を確認しに行きますが、二度目以降のログインでは、Webアプリケーションのサーバー側で既にcookieを持っているため、cookieの所有者のみを確認しにいく、という動作を行います。
6.リバースプロキシ型
「リバースプロキシ方式」とも呼ばれます。リバースプロキシ型は、シングルサインオン対象となるサーバーに対するアクセス時に、必ずリバースプロキシサーバーを経由します。初回のアクセス時に、IDとパスワードを入力すると、シングルサインオンを管理するサーバーがcookieを発行し、リバースプロキシに送ります。
2回目以降の認証の際にリバースプロキシサーバーは、既に持っているcookieにあるID情報だけを、シングルサインオンを行うサーバーに送ります。リバースプロキシとシングルサインオン先のサーバーはあらかじめ連携しているため、再度パスワードを入れずともログインできます。
シングルサインオンの範囲と方法
かつてシングルサインオンは、「企業の社内ネットワークの中」でのみ行われるものでした。個人がたくさんのパスワードを持つことが稀であったこと、また、企業が利用するシステムは基本的に全て社内ネットワークの中にあったことがその理由です。
最も普及したシングルサインオンの仕組みの1つに、マイクロソフトが提供する「Active Directory (AD)」があります。
これは、Windows Serverの機能の1つである「ディレクトリ機能」ですが、これを用いて「Windowsパソコンにログインする際の認証」を一度行っておけば、ADに対応した社内システムへのログインは以降不要となる仕組みでした。ADに対応したサーバー製品を利用しなければならない、という制約はあったものの、その利便性の高さからADによるシングルサインオンは大企業を中心に普及しました。
次に登場したのが、フェデレーションの概念です。
信頼関係を結んだ組織同士であれば、新たに認証を要求しないというものです。例えば、親会社の社員が、信頼関係を結んだ子会社のシステムに対して、新たにパスワードを入力せずにログインできる、という仕組みです。ここでは、社内ネットワークを超えてのやり取りとなる点も画期的でした。ADの機能として提供されたADFS (Active Directory Federation Service)が最も有名なフェデレーションサービスです。
しかし、クラウドからのサービス利用 (SaaS) の登場と普及が、シングルサインオンにも大きく影響します。
クラウドは、社内ネットワークにもない、信頼関係も結んでいない、インターネット上にあるサーバーからサービスを利用する仕組みです。ここでは、社内ネットワークを前提としてADも、信頼関係を前提としてフェデレーションも機能しません。しかし、クラウド経由でサービスを利用するほうが、社内で独自システムを開発するよりも圧倒的に早く安価であることから、クラウドが普及します。
次に起こった問題は、「クラウド上でどのようにシングルサインオンを実現できるのか」という問題です。これを解決すべく、クラウドサービスに対してシングルサインオンを行う「IDaaS (Identity as a Service)」が登場します。
IDaaS提供企業は、自社が管理するサーバー上に顧客企業が各種クラウドにログインする際に使うID、パスワードなどの認証情報を保管します。顧客は、一度IDaaSにログインしてしまえば、以後は各種クラウドに対してシングルサインオンができるという仕組みです。利便性とセキュリティを両方満たすため、現在急速に普及が進んでいます。
なお、多くのIDaaSはADと連携可能です。これにより、ADとIDaaSは排他的な関係ではなく、お互い連携しあって社内と社外(クラウド)へのシングルサインオンを提供できるようになっています。
シングルサインオンのメリット
企業がシングルサインオンを利用するメリットは、以下の通りとなります。
- 複数のシステムを利用する際に、都度パスワードを入力する手間を省略できる。
- 複数のシステムを同じパスワードで利用する「パスワードの使い回し」を防止できる。
- システム利用者のパスワード忘れ、パスワード入力ミスによるアカウントロック、パスワード再発行といった手間を削減できる。
- システム利用者のパスワード関連の問題に対応するための人員(情報システム部のヘルプデスクなど)、コストを削減できる。
- (SAMLなどを用いることで)第三者にパスワード情報を渡すことなく、第三者のシステムへのサインオンが可能となる。このため、パスワード漏洩リスクを低減することにつながる。
突き詰めると、シングルサインオンの価値は「手間・コストの削減」ならび「セキュリティの向上」の2点となります。
現在、手間・コストの削減と、セキュリティの向上を両立させる方法として、利用が進んでいるのがSAMLです。現在、多くのIDaaSがSAML対応を進めていますが、その理由は「認証情報はやり取りするが、パスワードはやり取りしない」というSAMLの設計のため、安全性が高められるためです。
現時点で大手企業が提供するクラウドサービスは、ほぼSAML対応が完了していますが、SAMLに対応していないクラウドサービスは多数あります。この場合は、IDaaS側の仕組みでセキュリティの高いシングルサインオンを行うのが一般的です。例えば、IDaaS認証時に二要素認証を用いる、利用できるIPアドレスを制限する、デバイスに証明書のインストールを求めるなどです。特に二要素認証は、自動化された攻撃をほぼ防ぐことが可能であるため、特に注目されています。
シングルサインオンのデメリット
次に、シングルサインオンのデメリットについて理解しておきましょう。
- シングルサインオン製品自体に不正アクセスされると、シングルサインオン製品の先にあるシステム・サービス全てに不正アクセスできてしまう。
- 製品によって費用が高額となる。特に従業員数が多い企業にとっては、年間億単位の負担が求められる場合がある。
- リバースプロキシ型のように、一点にアクセスが集中する方式の場合は、シングルサインオンの認証速度に遅延がみられる場合がある。
まず、技術的なデメリットについてですが、シングルサインオン製品自体の認証が破られると、紐づく全てのシステムにアクセスし放題となってしまうという点です。この批判はかなり昔からなされていますが、「他の認証と併用することでシングルサインオンへのセキュリティを高める」ことでほぼ解決されていると言えます。具体的には、二要素認証の利用です。
例えば、「クライアント認証書を端末に入れ、シングルサインオン利用時には認証書の確認を行う」「シングルサインオン利用時に利用可能なIPアドレスを制限する」「シングルサインオンのパスワードを入力後に、ワンタイムパスワードの入力も合わせて求められる」「パスワードと生体認証を併用する」といったものです。仮にパスワードが破られても、他の認証が同時に破られない限りは、不正アクセスを防止できます。実際、2019年8月にマイクロソフトは、「多要素認証を利用することで、自動化された攻撃の99.9%を防ぐことができる」という調査レポートを発表しており、多要素認証の強度の高さを裏付けた形になっています。
また、費用が高額であるという点ですが、多くのシングルサインオン製品は「従業員(ユーザー)1人あたり月額費用いくら」という従量制の課金形態をとっているためです。たとえ月額4ドルのサービスであっても、従業員が1万人いると48万ドル (5457万円)、2万人いると1億円を超える年額費用が必要となります。導入ユーザー数のスケールメリットを生かせずに、ユーザー数が多ければ多いほどコストが正比例で増大していく点が「コストが高い」と言われる理由です。
年間費用を抑えるには、「必要な従業員だけ利用させる」「必要なプランだけを選択する」「必要なオプションだけを追加する」「機能で比較して安価な製品を選択する」といった方法があります。必要な機能だけ選んで利用することで、コストを抑えられる当社のシングルサインオン製品「トラスト・ログイン」を利用するのもよいでしょう。
最後に、認証の速度についてですが、リバースプロキシ型でその仕組み上、アクセス集中時の速度に弱点がありますが、他の方式では、よほど大多数のユーザーが一気にアクセスしない限り、認証速度で問題が生じることは少ないと思われます。
シングルサインオンの将来
クラウドやスマートフォン、BYOD(個人端末の業務利用)が普及し、企業・組織の機密情報が外部に保管されることが増加したため、認証先(クラウドサービスなど)と認証を行う端末(企業PC、個人PC、企業スマホ、個人スマホなど)が増加しています。これにより、認証が求められる場面が急増したため、シングルサインオンの必要性は高まっています。そして、シングルサインオンに求められるセキュリティも高まっていると言えます。
また、2020年の新型コロナウイルスの広がりにより、自宅からの勤務とその環境整備が重要な課題となっています。利用するネットワークに問わずに安全性と利便性を両立させるという課題です。
今後、シングルサインオンは2つの方向性があると言えます。
1.パスワードを利用する多要素認証
1つは、「シングルサインオン時に複数の認証要素を用いてセキュリティを高める」という方向性です。一般的に「二要素認証」「多要素認証」と呼ばれていますが、パスワード認証に加えて、クライアント証明書、ワンタイムパスワード(OTP)、スマートフォンアプリによる認証(Authenticator認証含む)、指紋や静脈などの生体認証を併用することで、シングルサインオン時のセキュリティを高めるというものです。
多要素認証では、以下の3つの認証要素があります。
- 生体要素
- 指紋、顔、静脈、声など本人の肉体を認証に利用する
- 知識要素
- パスワード、誕生日、秘密の質問など本人のみが知っている情報を認証に利用する
- 所持情報
- ICカード、Authenticatorの数列、物理トークンなど、物理的またはソフトウェア的に所持しているデバイス上にある情報を認証に利用する
シングルサインオン時に、パスワードのみを用いた場合、認証要素は1つとなりますが、これに別な要素を加えると認証要素は2つ、または3つとなり、セキュリティを高めることができます。
例えば、パスワード認証(知識要素)と、指紋認証(生体情報)を組み合わせる、パスワード認証(知識要素)とクライアント証明書(所持要素)を組み合わせる、といった具合です。
なお、パスワードを利用する多要素認証シングルサインオンは、当社シングルサインオンサービス「トラスト・ログイン」を含め、現在既に多くのシングルサインオンサービスで導入されています。
2.パスワードを利用しない多要素認証
もう1つは、パスワードを利用しない認証です。現在、アメリカの大手IT企業やITベンチャーを中心に「脱パスワード」の動きが出始めています。
アメリカのIT大手、マイクロソフトでは2018年5月に「Building a world without passwords (パスワードのない世界を作る)[英文ブログ]」というセキュリティブログを投稿しています。
このブログでは、パスワードの長所は「どの端末でも使える」「(記憶だけすればよいので)持ち運べる」「簡単に導入展開できる」としたうえで、「安全でない」「不便」「(安全対策なども含めると)高価」であるとしています。
引用元: Microsoft Secure:: Building a world without passwords [英文]
そのうえで、パスワードを利用しない認証(Windows Helloのような顔認証、Microsoft Authenticatorアプリ、生体認証デバイスの利用)のみを使う、という選択肢を提供しています。
なお、パスワードのない世界が既に実現されているのがスマートフォンです。スマートフォンのロックを解除は、かつては4桁の数字 (PIN) を入力するのが一般的でした。しかし、デバイスの進化により、現在では多くの人は指紋認証や顔認証、Androidのパターン認証(表示される9つの点を指でなぞる)を利用し、都度パスワードを入力する人は急減しています。
こうした脱パスワードの流れはシングルサインオンにも及んでおり、パスワード以外の認証方式を併用することでシングルサインオンを行うサービスを提供するベンチャー企業も登場しています。
・参考記事
パスワードが不要な時代がやって来る?
この流れを促進させているのはFIDOです。FIDOとは、Fast IDentity Onlineの略で、オンラインサービスにアクセスする際に、パスワードを使わずに認証を行う規格を策定する組織です。2019年9月現在注目を集めているのが、FIDO2という規格で、既にヤフージャパンなどが対応をはじめています。
・参考記事
「FIDO2」とは何かを正しく理解する [オンラインサービス担当者必読]
このように、現在のIT企業の動向を見ると長期的には、パスワードを利用しないシングルサインオンサービスが一般的になる可能性が高いと思われます。しかし、短期的・中期的にに見ると、パスワードを利用しないシングルサインオンサービスは、対応しているサービスがまだ少ないため、シングルサインオンからパスワードを根絶されるのは当面先になるでしょう。
今後、シングルサインオンの導入を検討する場合は、「パスワードは当面なくならない」という前提に立ったうえで、セキュリティと利便性を両立させる方法を検討すべきです。