ページの先頭行へ戻る
SystemwalkerService Catalog Manager アプリケーション開発ガイド
FUJITSU Software

3.3 ログイン・ログアウトの実装

Systemwalker Service Catalog Manager経由でのアクセス(ログインアクセス)を選択した場合は、アプリケーションのログイン・ログアウトの実装を修正し、プロビジョニングサービスAPIが提供するメソッドを実装する必要があります。

ログインおよびログアウトに必要な機能は、トークンハンドラー、カスタムログインモジュール、カスタムログアウトモジュール、ログアウトリスナに分かれます。

トークンハンドラー

利用者トークンからの利用者IDの解決をSystemwalker Service Catalog Managerに要求します。そして、セッションオブジェクトを作成して利用者IDをそのオブジェクトに保存します。さらに、解決済み利用者トークンを含んだ要求をカスタムログインモジュールに転送します。

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

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

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

アプリケーション側の利用者のセッションを終了し、利用者をアプリケーションが提供するログアウトページにリダイレクトします。ログアウトページのURLは、Systemwalker Service Catalog ManagerのセッションサービスのdeleteServiceSessionメソッドの戻り値です。

ログアウトリスナ

利用者がログアウトしたとき、またはセッションのタイムアウトが発生したとき、その旨をSystemwalker Service Catalog Managerに通知します。

カスタムログインモジュールとカスタムログアウトモジュールについては、既存のアプリケーションの機能を分析し、必要な動作に適合するように変更する必要があります。

その他の機能については、インテグレーションヘルパーと呼ばれるJavaで実装したWebアプリケーションパッケージIntegrationhelper.warをSystemwalker Service Catalog Managerでは提供しています。このパッケージは、直ちに利用できるトークンハンドラとログインリスナを含んでいます。これにより、JavaベースのWebアプリケーションのログイン・ログアウトの実装の変更をサポートします。インテグレーションヘルパーは、Systemwalker Service Catalog Managerのインテグレーションパッケージで提供されます。

Integrationhelper.warパッケージは以下を含みます。

パッケージの内容

説明

tokenhandler.jsp

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

WEB-INF/lib

Systemwalker Service Catalog Managerのインテグレーションヘルパーが使用する、すべてのJARファイルを保存したフォルダ。

WEB-INF/classes/tokenhandler.properties

Systemwalker Service Catalog Managerが提供するWebサービスへの完全URL(例: https://myServer:8081/ServiceProvisioningService/v1.5/BASIC?wsdl)と、アプリケーションが提供するカスタムログインモジュールの相対URLを指定したプロパティファイル。カスタム・ログインモジュールはトークンハンドラーと同じマシン上の同じコンテキスト上に登録する必要があります。

WEB-INF/web.xml

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

WEB-INF/classes/com/fujitsu/bes/integrationhelper/LogoutListener.class

ログアウトリスナのクラス

インテグレーションヘルパーで提供するトークンハンドラとログアウトリスナーの機能を、以下の図に示します(グレーで示されているコンポーネントが、Systemwalker Service Catalog Managerで提供されるものです)。

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

Java以外の言語で開発したアプリケーションの場合は、トークンハンドラーとログアウトリスナを新たに実装してください。セッションサービスの以下のオペレーションの呼び出しを実装する必要があります(“第2章 プラットフォームサービス”を参照)。

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

Systemwalker Service Catalog Managerが送信するログイン要求は、次のHTTPパラメーターを含んでいます。

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

  1. インテグレーションパッケージに含まれるIntegrationhelper.warパッケージを任意の場所に解凍します。

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

    • Systemwalker Service Catalog ManagerのパブリックWebサービスAPIのポート番号

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

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

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

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

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

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

ログインアクセスの場合には、アプリケーションの技術サービス定義のloginPath属性に、トークンハンドラーのパスを登録してください。

詳細は“運用ガイド(技術サービス開発部門編)”を参照してください。

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

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

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

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