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

SSOは、一度のユーザー認証(ログイン)を行うだけで、連携している複数の異なるアプリケーションやシステム、クラウドサービスを、個別に追加のログイン操作なしで利用できるようにする仕組みのことです。

正式名称をシングルサインオン(Single Sign-On)と呼び、利用者の利便性向上と、システム管理者の運用負荷軽減、さらには組織全体のセキュリティ強化を同時に実現するための重要なアイデンティティ管理技術を指します。

SSOの基本概念と主なメリット

SSOが導入されていない環境では、利用者はサービスごとに異なるIDとパスワードを記憶し、入力する必要があります。SSOはこの煩雑さを解消し、認証情報を一元化します。

1. ユーザー利便性の向上

利用者は一つの認証情報を管理するだけで済むため、パスワードの失念によるロックアウトや、再設定の手間が劇的に減少します。

2. 管理コストの削減

システム管理者は、ユーザーの追加や削除、権限変更を一箇所で行うことができます。退職者のアカウント削除漏れなどを防ぎ、ガバナンスを効かせやすくなります。

3. セキュリティの強化

複数のサービスでパスワードを使い回すリスクを低減できます。また、SSOの入り口で多要素認証(MFA)を強制することで、すべての連携サービスに対して一括で高いセキュリティレベルを適用可能です。

SSOを実現する主な仕組みとプロトコル

SSOは、認証情報をやり取りするための共通の規約(プロトコル)に基づいて動作します。

1. SAML方式(フェデレーション方式)

クラウドサービス(SaaS)との連携で最も一般的に利用される方式です。認証を行うアイデンティティプロバイダー(IdP)と、サービスを提供するサービスプロバイダー(SP)の間で、XML形式のデジタル署名付きデータ(SAMLアサーション)をやり取りすることで、認証の信頼性を担保します。

2. OIDC方式(OpenID Connect)

OAuth 2.0をベースとしたプロトコルで、近年のウェブアプリケーションやモバイルアプリで広く採用されています。ユーザー情報のやり取りにJSON形式(JWT)を使用するため、開発者にとって扱いやすいという特徴があります。

3. エージェント方式 / 代理認証方式

主に社内のレガシーなシステムに対して用いられます。対象のサーバーに専用のエージェントを導入したり、利用者に代わってSSOサーバーがログイン画面に情報を自動入力したりすることで、SSOに対応していない古いアプリケーションを統合します。

理論的な信頼モデル

SSOの信頼性は、確率論的なリスク評価に基づいて運用されることがあります。例えば、認証の有効期間(セッションタイムアウト)を $T$ とし、不正アクセスの発生確率を $P$ としたとき、認証の「鮮度」とリスクのバランスを考慮した動的なアクセス制御が行われます。

R(t) = 1 - e^{-\lambda t}

ここで、

\lambda

は脅威の発生率、

“t”は最後に認証してからの経過時間を示します。SSOシステムは、経過時間やアクセス環境の変化に応じて、再認証を要求するなどの判断を自動的に行います。

導入時の留意点

SSOは極めて便利な仕組みである一方、単一障害点(SPOF)となるリスクも孕んでいます。

  • 認証情報の漏洩リスク: SSOのマスターパスワードが漏洩すると、連携しているすべてのシステムにアクセスされる恐れがあります。これを防ぐために、クライアント証明書や生体認証などを組み合わせた多要素認証の導入が不可欠です。
  • 可用性の確保: SSOサーバーが停止すると、すべてのシステムにログインできなくなるため、システム構成の二重化や冗長化などの可用性対策が極めて重要となります。

SSOの導入は、単なる効率化にとどまらず、ゼロトラストネットワークアクセス(ZTNA)を構築する上での第一歩として、現代のエンタープライズITにおいて不可避な選択となっています。

関連用語

クラウド | 今更聞けないIT用語集
ゼロトラスト セキュリティ用語集 | APPSWINGBY
ソフトウェアエンジニアリング

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。