シングル サインオン(SSO)を利用すると、個々にユーザー名とパスワードを入力することなく多くのアプリケーションにアクセスできます。Security Assertion Markup Language(SAML)とは、保護されたウェブドメイン間でユーザーの認証と認可のデータ交換を可能にする XML の標準規格のことです。
サービス プロバイダと ID プロバイダの役割
Google では SAML ベースの SSO サービスを提供しています。このサービスを利用することで、パートナー企業は、ホストされたユーザーが保護されたコンテンツにアクセスしようとするときに、認証と承認を行うことができます。Google はオンラインのサービス プロバイダとして機能し、Google カレンダーや Gmail などのサービスを提供します。Google パートナーはオンラインの ID プロバイダとして機能し、Google が提供するウェブ アプリケーションのユーザーを特定、認証、承認するために使用するユーザー名やパスワードおよびその他の情報を管理します。
多くのオープンソースや商用の ID プロバイダは、Google での SSO の実装に役立ちます。
デスクトップ クライアントは引き続きログインが必要
SSO ソリューションはウェブ アプリケーションにのみ適用されることに注意してください。ユーザーがデスクトップ クライアントから Google サービスにアクセスできるようにすることができます。たとえば、Outlook を使用して Gmail への POP アクセスを提供するには、ユーザーに使用可能なパスワードを提供し、Admin SDK の Directory API を使用してそれらのパスワードを内部ユーザー データベースと同期する必要があります。パスワードを同期する際には、管理コントロール パネルのログイン URL を使用したユーザー認証の仕組みを理解しておく必要があります。
パートナーが運営する SAML ベースの SSO について理解する
図 1 は、パートナーが運営する SAML ベースの SSO サービスを介して、ユーザーが Gmail などの Google アプリケーションにログインするプロセスを示しています。図に続く番号付きリストは、各ステップの詳細を示しています。
重要: このプロセスが開始される前に、パートナーは Google に SSO サービスの URL、Google が SAML レスポンスを確認するのに使う公開鍵を提供しなければなりません。
図 1: SAML ベースの SSO サービスを使用して Google にログインするプロセスを示しています。
この図では以下のステップが解説されています。
- ユーザーが、ホストされている Google アプリケーション(Gmail、Google カレンダー、その他の Google サービスなど)にアクセスしようとしています。
- Google が SAML 認証リクエストを生成します。SAML リクエストはエンコードされ、パートナーの SSO サービスの URL に埋め込まれます。SSO URL には RelayState パラメータも埋め込まれます。このパラメータには、ユーザーがアクセスしようとしている Google アプリケーションのエンコードされた URL が含まれます。この RelayState パラメータは不透明な識別子で、変更や検査なしで送り返されます。
- Google がユーザーのブラウザにリダイレクトを送信します。リダイレクト URL にはエンコードされた SAML 認証リクエストが含まれ、これはパートナーの SSO サービスに送信されます。
- ブラウザが SSO URL にリダイレクトします。
- パートナーは SAML リクエストをデコードし、Google の Assertion Consumer Service(ACS)とユーザーの宛先 URL(RelayState パラメータ)の両方の URL を抽出します。
- ユーザーを認証します。パートナーは、有効なログイン認証情報を要求するか、有効なセッション クッキーを確認してユーザーを認証できます。
- パートナーは、認証されたユーザーのユーザー名が含まれる SAML レスポンスを生成します。このレスポンスは、SAML v2.0 の仕様に従ってパートナーの DSA または RSA の公開鍵と秘密鍵でデジタル署名されます。
- パートナーは SAML レスポンスと RelayState パラメータをエンコードして、その情報をユーザーのブラウザに返します。パートナーが提供するメカニズによって、ブラウザはその情報を Google の ACS に転送できます。たとえば、パートナーは SAML レスポンスと宛先 URL をフォームに埋め込み、クリックすると Google にフォームが送信されるボタンを表示することができます。また、フォームを Google に送信する JavaScript をページに含めることも可能です。
- ブラウザが ACS URL に応答を送信します。Google の ACS は、パートナーの公開鍵を使用して SAML レスポンスを確認します。レスポンスが正常に確認されると、ACS は宛先 URL にユーザーをリダイレクトします。
- ユーザーが Google アプリにログインします。