ページの先頭行へ戻る
SystemwalkerService Catalog Manager V14g アプリケーションサービス機能アプリケーション開発ガイド
Systemwalker

付録C ログイン・ログアウトの実装

アプリケーションサービス機能経由でのアクセス(プラットフォームアクセスまたはログインアクセス)を選択した場合は、アプリケーションのログイン・ログアウトの実装を修正し、プロビジョニングサービスAPIが提供するオペレーションを実装する必要があります。

ログインおよびログアウトに必要な機能は、トークンハンドラー、カスタムログインモジュール、カスタムログアウトモジュール、ログアウトリスナの間でやりとりできます。必要な機能は、プラットフォームアクセスとログインアクセスで共通です。


トークンハンドラー

ユーザートークンからのユーザーIDの解決をアプリケーションサービス機能に要求します。そして、セッションオブジェクトを作成してユーザーIDをそのオブジェクトに保存します。さらに、解決済みユーザートークンを含んだ要求をカスタムログインモジュールに転送します。

カスタムログインモジュール

ユーザーに追加の認証を要求せずに、アプリケーションへのログインを許可します。ユーザーは、アプリケーションサービス機能によってすでに認証されているため、追加の認証は不要です。このため、たとえばカスタムログインモジュールがユーザー名と省略時のパスワードをアプリケーションに渡すなどの処理をおこないます。すべてのログインを確実にアプリケーションサービス機能経由でおこなうには、アプリケーションへの直接ログインを無効にするなどの必要があります。

カスタムログアウトモジュール

アプリケーション側のユーザーセッションを終了し、ユーザーをアプリケーションサービス機能が提供するログアウトページ(/slogout.jsfページ)にリダイレクトします。

ログアウトリスナ

ユーザーがログアウトしたとき、またはセッションのタイムアウトが発生したとき、その旨をアプリケーションサービス機能に通知します。

カスタムログインモジュールとカスタムログアウトモジュールについては、既存のアプリケーションの機能を分析し、必要な動作に適合するように変更する必要があります。その他の機能は、インテグレーションヘルパーと呼ばれるJava実装のWebアプリケーションパッケージIntegrationhelper.warをアプリケーションサービス機能が提供します。このパッケージは、直ちに利用できるトークンハンドラとログインリスナを含んでいます。これにより、JavaベースのWebアプリケーションのログイン・ログアウトの実装の変更をサポートします。パッケージは以下を含みます。

パッケージの内容

説明

Tokenhandler.jsp

JSPとして実装したトークンハンドラー。

Welcome.jsp

JSPとしてして実装した、カスタムログインモジュールのサンプル。

Logout.jsp

JSPとして実装した、カスタムログアウトモジュールのサンプル。

WEB-INF/lib

アプリケーションサービス機能のインテグレーションヘルパーが使用する、すべてのJARファイルを保存したフォルダ。

WEB-INF/classes/tokenhandler.properties

アプリケーションサービス機能が提供するWebサービスへのURLと、アプリケーションが提供するカスタムログインモジュールの相対URLを指定したプロパティファイル。カスタム・ログインモジュールはトークンハンドラーと同じマシン上の同じコンテキスト上に登録する必要があります。

WEB-INF/web.xml

トークンハンドラー・サーブレットとログアウトリスナへのエントリを定義した設定ファイルのサンプル。

インテグレーションヘルパーは、直ちに利用できるトークンハンドラーとログアウトリスナを含んでいます。

インテグレーションヘルパーは、JavaベースのあらゆるWebアプリケーションから利用できます。トークンハンドラーはJavaサーブレットおよびJSPとして実装されています。ログアウトリスナはセッションリスナとして実装されています。

Java以外の言語で開発したアプリケーションの場合は、以下のオペレーションを呼び出すトークンハンドラーとログアウトリスナを新たに実装してください。これらのオペレーションは、アプリケーションサービス機能のパブリックWebサービスAPIの一部であるセッションサービス(SessionService)インターフェースが提供しています。

ログイン要求のHTTPパラメーター

アプリケーションサービス機能が送信するログイン要求は、次のHTTPパラメーターを含んでいます。

インテグレーションヘルパーのWebアプリケーションへの統合

  1. Integrationhelper.warパッケージを入手していない場合は、アプリケーションサービス機能のシステム運用管理者に連絡して入手してください。

  2. Integrationhelper.warパッケージを任意の場所に解凍します。

  3. 必要に応じて、tokenhandler.propertiesファイル内の以下の情報を変更します。

    • アプリケーションサービス機能のパブリックWebサービスAPIのポート番号

    • カスタムログインモジュールのパス

  4. WEB-INF/libフォルダとWEB-INF/classesフォルダの内容を、Webアプリケーション内の対応するフォルダにコピーします。

  5. 次のいずれかを実行します。

    • JSPベースのトークンハンドラーを使用する場合は、Tokenhandler.jspファイルをWebアプリケーションにコピーします。

    • サーブレットベースのトークンハンドラーを使用する場合は、Webアプリケーションのweb.xmlファイルにトークンハンドラーを登録します。
      Integrationhelper.warパッケージが提供するサンプルファイルweb.xmlからservletの要素とservlet-mappingの要素をコピーし、WebアプリケーションのWeb.xmlファイルに挿入すれば、トークンハンドラーを登録できます。

  6. Webアプリケーションのweb.xmlファイルにログアウトリスナを登録します。
    Integrationhelper.warパッケージが提供するサンプルファイルweb.xmlのlistenerの要素をコピーし、Webアプリケーションのweb.xmlファイルに挿入すれば、ログアウトリスナを登録できます。

テクニカルサービス定義を作成したら、loginPath属性にトークンハンドラーのパスを登録してください。

詳細は“4.3 テクニカルサービス定義の作成”を参照してください。

ここでは、JSPベース、あるいはサーブレットベースのカスタムログインモジュールを、ユーザートークンが解決したあとに呼び出す場合の例を紹介します。カスタムログインモジュールは/DoAutoLoginフォルダにWebリソースとして用意してあります。Webアプリケーションはコンテキストmyapplicationを使用し、サーバーmyserverのポート7777で作動しています。アプリケーションサービス機能のパブリックWebサービスはポート8082を開いています。

このような場合、サーブレットベースおよびJSPベースのトークンハンドラーの構成ファイルの例は、それぞれ以下のとおりです。

サーブレットベースのトークンハンドラー

JSPベースのトークンハンドラー