ページの先頭行へ戻る
Big Data Integration ServerV1.5.0 EDI連携/DB連携編ユーザーズガイド
FUJITSU Software

2.4.8 任意の認証サービスとの連携

EDI連携機能では、標準で認証サービスFJCloud-Oと連携することができます。

FJCloud-O以外の認証サービスと連携する場合は、連携する認証サービス用に新規クラスを実装してください。

ここではEclipseを用いて開発する手順を説明します。

2.4.8.1 事前準備

インストール後に配備されるTicket.warを用いて、新規クラスを実装します。

/opt/FJSVbsb/bdpp/products/EDI_COOPERATION/api/Ticket.war
2.4.8.1.1 WARのインポート

Ticket.warを用いてWebプロジェクトを作成します。

  1. メニューバーから[ファイル] > [インポート]を選択します。

  2. インポート・ウィザードの選択で[Web] > [WARファイル]を選択し、[次へ]をクリックします。

  3. WARインポートで[参照]をクリックし、Ticket.warを選択します。

  4. [完了]をクリックして、Webプロジェクトにデータを取り込みます。

2.4.8.1.2 EclipseへのTomcat登録

ビルド時に必要なライブラリーをビルドパスに追加します。

ランタイム環境の追加

  1. メニューバーから[ウィンドウ] > [設定]を選択します。

  2. [サーバー] > [ランタイム環境] > [追加]を選択します。

  3. 事前にインストールしたApache Tomcatのバージョンを選択し、[次へ]をクリックします。

  4. [参照]をクリックし、Apache Tomcatのインストールディレクトリを選択し、[完了]をクリックします。

  5. [適用して閉じる]をクリックして、設定を反映します。

ビルドパスの設定

  1. プロジェクトを右クリックします。

  2. [ビルドパス] > [ビルドパスの構成]をクリックします。

  3. [ライブラリー]タブ > [ライブラリーの追加]をクリックします。

  4. [サーバー・ランタイム]を選択し、[次へ]をクリックします。

  5. 事前にインストールしたApache Tomcatを選択します。

  6. [適用して閉じる]をクリックして、設定を反映します。

2.4.8.2 新規クラスの実装

認証サービスの追加には、下記のファイルの修正と新規作成が必要です。

種別

格納場所

ファイル名

概要

修正

src/main/java/com/fujitsu/

bdis/ticket/api

Init.java

checkSettingProperties関数に利用する認証サービス用の処理を追加

修正

src/main/java/com/fujitsu/

bdis/ticket/common

Constants.java

許可サービス名のリストに利用する認証サービスを追加

修正

UserInfoFactory.java

新規クラスの呼び出し処理を追記

新規

UserInfoOptionService.java(任意)

追加する認証サービスのユーザー情報、認証認可エンドポイントのポリシーを扱うクラスを実装

Init.java

checkSettingProperties関数に利用する認証サービス用の処理を追加します。

記述例
private void checkSettingPropeties() throws PropertyException {
<省略>
if(authServiceName.equals("option_service")) {
if(userInfoUrl.isEmpty()) {
throw new PropertyException(String.format(msgFormat, "user_info_url"));
}
} <省略> }

Constants.java

許可サービス名のリストALLOWED_SERVICE_NAME_LISTに、利用する認証サービス名を追加します。

記述例
   public static final List<String> ALLOWED_SERVICE_NAME_LIST;
   static {
	   List<String> list = new ArrayList<String>();
	   list.add("noauth");
	   list.add("fjcloud-o");
   list.add("option_service");
	   ALLOWED_SERVICE_NAME_LIST = Collections.unmodifiableList(list);
   }

UserInfoFactroy.java

UserInfoFactoryクラスに、新規作成するクラスのインスタンスの作成処理を追加します。

記述例
// 認証元のサービス名(追加)
private static final String AUTH_SERVICE_NAME_OPTION = "option_service" ;

public static AbstractUserInfo createInstance() throws SecurityException, IOException, LogException, TicketException {
  <省略> 
  if(AUTH_SERVICE_NAME_OPTION.equals(auth_service_name) {
return new
UserInfoOptionService();
)
<省略> }

UserInfoOptionService.java

抽象クラスAbstractUserInfoを継承して、追加する認証サービスのユーザー情報、認証認可エンドポイントのポリシーを扱うクラスを実装します。

抽象メソッドgetUserInfoをオーバーライドして、追加する認証サービスからユーザー情報を取得、抽出する処理を記述してください。

関数仕様例

形式

public getUserInfo (HttpServletRequest request) throw AuthenticationException, LogException, UserInfoException

概要

リクエストからユーザー情報を取得する関数

パラメーター

名称

説明

HttpServletRequest

request

リクエストパラメーター

返却値

Map<String,String>

user_info

リクエストに含まれていたユーザー情報

正常処理

  1. 認証トークンの取得

    格納抽出APIのリクエストヘッダからトークンを取得

  2. トークンチェック

    認証トークンがない場合はエラーを発生

  3. 認証サービスの利用者情報取得APIを実行

    リクエストメソッド: GET

    リクエストヘッダー: 認証トークン

    URL: 格納抽出APIの設定ファイルsetting.propertiesのプロパティuser_info_urlの値

  4. 下記ユーザー情報が取得できなかった場合はエラーを発生

    • ユーザーID

    • ユーザーの属性

  5. ユーザー情報を返却

エラー処理

エラー名称

発生条件

LogException

ログ書き込み時

AuthenticationException

トークンチェック時

UserInfoException

上記以外のエラーの場合

2.4.8.3 設定ファイルの変更

格納抽出APIの設定ファイルsetting.propertiesを下記のとおり修正してください。

プロパティ名

説明

auth_service_name

UserInfoFactroy.javaに記述した認証元のサービス名を設定します。

user_info_url

ユーザー情報を取得しにいくURLを設定します。

2.4.8.4 WARのエクスポートと配備

新規クラスを追加したWARファイルを作成し、Apache Tomcatへ配備します。

2.4.8.4.1 WARのエクスポート
  1. メニューバーから[ファイル] > [エクスポート]を選択します。

  2. エクスポート・ウィザードの選択で[Web] > [WARファイル]を選択し、[次へ]をクリックします。

  3. WARエクスポートで[参照]をクリックし、名前を付けて保存で[ファイル名]Ticket、[ファイルの種類].warを設定し、[保存]をクリックします。

  4. [完了]をクリックして、WARファイルをエクスポートします。

2.4.8.4.2 WARの配備

WARのエクスポートで出力したTicket.warを下記のディレクトリへ配備後、Apache Tomcatを再起動してください。

{Apache Tomcatのインストールディレクトリ}/webapps