「SSO(シングルサインオン)はどんな仕組みで認証を行うのか」
そのような悩みをお持ちの方に、当記事ではSSOの仕組みを詳しく解説します。SSOは認証・認可の前提にもとづき、さまざまな方式で実現されています。基本的にはユーザーが第三者機関から認証を受けた際に認証済みデータを取得し、そのデータを使えば認証済みとしてサービスにアクセスできる仕組みです。
当記事ではSSOのメリット、デメリットやセキュリティ対策も含めて解説しています。
シングルサインオン(SSO)とは
シングルサインオンとは、ログイン操作を1度するだけで、複数のITサービスのログイン操作を省略可能にする仕組みです。“SSO”という略称が使われる場合もあります。通常、ユーザーは利用するサービスごとにその都度IDやパスワードなどを入力してログイン操作をしなければなりません。例えば、Googleが提供するGmailなどを利用する場面では、ログインするたびにメールアドレスやパスワードの入力が欠かせません。しかしSSOを活用すれば、こうしたログインプロセスを簡素化し、ワークフローを合理化することが可能です。
SSOには主に「エージェント方式」「代理認証方式」「リバースプロキシ方式」「フェデレーション方式」などの仕組みがあります。この中でも現在主流になっているのはフェデレーション方式で、ここにはSAMLという技術が使われています。
SAMLとは”Security Assertion Markup Language”の略で、異なるドメイン間・Webサービス間でSSOを可能にする技術です。クラウドサービスを利用する企業が増えている現在、フェデレーション方式(SAML)の採用が広がっているのは当然の流れといえるでしょう。例えば、Microsoft社のMicrosoft 365もフェデレーション方式に対応しています。
SSOの前提知識となる認証・認可
認証とは、アクセス元のユーザーやシステムが本当に正しいかを証明する仕組みです。認可はユーザーができる権限を定義する仕組みになります。
SSOは認証・認可の仕組みが前提です。人間の世界で例を挙げると以下になります。
- 認証:「あなたは誰ですか」という質問に対して、名前を伝え公的機関の身分証明書を見せる
- 認可:運転免許証に「あなたは普通自動車と原付バイクのみ運転できます。それ以外は運転できません」と書かれており、その人が行ってよいことを確認する
上記のように認証は「誰なのか」を信頼性が高い第三者機関が証明することです。認可は「何をしてよいのか」を定義しています。SSOは認証・認可の仕組みにもとづいて実現される技術です。
SSOを実現する仕組み
SSOを実現する仕組みとして以下があります。
- ケルベロス認証方式
- フェデレーション方式
- 代理認証方式
- リバースプロキシ方式
- エージェント方式
ケルベロス認証方式
ケルベロス認証は、同一ドメイン内で安全な認証を実現する方式です。ケルベロス認証はkerberosプロトコルを用いており、認証サーバ、チケット発行サーバによって認証が行われます。
仕組みは以下のとおりです。
- ユーザーがサービスにアクセスする
- ユーザーがユーザーIDやパスワードを用いて認証を行う
- 認証サーバがデータベースを参照して正しい情報であることを確認する
- 認証サーバがチケット発行サーバにアクセスしてチケットを発行し、ユーザーの渡す
その後、ユーザーはチケットの有効期間内であれば、チケットを持つ限り認証なしでサービスにアクセスできる仕組みです。ケルベロス認証は主にWindowsのActive Directoryに利用されています。
フェデレーション方式
フェデレーション方式は異なる組織やドメインで認証、認可を行いSSOを実現する方式です。代表的なプロトコルとしてSAML(Security Assertion Markup Language)やOIDC(OpenID Connect)があり、IdP(Identity Provider)によって認証、認可が行われます。
仕組みは以下のとおりです。
- ユーザーがIdPにアクセスし、IDやパスワード、生体認証で本人確認を行う
- IdPが内容を確認し、正しければトークン(またはアサーション)を発行する
- ユーザーはSP(Service Provider)にトークンを渡すことでログインできる
その後、ユーザーはトークンが有効な限り、認証を求められずにアクセスが可能です。SPがフェデレーション方式に対応していれば、そのサービスではSSOを実現できます。
ケルベロス認証は同一ドメイン内で有効な仕組みである一方で、フェデレーション方式は異なるドメインやサービスでも利用可能な違いがあります。
代理認証方式
代理認証方式は、ユーザーの代わりに別のシステムが認証を行う方式です。Basic認証と組み合わされるケースが多くあります。
Basic認証方式は、IDやパスワードなどの認証情報をHTTPヘッダに追加することで認証を行う方式です。HTTP通信の際、ヘッダに付加情報を追加できますが、付加情報として認証情報を追加することで認証を実現します。
Basic認証は実装が簡単なため、利用しやすいメリットがあります。一方で認証情報の暗号化が不十分になるケースが多く、セキュリティ面の弱さがデメリットです。そこで代理認証方式とBasic認証を組み合わせることで、デメリットを補強します。
システムを介して代理認証を行えば、ユーザーが直接サービスと通信をする際に認証情報を渡さずに済むため、セキュリティの向上が可能です。
リバースプロキシ方式
リバースプロキシ方式は代理認証方式のうち、プロキシによる代理認証を行う仕組みです。
リバースプロキシ方式は以下の仕組みで代理認証を行います。
- ユーザーがプロキシに認証情報を送信
- プロキシが認証を行う(代理認証)
- プロキシがサービスからアクセス権を付与される
- プロキシがアクセス権をユーザーに返す
その後ユーザーはアクセス権を用いてSSOによる認証、認可を実現可能です。
リバースプロキシ方式は先述の通り、Basic認証よりもセキュリティ強化を実現できるメリットがあります。一方でユーザーが増えるとプロキシにアクセスが集中するため、パフォーマンス低下や障害時の単一障害点となることがデメリットです。
エージェント方式
エージェント方式は代理認証方式のうち、デバイスに保存されているエージェント(専用ソフトウェア)がユーザーの代わりに認証を行う仕組みです。
- ユーザーはあらかじめエージェントによる認証を行う
- ユーザーがサービスアクセスし、エージェントが認証を行う
- エージェントがアクセス権を付与される
- エージェントがアクセス権をユーザーに返す
リバースプロキシと同様の仕組みでSSOを実現します。
エージェント方式は、リバースプロキシと比較するとネットワーク依存が低く、アクセス集中などの心配もありません。しかし、導入の手間がかかり、1台ずつエージェントをインストールする必要があります。よって、管理やスケーラビリティが難しい点がデメリットです。
シングルサインオン(SSO)を使用するメリット
続いては、SSOを活用することで得られるメリットをより具体的に掘り下げていきます。
- 利便性が向上する
- パスワード漏えいのリスクが減少する
利便性が向上する
SSOのメリットその1は、ユーザーの利便性向上です。先述したように、基本的にユーザーはサービスの利用時にその都度ログイン操作することが必要です。この手間は当然、利用するサービスが多くなるほど大きくなり、パスワード管理も煩雑になっていきます。
もしかしたら、いくつもの複雑なパスワードを覚えきれず、ログインするたびにパスワードを書いたメモを取り出している人もいるのではないでしょうか。この点、SSOを活用すれば、ログインする手間やシステムごとにパスワードを管理する手間を省き、快適に業務を行えます。ユーザーはサービスのアクセスごとにパスワードを入力することがなくなり、業務スピードの向上が期待できるでしょう。
またユーザーだけでなく、IT管理部門にとってもメリットがあります。パスワード管理が簡略化されたことで、ユーザーがパスワードを忘れる可能性が減り、管理部門がパスワード初期化などの対応に追われることが減るためです。
パスワード漏えいのリスクが減少する
SSOのメリットその2は、パスワード漏えいのリスクが減ることです。複数のサービスを利用していると、いくつものパスワードを覚えきれずに、パスワードを使いまわしたり、デスクにパスワードを書いたメモを貼ったりと、パスワード管理が不適切になりがちです。
こうしたパスワード管理の仕方がセキュリティの穴になりえるのは言うまでもありません。しかし、SSOを活用すれば、普段利用するパスワードは1種類だけで済むので、こうしたリスクを減らせます。
パスワードが1種類で済めば、文字数が長い、文字の種類が多いなど強力なパスワードを設定しても忘れにくいです。また管理部門としてもパスワードポリシーを強化できるため、不正アクセスのリスクを低減できます。
SSOによって簡単なパスワードを減らし、ユーザーが強力なパスワードを設定してもスムーズに業務を進められる業務環境を実現しましょう。
シングルサインオン(SSO)を使用するデメリット
上記のようなメリットがある一方で、SSOにはデメリットも存在します。SSOを導入・運用する上では、以下の点に注意しなければなりません。
具体的には以下のデメリットです。
- パスワード漏えい時に被害が大きくなる
- システム停止時にログインができない
- 導入コストが必要になる
パスワード漏えい時に被害が大きくなる
SSOのデメリットその1は、パスワード漏えい時の被害リスクが大きくなることです。SSOは1つのパスワードで多くのシステムにログインできる仕組みなので、このSSO自体のパスワードが漏えいしてしまえば、そこに連動している全てのサービスのパスワードが漏えいしたのと同様のことになってしまい、大きな被害が懸念されます。
対策としてSSO時には多要素認証を導入し、パスワードのみの認証を避けましょう。多要素認証であれば、パスワードが漏えいしても被害を防げる可能性が高いです。指紋認証や顔認証など生体認証を組み合わせた多要素認証でなりすまし被害を避けましょう。
システム停止時にログインができない
SSOのデメリットその2は、もしSSOの認証システムが停止してしまった場合、SSOに紐づけられている一切のサービスにログインできなくなってしまうことです。これによって業務を開始できず、事業に大きな悪影響が出る可能性があります。SSO導入後、依存度が高くなってしまうことがデメリットです。
対策として、SSOを実現するシステムの冗長化や、SSO以外による認証のバックアップ体制を整備しておく必要があります。SSOができなくなるリスクを下げる、あるいはSSOの依存度を下げる対策を実施しましょう。
導入コストが必要になる
SSOの導入にはコストが必要です。導入するシステムがオンプレミスか、クラウドサービスかでコストは大きく異なります。
初期費用を抑えたい場合は、Microsoft Entra IDなどクラウドサービスを利用すべきです。一方で、初期費用を抑えることよりも、業務の機密性維持やインターネットを介さないことを重視したい場合は、オンプレミスでSSOシステムを構築することになります。
オンプレミスでのSSOシステム構築には技術的にも高いレベルが求められるので、クラウドサービスを利用する選択肢がおすすめです。
セキュリティと利便性を両立するには
上記のように、SSOはユーザーの利便性を大きく向上させる一方で、万一の際のセキュリティリスクの大きさが懸念されます。そのため、SSOを導入する際には、セキュリティと利便性を両方とも高いレベルで確保することが求められます。以下では、これを可能にするためのポイントを解説します。
二段階認証を利用する
SSOのセキュリティレベルを向上するには、二段階認証を利用するのがおすすめです。二段階認証とは、パスワード入力などの通常の認証手続きとは別に、メールやSMSなどを利用して本人確認を二重に行う認証方法です。多要素認証と呼ぶ場合もあります。これによって、万一パスワード情報が流出したとしても、ログイン時にはもう1つ別の認証情報が必要となるため、不正ログインのリスクを減らすことが可能です。ただし、二段階認証にはログインの手間が増えるというデメリットもあります。
生体認証を利用する
生体認証の活用もセキュリティの向上に大きく資する対策です。生体認証とは、指紋や顔などの本人固有の身体情報を認証用の鍵にする仕組みです。パスワード入力と違い、生体認証は対応機器さえあれば容易に行えるため、ユーザー側の負担が小さいというメリットもあります。先の二段階認証において、パスワード入力と並行して生体認証を活用するのもおすすめです。スマートフォンに送られるSMSなどを利用した所有認証だと、スマートフォンをその都度取り出す手間があったり、スマートフォンを置き忘れたり充電が切れたりしていた場合に、利用できない恐れがあります。しかし生体認証ならばそうした手間もリスクも排除し、利便性を保った上で二段階認証を活用できます。
不審なサインオンを検知する機能を搭載したサービスを利用する
万一の際の対策として、不審なサインオンをシステムが検知した際に、セキュリティ警告などをしてくれるサービスを利用するのも有効です。例えば、それまで利用されたことのないIPアドレスからのサインオンが行われたなど、ログイン情報に異常があった場合、ログイン情報が流出した恐れがあるとしてメールなどで通知してくれるサービスです。このような通知サービスを利用すれば、万が一不正アクセスがされた際も早期発見しやすくなり、被害の拡大を抑えられます。
アクセス元の制限をかける
SSOができるアクセス元を制限することで、セキュリティリスクを抑えられます。
アクセス制限をする場合、例として以下で制限します。
- 送信元IPアドレス
- 特定のデバイスやOS
- 電子証明書を保有しているかどうか
- 地理的な情報(国や地域、建物)
SSOの怖いポイントは「アクセスさせたくないユーザーに許可をしてしまうこと」です。アクセス制限をかけておくことで、上記のポイントを低減できます。「信頼できるユーザー」のみアクセス認証、認可できるように事前にホワイトリスト、ブラックリストを登録しておくことで、リスクの低減を実現可能です。
セキュアなシングルサインオンサービスMicrosoft Entra ID をご紹介
上記のような対策を踏まえることで、利便性とセキュリティを兼ね備えたSSOが可能になります。そして、これを実現する具体的なSSOサービスとしてここでおすすめしたいのが、Microsoftが提供する「Entra ID(旧Azure AD)」です。
MicrosoftのSSOサービスといえば、オンプレミス版の「Active Directory」を連想する人が多いかもしれませんが、分かりやすくいえばEntra IDとはこれのクラウド版です。Active Directoryはオンプレミスの自社サービス間にしか対応していませんでしたが、Entra IDはクラウドサービス(Webサービス)間のSSOにも対応しています。
また、前項で紹介したセキュリティ対策にも対応している上、部署や役職ごとのアクセス管理もできるので、ガバナンスを効かせた情報管理が実現可能です。Entra ID自体もクラウドサービスなので、導入が簡単にできるのも魅力の1つといえるでしょう。Entra IDを導入すれば、まさに利便性とセキュリティを両立したSSO環境を実装できます。
Entra IDについて別記事でも解説しているので、あわせてご覧ください。
Entra ID(旧Azure AD)とは?機能やメリットを初心者にも分かりやすく解説!
まとめ
SSOとは、複数のITサービスのログイン認証を1つのID・パスワードで一括処理できる仕組みです。SSOはさまざまな仕組みで実現されており、それぞれに一長一短があるため、利用サービスやパソコンが対応できる方式を選択する必要があります。
SSOはユーザーの利便性やセキュリティリスクを低減できることがメリットです。一方で導入コストがかかることや、故障時に業務ができなくなる可能性、パスワード漏えい時のセキュリティリスクが大きいデメリットがあります。デメリットを軽減する対策として、多要素認証によるSSOやクラウドサービスの活用がおすすめです。
SSOには利便性とセキュリティの両立が求められますが、この点Microsoftの「Entra ID」はまさにこの要件を満たしたおすすめのソリューションです。