シングルサインオン (SSO) とは、1 式の資格情報(ID・パスワード)による 1 回のログインのみで、複数のアプリケーションとウェブサイトで安全にユーザーを認証できるシステムです。SSO を利用すると、ユーザーがアクセスしようとしているアプリケーションやウェブサイトは、ユーザーの本人確認を信頼できるサードパーティーに任せます。
シングルサインオンを使用しない場合、各ウェブサイトはユーザーとその資格情報を格納する独自のデータベースを保持します。アプリやウェブサイトにログインするときは下記のような段階を経ます。
通常この認証の確認データは、セッションデータを持つ Cookie として、またはトークンとして送られます。トークンはセッションを追跡せずより迅速に処理できます。
ユーザーがアクセスをリクエスト
ユーザーがアクセスを許可され
そして新しいサイトへのアクセスをリクエスト
SSO を利用した場合、認証はドメイン (ウェブサイト) 間の信頼関係に基づきます。シングルサインオンを使用する場合、アプリやウェブサイトにログインするときは下記のような段階を経ます。
SSO では認証の確認データはトークンの形をとります。
ユーザーがアクセスをリクエスト
ウェブサイトはユーザーを SSO ウェブサイトにリダイレクトし、ログインさせます。ユーザーは単一のユーザー名とパスワードでログインします。
SSO ウェブサイトはユーザーの ID を Active Directory のような ID プロバイダーを利用して確認します。
ユーザーがアクセスを許可され
そして新しいサイトへのアクセスをリクエスト
ユーザーが別のウェブサイトにアクセスしようとすると、その新しいウェブサイトは SSO ソリューションで確認します。ユーザーはすでに認証されているので、SSO は追加のログイン無しで新しいウェブサイトへのユーザーの ID を確認します。
シングルサインオンと言われることがあるパスワードボールトとシングルサインオンの違いを理解することは重要です。パスワードボールトでは同じユーザー名とパスワードを持つ場合がありますが、異なるアプリケーションやウェブサイトに移動するたびにそれを入力しなければなりません。
SSO では SSO ソリューションでログインした後は、再ログイン無しで、企業内で許可されたすべてのアプリケーションとウェブサイトにアクセスできます。これにはクラウドアプリケーションとオンプレミスアプリケーションが含まれ、これらは多くの場合 SSO ポータル (ログインポータルとも呼ばれる) を介して利用できます。SSO はフェデレーションと呼ばれる概念を使用してフェデレーション方式の SSO を提供します。
フェデレーションを使用する SSO ソリューションでは、Microsoft Active Directory (AD) や Azure Active Directory (Azure AD) のような組織の ID プロバイダー (IP) を利用して、真のシングルサインオンを可能にします。ID プロバイダーは通常は認証サーバーとして機能し、ユーザー名、パスワード、ユーザーがアクセスできるドメイン、さらには各サイトや各アプリでユーザーが許可されたアクティビティのような、ユーザーの ID と情報を格納します (ユーザーが許可されているアクティビティを確認することは権限付与と呼ばれます。たとえば、あるユーザーは Salesforce レポートにアクセスできますが、顧客記録の編集は許可されていません)。
本当の SSO とは、SSO ソリューションが ID プロバイダーに組み込まれている、または SSO ソリューションがユーザーの認証に 1 つまたは複数の ID プロバイダーを利用するのどちらかです。
認証リクエストと情報は SAML または OAuth のような標準的で安全なプロトコルを使用して送られます。認証をリクエストしたウェブサイトは SSO ソリューションと信頼関係を持ち、SSO ソリューションと ID プロバイダーの間には信頼関係が存在します。信頼関係とは、ユーザー ID 、デバイス、アクセス権限について、あるドメインが別のドメインの情報を信頼することを意味します。