SSO(シングルサインオン)のプロトコルまとめ

シングルサインオン(SSO)を実現するための主要なプロトコルや方式を比較表でまとめます。

現在、Webサービスやクラウドサービスで特に広く使われているのはSAMLOpenID 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/パスワードを渡さずに、リソースへのアクセス権限を安全に委譲するために使われる。非常に主流(認可プロトコルとして)
Kerberos1980年代https://datatracker.ietf.org/doc/html/rfc4120ネットワーク内の認証主にWindowsのActive Directoryなどのオンプレミス環境(企業内ネットワーク)のSSOで使われる。チケットという認証情報を使う。主流(主に社内システム・内部ネットワーク)

補足と使い分け

  1. SAML
    • 得意なこと: 企業や組織が利用するクラウドサービス(Salesforce, Office 365など)との連携。複雑なアクセス制御(役職や部署ごとの権限付与など)を必要とするエンタープライズ用途。
    • 特徴: メッセージがXMLで長文になりやすく、モダンなWeb開発者からは敬遠されることもありますが、信頼性と実績は抜群です。
  2. OpenID Connect (OIDC)
    • 得意なこと: コンシューマ向けのサービス(Google、Facebookなどでログイン)や、API連携が多いモダンなアプリケーション。
    • 特徴: SAMLよりも構造がシンプルでデータ形式がJSONのため、Webやモバイルアプリとの親和性が非常に高く、近年最も急速に普及しているSSOプロトコルです。
  3. Kerberos
    • 得意なこと: ユーザーがWindowsにログインした認証情報をそのまま社内のWebシステムやファイルサーバーに利用するような、閉じたネットワーク内でのSSO。インターネットを跨ぐSSOには向きません。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

ピープル大学(UoPeople)でコンピューターサイエンスを学んでいます。趣味はプログラミング。

コメント

コメントする

目次