シングルサインオン(SSO)を実現するための主要なプロトコルや方式を比較表でまとめます。
現在、Webサービスやクラウドサービスで特に広く使われているのはSAML と OpenID Connect (OIDC) です。
目次
そもそも SSO(シングルサインオン)とは?
SSO (Single Sign-On) とは、一度の認証(ログイン)で、複数の独立したシステムやアプリケーションにアクセスできるようになる仕組みのことです。
「Single Sign-On」の名前の通り、「一度サインイン(ログイン)すればOK」という状態を実現します。
SSOが解決する問題
SSOがない場合、ユーザーは利用するサービスごとに個別のIDとパスワードでログインする必要があります。
| 問題点 | SSOによる解決 |
| ユーザーの負担 | サービスごとに異なるID/パスワードを覚える必要があり、負担が大きい。 |
| セキュリティ | パスワードを忘れがちになり、使い回しや簡単なパスワード設定の原因となる。 |
| 管理者(企業)の負担 | 従業員の入社・退社時のアカウント発行/削除(プロビジョニング)作業が多い。 |
SSOを実現する仕組み(プロトコル)
SSOは、ユーザーがログインしたという「認証情報」を、複数のサービス間で安全に共有することで実現します。この情報共有の「ルール」や「方法」を定めているのが、各種プロトコルです。
- SAML(Security Assertion Markup Language): 主に企業間のクラウドサービス連携(エンタープライズSSO)で使われます。
- OpenID Connect (OIDC): モダンなWebサービスやモバイルアプリでのSSO、GoogleやFacebookなどのコンシューマ向けID連携で主流です。
- Kerberos: 主に社内ネットワーク(オンプレミス)でのSSOで使われます。
これらのプロトコルは、ユーザーが認証基盤(IDプロバイダ)でログインした後、「このユーザーは確かに認証済みです」というメッセージ(証明書)を他のサービス(サービスプロバイダ)に渡すための具体的な手順を定めています。
SSOの具体例
| 方式 | 認証の流れのイメージ |
| 社内SSO | 朝、PCを起動してWindowsにログインすれば、社内システム、メール、ファイルサーバーなど全てに自動でアクセスできる。 |
| クラウドSSO | 企業が契約しているIDaaS(Idenntity as a Service)に一度ログインすれば、Salesforce、Slack、Zoomなど、契約している全てのクラウドサービスが利用できる。 |
| SNSログイン | ECサイトで「Googleでログイン」ボタンを押し、Googleのアカウントで認証すれば、ECサイトにもログインできる。 (これはOIDCの典型例) |
SSOは、現代の企業システムやインターネットサービスにおいて、利便性とセキュリティを両立させるための必須の仕組みとなっています。
OIDCもSSOの1つなんですね〜。
シングルサインオン(SSO)主要プロトコル比較表
| 方式/プロトコル | 登場時期/策定 | 公式文書URL | 主な役割 | 特徴とメリット | 現在の主流度 |
|---|---|---|---|---|---|
| SAML (Security Assertion Markup Language) | 2002年 (SAML 2.0は2005年) | https://www.google.com/search?q=http://docs.oasis-open.org/security/saml/v2.0/saml-2.0-os.zip | 認証・認可情報の交換 | エンタープライズ用途で最も広く使われる実績豊富な規格。複雑な属性情報や権限の交換が可能。メッセージはXML形式。 | 非常に主流(主に企業間/クラウド連携) |
| OpenID Connect (OIDC) | 2014年 (OAuth 2.0を拡張) | https://openid.net/specs/openid-connect-core-1_0.html | ユーザーの認証と情報取得 | モダンなWeb/モバイルアプリのSSOで主流。シンプルで軽量(メッセージはJSON形式)。OAuth 2.0の上で動作し「認証」機能を追加。 | 非常に主流(主にコンシューマ向け/Webアプリ) |
| OAuth 2.0 (Open Authorization) | 2012年 | https://datatracker.ietf.org/doc/html/rfc6749 | 認可(アクセス権限の委譲) | SSO(認証)自体を目的とはしないが、OIDCの基盤。ユーザーのID/パスワードを渡さずに、リソースへのアクセス権限を安全に委譲するために使われる。 | 非常に主流(認可プロトコルとして) |
| Kerberos | 1980年代 | https://datatracker.ietf.org/doc/html/rfc4120 | ネットワーク内の認証 | 主にWindowsのActive Directoryなどのオンプレミス環境(企業内ネットワーク)のSSOで使われる。チケットという認証情報を使う。 | 主流(主に社内システム・内部ネットワーク) |
補足と使い分け
- SAML
- 得意なこと: 企業や組織が利用するクラウドサービス(Salesforce, Office 365など)との連携。複雑なアクセス制御(役職や部署ごとの権限付与など)を必要とするエンタープライズ用途。
- 特徴: メッセージがXMLで長文になりやすく、モダンなWeb開発者からは敬遠されることもありますが、信頼性と実績は抜群です。
- OpenID Connect (OIDC)
- 得意なこと: コンシューマ向けのサービス(Google、Facebookなどでログイン)や、API連携が多いモダンなアプリケーション。
- 特徴: SAMLよりも構造がシンプルでデータ形式がJSONのため、Webやモバイルアプリとの親和性が非常に高く、近年最も急速に普及しているSSOプロトコルです。
- Kerberos
- 得意なこと: ユーザーがWindowsにログインした認証情報をそのまま社内のWebシステムやファイルサーバーに利用するような、閉じたネットワーク内でのSSO。インターネットを跨ぐSSOには向きません。
コメント