シングル・サインオン(SSO)とは、ユーザーが1セットのログイン資格情報を使用してセッションに1回ログインし、そのセッション中に再度ログインしなくても、複数の関連するアプリケーションやサービスに安全にアクセスできるようにする認証スキームです。
SSOは通常、会社のイントラネットまたはエクストラネット、学生ポータル、パブリッククラウド・サービス、およびユーザーが作業を行うために複数のアプリケーション間を移動する必要があるその他の環境で認証を管理するために使用されます。 また、銀行やeコマース・サイトなどの顧客向けのWebサイトやアプリにて、サードパーティ・プロバイダーのアプリケーションをシームレスで中断のないユーザー・エクスペリエンスに組み合わせるために、使用される機会が増えています。
シングル・サインオンは、 サービスプロバイダー と呼ばれる、信頼性の高い関連アプリケーション、Webサイト、およびサービスのグループと、 IDプロバイダーと呼ばれるSSOソリューションとの間の、デジタル信頼関係に基づいています。 SSOソリューションは、多くの場合、より大規模な IAM(IDおよびアクセス管理) ソリューションの一部です。
一般に、SSO認証は次のように機能します。
プロセスは、いくつかの要因によって異なります。 たとえば、指定された期間アイドル状態になっているユーザーが別のアプリにアクセスしようとする際に、ログインが必要になる場合があります。 または、認証されたユーザーが特に機密情報を処理するアプリまたはサービスを試行した場合、ユーザーの携帯電話や電子メールに送信されるコードなど、追加の認証要素の入力を求められる場合があります(以下の「適応SSO」を参照)。
SSOはユーザーの時間と手間を明らかに節約します。 たとえば、企業ユーザーを例に挙げます。SSOを使用すると、複数のアプリケーションに1日に何度もログインしなくても、企業のイントラネットまたはエクストラネットに1度だけログインし、必要なあらゆるアプリケーションへのアクセスが1日中可能になります。
一方で、ユーザーが覚える必要のあるパスワードの数と管理者が管理する必要のあるユーザー・アカウントの数を大幅に減らすことによって、SSOは組織のセキュリティ体制を強化します。 SSOは具体的に以下を実現します
SSOの主なリスクは、ユーザーの認証情報が漏えいした場合、攻撃者にネットワーク上のすべてまたはほとんどのアプリケーションとリソースへのアクセスを、許可してしまう可能性があることです。
長くて複雑なパスワードを作成するようにユーザーに要求し、そのパスワードの保存先に関わらず慎重に暗号化して保護することは、この最悪のシナリオを防ぐために大いに役立ちます。 ただし、セキュリティ専門家のほとんどが、多要素認証、またはMFAにてSSOを実装することを推奨しています。 MFAでは、ユーザーはパスワードに加えて、携帯電話に送信されるコード、指紋、IDカードなどの認証要素を1つ以上提供する必要があります。 これらの追加の認証情報は、ハッカーが簡単に盗んだり偽装したりできないものであるため、MFAは、SSOの認証情報の漏えいに関連するリスクを、劇的に減らすことができます。
上記のSSOスキーム(複数の関連アプリケーションのセッションへのアクセスを提供する、シングル・ログインとユーザー認証情報のセット)は、単純または純粋なSSOと呼ばれることもあります。 他のタイプのSSO(またはSSOに類似した認証方法)には、次のものがあります。
SSOは、いくつかの認証プロトコルおよびサービスのいずれかを使用して実装できます。
SAML/SAML 2.0
SAML(Security Assertion Markup Language)は、IDプロバイダーと複数のサービス・プロバイダー間で暗号化された認証および承認データを交換するための、最も長い歴史を持つオープン・スタンダード・プロトコルです。 SAMLは、他のプロトコルよりもセキュリティをより細かく制御できるため、通常、企業または政府のアプリケーション・ドメイン内およびドメイン間でSSOを実装するために使用されます。
OAuth/OAuth 2.0
OAuth/OAuth 2.0(オープン認証)は、ユーザーのパスワードを公開せずにアプリケーション間の承認データを交換する、オープン・スタンダード・プロトコルです。 OAuthの使用により、一度のログインで、通常はそれぞれに個別のログインを必要とするアプリケーション間の対話を合理化できます。 たとえば、LinkedIn社はOAuthを利用することで、新規ネットワークの潜在的なメンバーに対して、メールの連絡先を検索することができます。
OpenID Connect (OIDC)
別のオープン・スタンダード・プロトコルであるOICDは、REST APIとJSON認証トークンを使用して、Webサイトまたはアプリケーションが別のサービス・プロバイダーを介してユーザーを認証することにより、ユーザーにアクセスを許可できるようにします。
OAuthの上に階層化されたOICDは、主にサード・パーティ・アプリケーションやショッピング・カートなどへのソーシャル・ログインを実装するために使用されます。 より軽量な実装であるOAuth/OIDCは、SaaS(サービスとしてのソフトウェア)とクラウドアプリケーション、モバイルアプリ、モノのインターネット(IoT)デバイス全体にSSOを実装するために、SAMLを使用することがよくあります。
LDAP
LDAP(Lightweight Directory Access Protocol)は、ユーザー資格情報を保存および更新するためのディレクトリと、そのディレクトリに対してユーザーを認証するためのプロセスを定義します。 1993年に導入されたLDAPは、ディレクトリへのアクセスをきめ細かく制御できるため、認証ディレクトリ・ソリューションとしてSSOを実装する多くの組織に、依然として選ばれています。
ADFS
ADFS(Active Directoryフェデレーション・サービス)はMicrosoft Windowsサーバー上で稼働して、オンプレミスおよびオフプレミスのアプリケーションとサービスでフェデレーテッドID管理(シングル・サインオンを含む)を可能にします。 ADFSは、Active Directoryドメインサービス(ADDS)をIDプロバイダーとして使用します。
「ゼロトラスト」は、セキュリティに対して「決して信頼せず、常に検証する」アプローチを採用します。ユーザー、アプリケーション、またはデバイスは、ネットワークの外部、またはすでに認証済でネットワークの内部にあるのかにかかわらず、必要な次のネットワーク・リソースにアクセスする前にIDを検証する必要があります。
ネットワークが、オンプレミス・インフラストラクチャーと複数のプライベートクラウドおよびパブリッククラウドにわたって分散化していくに従い、ゼロトラスト・アプローチが不可欠となります。そのアプローチにより、ネットワークに侵入した脅威が取得するアクセス数を抑え、損害が最大限に広がることを防ぎます。
SSO(特にIAMソリューションの一部としてのSSO)は、ゼロトラスト・アプローチを実装するための、基盤となるテクノロジーとして広く見なされています。 ゼロトラストの基本的な課題は、許可されたエンドユーザーがネットワーク内を自由に移動して仕事やビジネスを遂行する能力を妨げることなく、ネットワークに侵入する攻撃者を取り締まることができるセキュリティ・アーキテクチャーを作成することです。 多要素認証、アクセスとアクセス許可の制御、ネットワークのマイクロ・セグメンテーション、その他の手法とベスト・プラクティスも組み合わせる場合、SSOは、組織がこのバランスを実現するための支援をすることができます。