Sun ONE logo     前へ     目次     索引     次へ     
Sun ONE Calendar Server プログラマーズガイド



第 5 章   シングルサインオン認証


この章では、Sun™ ONE Calendar Server に組み込まれているシングルサインオン認証のメカニズムについて説明します。このスキームは、他の認証メカニズム、セッション管理、およびリソースアクセス制御から独立しています。この認証メカニズムを使用するには、クライアントで cookie をサポートし、サーバで HTTP をサポートしている必要があります。シングルサインオンは、アプリケーションのパフォーマンスに影響を与えません。このスキームでは、セッションの一元管理は必要ありません。アプリケーションは独自のセッションを管理するため、個別のタイムアウトおよび取り消しポリシーを持つことができます。

この章は、以下の節で構成されています。


シングルサインオンとは

シングルサインオンでは、ユーザは 1 度サインオンすると複数のアプリケーションを使用できます。これらのアプリケーションは権限の検証に相互の cookie を使用する信頼サークルを形成するため、ユーザはアプリケーションごとにサインオンする必要はありません。

各アプリケーションでは、必要に応じて独自の検証インタフェースを使用できます。ただし、各検証機関には、他のアプリケーションの検証機関ルーチンで認識できる cookie を格納する必要があります。 この章の「cookie 情報」を参照してください。


シングルサインオンの制限

シングルサインオンには、前述の利点がありますが、使用に関して次の制限があります。

  • アプリケーションに検証プロトコルを実装する必要があります。 この章の「問題点」を参照してください。

  • このスキームは、マシンを共有する状況には適していません。

  • 各アプリケーションは、同じドメインに属し、相互のシングルサインオン検証 URL にアクセスできるようにする必要があります。

  • ユーザが別の ID に切り替える場合は、ブラウザを再起動する必要があります。

    これは、各ブラウザセッションで 1 つのユーザ ID しかサポートできないためです。

  • クライアントで cookie をサポートしている必要があります。


プロセスフロー

次の図に示すように、アプリケーションがアクセス要求を受信した時点でフローが開始されます。信頼アプリケーションのサークルは、同じ接頭辞を共有するため、プログラムは接頭辞が一致するすべての cookie を取得します。

自身の cookie が見つからない場合は、アプリケーションは他の信頼アプリケーションで利用できる cookie の有無を確認します。有効な cookie が見つかると、プログラムはこれらの cookie 情報を使用して権限を検証し、セッションを確立します。アクセスを許可する場合は、アプリケーション固有の cookie を返送します。

このサークルの接頭辞で利用できる cookie がない場合、または利用できる cookie が無効な場合は、ログイン画面が表示されます。

図 5-1に、シングルサインオンのプロセスフローを示します。

図 5-1    シングルサインオンのプロセスフロー



実装の条件

このシングルサインオンスキームに参加するためには、サークルのすべてのアプリケーションが次の条件を満たしている必要があります。

  • cookie の読み込みおよび書き込みが可能なこと

  • 次の追加設定パラメータをサポートしていること

    • 信頼アプリケーションのリスト

    • シングルサインオフ

    • 接頭辞の文字列

  • HTTP 上でシングルサインオン検証プロトコルを実装していること

    • 要求

      要求には、ヘッダ内にシングルサインオン cookie が含まれ、URL のパラメータとしてクライアント IP アドレスがある。

      GET verificationurl client=clientIPHTTP/1.0

    • キーが有効な場合の応答

      各キーと値のペアが別々の行に示された text/plain ASCII に応答。timeremaining はオプション。

      fquid=user id@fully qualified domain name
      authtype=plaintext | cert | ...
      timeremaining=[time left before this session time out]

    • キーが無効な場合の応答

      text/plain ASCII メッセージ: エラーユーザのセッションが無効です。

  • 設定ファイル ics.conf を編集して、信頼サークルの設定データを設定すること。 設定ファイルの詳細については、『Sun ONE Calendar Server 管理者ガイド』を参照。 シングルサインオン設定パラメータは、接頭辞 sso で始まる。

cookie 情報

cookie の形式は次のとおりです。

configurable prefix-application installation unique identifier=single sign-on key

その他の推奨設定

  • ドメインを .domain name に設定する

  • パスを / に設定する

  • expires フィールドを設定しない

信頼アプリケーションレコード

追加設定パラメータの記憶域および形式は、アプリケーションに固有ですが、各レコードには次の事項を含める必要があります。

  • 特定の信頼アプリケーションのインストールに対する一意の識別子

  • アプリケーションをホストするマシンの完全修飾ドメインまたは IP アドレス

  • シングルサインオン検証プロトコルをサポートする URL

    例: http://domain.com/VerifySSO?

シングルサインオフパラメータ

シングルサインオフパラメータは、このアプリケーションがシングルサインオフを実行するかどうかを示す論理値です。 デフォルトは、true です。

  • 値が true の場合、アプリケーションはユーザがログオフした時点で、信頼サークルの接頭辞に一致するシングルサインオン cookie をすべて削除します。

  • 値が false の場合、アプリケーションはユーザがログオフした時点で、自身のシングルサインオン cookie だけを削除します。

接頭辞の文字列

これは、信頼サークルのすべてのアプリケーションが共有する共通の文字列です。別の接頭辞を選択すると、1 つのドメイン内で複数の信頼サークルを作成できます。


シングルサインオンの例

この例は、シングルサインオンのサイクルが完了するまでの手順を示しています。

参加するアプリケーションは、この信頼サークルの接頭辞として ssogrp1 を使用します。 このサークルの信頼アプリケーションは、WebMail、WebCal、および Hrapp です。

  1. John がメールを確認します。

    WebMail は、208.12.60.3 で実行中の jsmith からログイン要求を受信します。 WebMail は、名前の中に ssogrp1 が含まれている cookie を検索します。該当する cookie がありません。 WebMail は、ユーザに認証を求めるプロンプトを表示し、接頭辞の文字列が ikey- で、この WebMail インストールの一意の識別子が (3fr7d) であり、セッション ID となるシングルサインオンキー (l3khj5l3k9ldh) が含まれている cookie を返送します。

    返される cookie は、ssogrp13fr7d=l3khj5l3k9ldh です。

  2. 次に、John がカレンダーを確認します。

    • WebCal は、208.12.60.3 で実行中の jsmith からログイン要求を受信します。 WebCal で検出された ssogrp1* cookie は
      ssogrp13fr7d=l3khj5l3k9ldh です。WebCal は、設定ファイルで次のエントリを検索します。

      3fr7d.verificationurl=http://webmail host/VerifySSO?

    • WebCal は、次の HTTP GET を発行します。

      GET http://webmail host/VerifySSO?client=208.12.60.3 HTTP/1.0

      Cookie: ssogrp13fr7d=l3khj5l3k9ldh

    • WebMail は、これが有効なキーであることを認識して、次の応答を返します。

      fquid=jsmith@example.com
      authtype=plaintext
      timeremaining=1000

    • WebCal は、John に対してシングルサインオンキーa97ads64 を生成し、cookie ssogrp1lkj87f=a97ads64 を返します。

  3. John は、しばらくインターネットを検索した後、もう一度カレンダーを確認します。

    • WebCal は、208.12.60.3 で実行中の jsmith からログイン要求を受信します。

    • WebCal は、複数の ssogrp1 cookie を検出しました。 そのうちの 1 つが WebCal の一意のアプリケーション ID (lkj87f) と一致します。

      WebCal は、cookie ssogrp1lkj87f=a97ads64 を返送します。

    • WebCal はセッション ID をシングルサインオンキーとして使用するため、セッションデータベースからセッション a97ads64 を検索し、セッションの有効性を確認して、ユーザに処理を許可します。

  4. John は、会社の人事アプリケーションにアクセスする必要があります。このアプリケーションは、証明書認証を必要とします。

    人事アプリケーションは社内で開発されたもので、検証プロトコルをサポートするように変更されています。

    • HRapp は、208.12.60.3 で実行中の jsmith からログイン要求を受信します。

      このアプリケーションは証明書認証を必要とするため、クライアントに証明書の送信を要求します。

    • HRapp は、ssogrp1* cookie の確認は行いません。

    • HRapp は、John に対してセッション B53P997KDを生成し、cookie ssogrp1adf38=lka79jy5d3l3rを返送します。

      この cookie によって、他の参加アプリケーションは HRapp を検証機関として使用できるようになります。

  5. John はもう一度メールを確認してログオフします。

    • WebMail は、208.12.60.3で実行中の jsmith からログオフ要求を受信します。

    • WebMail は、John の WebMail セッションを無効にして、ssogrp1* cookie もすべて削除します。

  6. John がいづれかのアプリケーションにアクセスする場合は、もう一度ログインする必要があります。

この例の設定パラメータ

  • 接頭辞: sso.appprefix=îssogrp1î

  • シングルサインオンのブール値: sso.singlesignoff=îtrueî

  • アプリケーション情報:

    • WebMail:

      appid=3fr7d

      3fr7d.ip=198.93.96.111

      3fr7d.verificationurl=http://webmail host/VerifySSO?

    • WebCal:

      lkj87f.ip=198.93.78.103

      lkj87f.verificationurl=http://webcal host/VerifySSO?

    • HRapp:

      adf38.ip=198.93.70.8

      adf38.verificationurl=http://hr host/VerifySSO?


問題点

この節では、次の 4 つの領域に関する問題点、想定、および条件について説明します。

セキュリティ

  • シングルサインオンキーとクライアント IP アドレスの正しい組み合わせを推測することは、非常に困難であると想定しているため、検証プロトコルに対して認証を要求する必要はありません。

  • プロキシを使用してクライアント接続を確立する場合は、シングルサインオンキーは唯一の防衛手段になります。そのため、予測しにくいキーを設定することが非常に重要です。

  • セキュリティで保護されたシングルサインオンキーは、アプリケーションで生成する必要があります。

  • アプリケーションでセッションタイムアウトを短時間に設定して、各シングルサインオンキーの有効期間を長くしないことも有効です。

  • HTTP は、通信を保護する目的で使用できます。アプリケーションでクライアント証明書認証が必要な場合は、必ずクライアントに証明書を要求する必要があります。ただし、このアプリケーションは引き続き他のアプリケーションの検証機関として機能します。

管理

  • すべてのアプリケーションは、信頼アプリケーションリストを保持する必要があります。各アプリケーションは、異なるメカニズムを使用してそのリストの格納および管理を行うことができます。

  • シングルサインオンキーを生成したアプリケーションだけが、そのキーを無効にすることができます。管理者は、すべてのアプリケーションに対するユーザのアクセスを簡単に無効にできません。

スケーラビリティ

cookie の数の制限

  • 合計で 300 の cookie

  • サーバまたはドメインごとに 20 の cookie。完全指定のホストおよびドメインは別のエントリとして計算され、それぞれの cookie の数は 20 に制限されます。

パフォーマンス

  • 他のアプリケーションに対する検証要求は、一度しか行われません。アプリケーションセッションが確立されると、検証プロトコルは不要になります。

  • ブラウザに無効な cookie (無効なシングルサインオンキーを持つ cookie) が多数保存されている場合は、新しいアプリケーションへのログオンに時間がかかることがあります。

    ただし、この現象は次の 2 つ理由により、頻繁には発生しません。

    • 各アプリケーションは、ユーザがログアウトした時点で、それぞれの cookie を削除します (アプリケーションがシングルサインオフを実行する場合は、該当する接頭辞を含むシングルサインオン cookie をすべて削除します)。

    • アプリケーションは、cookie が複数のブラウザセッションにわたって持続しないように expires フィールドを空白のままにします。


前へ     目次     索引     次へ     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

最終更新日 2002 年 8 月 29 日