Cosminexus V11 アプリケーションサーバ 機能解説 セキュリティ管理機能編

解説書

3021-3-J09-60

前書き

対象製品

マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」の前書きの対象製品の説明を参照してください。

輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

HITACHI，Cosminexus，DABroker，HiRDB，JP1，Keymate，OpenTP1，TPBroker，uCosminexusは，株式会社 日立製作所の商標または登録商標です。

EclipseおよびJakartaは，Eclipse Foundation, Inc.の商標です。

IBMは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

Microsoft，Active Directory，Azure，SQL Server，Windows，Windows Server は，マイクロソフト 企業グループの商標です。

Oracle(R)，Java ，MySQL及びNetSuite は，Oracle，その子会社及び関連会社の米国及びその他の国における登録商標です。

Red Hat, and Red Hat Enterprise Linux are registered trademarks of Red Hat, Inc. in the United States and other countries. Linux(R) is the registered trademark of Linus Torvalds in the U.S. and other countries.

Red Hat，およびRed Hat Enterprise Linuxは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。Linux(R)は，米国およびその他の国におけるLinus Torvalds氏の登録商標です。

Tivoliは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

UNIXは，The Open Groupの登録商標です。

その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。

Eclipseは，開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

Portions of this software were developed at the National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign.

This product includes software developed by the University of California, Berkeley and its contributors.

This software contains code derived from the RSA Data Security Inc. MD5 Message-Digest Algorithm, including various modifications by Spyglass Inc., Carnegie Mellon University, and Bell Communications Research, Inc (Bellcore).

Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. The original software is available from 　ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

This product includes software developed by Ralf S. Engelschall <rse@engelschall.com> for use in the mod_ssl project (http://www.modssl.org/).

発行

2024年 9月 3021-3-J09-60

著作権

All Rights Reserved. Copyright (C) 2020, 2024, Hitachi, Ltd.

変更内容

変更内容(3021-3-J09-60) uCosminexus Application Server 11-50，uCosminexus Client 11-50，uCosminexus Developer 11-50，uCosminexus Service Architect 11-50，uCosminexus Service Platform 11-50

追加・変更内容

変更個所

アプリケーションサーバ 11-50での主な機能変更についての説明を追加した。

1.4

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルをお読みになる際の前提情報については，マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」のはじめにの説明を参照してください。

第1編　概要

1　アプリケーションサーバの機能

この章では，アプリケーションサーバの機能の分類と目的，および機能とマニュアルの対応について説明します。また，このバージョンで変更した機能についても説明しています。

1.1　機能の分類

アプリケーションサーバは，Java EE 8に対応したJ2EEサーバを中心としたアプリケーションの実行環境を構築したり，実行環境上で動作するアプリケーションを開発したりするための製品です。Java EEの標準仕様に準拠した機能や，アプリケーションサーバで独自に拡張された機能など，多様な機能を使用できます。目的や用途に応じた機能を選択して使用することで，信頼性の高いシステムや，処理性能に優れたシステムを構築・運用できます。

アプリケーションサーバの機能は，大きく分けて，次の二つに分類できます。

アプリケーションの実行基盤としての機能

アプリケーションの実行基盤を運用・保守するための機能

二つの分類は，機能の位置づけや用途によって，さらに詳細に分類できます。アプリケーションサーバのマニュアルは，機能の分類に合わせて提供しています。

アプリケーションサーバの機能の分類と対応するマニュアルについて，次の図に示します。

図1‒1　アプリケーションサーバの機能の分類と対応するマニュアル

注※1

マニュアル名称の「アプリケーションサーバ」を省略しています。

注※2

アプリケーションサーバでは，SOAP WebサービスとRESTful Webサービスを実行できます。目的によっては，マニュアル「アプリケーションサーバ Webサービス開発ガイド」以外の次のマニュアルも参照してください。

SOAPアプリケーションを開発・実行する場合

アプリケーションサーバ SOAPアプリケーション開発の手引

SOAP WebサービスやSOAPアプリケーションのセキュリティを確保する場合

XML Security - Core ユーザーズガイド

アプリケーションサーバ Webサービスセキュリティ構築ガイド

XMLの処理について詳細を知りたい場合

XML Processor ユーザーズガイド

ここでは，機能の分類について，マニュアルとの対応と併せて説明します。

1.1.1　アプリケーションの実行基盤としての機能

アプリケーションとして実装されたオンライン業務やバッチ業務を実行する基盤となる機能です。システムの用途や求められる要件に応じて，使用する機能を選択します。

アプリケーションの実行基盤としての機能を使用するかどうかは，システム構築やアプリケーション開発よりも前に検討する必要があります。

アプリケーションの実行基盤としての機能について，分類ごとに説明します。

(1)　アプリケーションを動作させるための基本的な機能（基本・開発機能）

アプリケーション（J2EEアプリケーション）を動作させるための基本的な機能が該当します。主にJ2EEサーバの機能が該当します。

アプリケーションサーバでは，Java EE 8に対応したJ2EEサーバを提供しています。J2EEサーバでは，標準仕様に準拠した機能のほか，アプリケーションサーバ独自の機能も提供しています。

基本・開発機能は，機能を使用するJ2EEアプリケーションの形態に応じて，さらに三つに分類できます。アプリケーションサーバの機能解説のマニュアルは，この分類に応じて分冊されています。

それぞれの分類の概要を説明します。

Webアプリケーションを実行するための機能（Webコンテナ）

Webアプリケーションの実行基盤であるWebコンテナの機能，およびWebコンテナとWebサーバが連携して実現する機能が該当します。

Enterprise Beanを実行するための機能（EJBコンテナ）

Enterprise Beanの実行基盤であるEJBコンテナの機能が該当します。また，Enterprise Beanを呼び出すEJBクライアントの機能も該当します。

WebアプリケーションとEnterprise Beanの両方で使用する機能（コンテナ共通機能）

Webコンテナ上で動作するWebアプリケーションおよびEJBコンテナ上で動作するEnterprise Beanの両方で使用できる機能が該当します。

(2)　Webサービスを開発するための機能

Webサービスの実行環境および開発環境としての機能が該当します。

アプリケーションサーバでは，次のエンジンを提供しています。

JAX-WS仕様に従ったSOAPメッセージのバインディングを実現するJAX-WSエンジン

JAX-RS仕様に従ったRESTful HTTPメッセージのバインディングを実現するJAX-RSエンジン

(3)　信頼性や性能などを向上させるために拡張されたアプリケーションサーバ独自の機能（拡張機能）

アプリケーションサーバで独自に拡張された機能が該当します。バッチサーバ，CTM，データベースなど，J2EEサーバ以外のプロセスを使用して実現する機能も含まれます。

アプリケーションサーバでは，システムの信頼性を高め，安定稼働を実現するための多様な機能が拡張されています。また，J2EEアプリケーション以外のアプリケーション（バッチアプリケーション）をJavaの環境で動作させる機能も拡張しています。

(4)　システムのセキュリティを確保するための機能（セキュリティ管理機能）

アプリケーションサーバを中心としたシステムのセキュリティを確保するための機能が該当します。不正なユーザからのアクセスを防止するための認証機能や，通信路での情報漏えいを防止するための暗号化機能などがあります。

1.1.2　アプリケーションの実行基盤を運用・保守するための機能

アプリケーションの実行基盤を効率良く運用したり，保守したりするための機能です。システムの運用開始後に，必要に応じて使用します。ただし，機能によっては，あらかじめ設定やアプリケーションの実装が必要なものがあります。

アプリケーションの実行基盤を運用・保守するための機能について，分類ごとに説明します。

(1)　システムの起動・停止など日常的な運用をするための機能（運用機能）

システムの起動や停止，アプリケーションの開始や停止，入れ替えなどの，日常運用で使用する機能が該当します。

(2)　システムの利用状況を監視するための機能（監視機能）

システムの稼働状態や，リソースの枯渇状態などを監視するための機能が該当します。また，システムの操作履歴など，監査で使用する情報を出力する機能も該当します。

(3)　ほかの製品と連携して運用するための機能（連携機能）

JP1やクラスタソフトウェアなど，ほかの製品と連携して実現する機能が該当します。

(4)　トラブル発生時などに対処するための機能（保守機能）

トラブルシューティングのための機能が該当します。トラブルシューティング時に参照する情報を出力するための機能も含みます。

(5)　旧バージョンの製品から移行するための機能（移行機能）

旧バージョンのアプリケーションサーバから新しいバージョンのアプリケーションサーバに移行するための機能が該当します。

(6)　旧バージョンの製品との互換のための機能（互換機能）

旧バージョンのアプリケーションサーバとの互換用の機能が該当します。なお，互換機能については，対応する推奨機能に移行することをお勧めします。

1.1.3　機能とマニュアルの対応

アプリケーションサーバの機能解説のマニュアルは，機能の分類に合わせて分冊されています。

機能の分類と，それぞれの機能について説明しているマニュアルとの対応を次の表に示します。

表1‒1　機能の分類と機能解説のマニュアルの対応

分類

機能

マニュアル※1

基本・開発機能

Webコンテナ

基本・開発編(Webコンテナ)

JSFおよびJSTLの利用

JAX-RS 2.1の利用

WebSocket

NIO HTTPサーバ

サーブレットおよびJSPの実装

セッションマネージャの指定機能

EJBコンテナ

基本・開発編(EJBコンテナ)

EJBクライアント

Enterprise Bean実装時の注意事項

ネーミング管理

基本・開発編(コンテナ共通機能)

リソース接続とトランザクション管理

OpenTP1からのアプリケーションサーバの呼び出し（TP1インバウンド連携機能）

JPA 2.2の利用

CJMSプロバイダ

JavaMailの利用

アプリケーションサーバでのCDIの利用

アプリケーションサーバでのBean Validationの利用

Java Batch

JSON-P

JSON-B

Concurrency Utilities

アプリケーションの属性管理

アノテーションの使用

J2EEアプリケーションの形式とデプロイ

コンテナ拡張ライブラリ

ライブラリ競合回避機能

パッケージ名変換機能

拡張機能

バッチサーバによるアプリケーションの実行

拡張編

CTMによるリクエストのスケジューリングと負荷分散

バッチアプリケーションのスケジューリング

J2EEサーバ間のセッション情報の引き継ぎ（セッションフェイルオーバ機能）

データベースセッションフェイルオーバ機能

明示管理ヒープ機能を使用したFullGCの抑止

アプリケーションのユーザログ出力

セキュリティ管理機能

統合ユーザ管理による認証

セキュリティ管理機能編※2

アプリケーションの設定による認証

SSL/TLS通信でのTLSv1.2の使用

APIによる直接接続を使用する負荷分散機の運用管理機能からの制御

運用機能

システムの起動と停止

運用／監視／連携編

J2EEアプリケーションの運用

監視機能

稼働情報の監視（稼働情報収集機能）

リソースの枯渇監視

監査ログ出力機能

データベース監査証跡連携機能

運用管理コマンドによる稼働情報の出力

Managementイベントの通知とManagementアクションによる処理の自動実行

CTMの稼働統計情報の収集

コンソールログの出力

連携機能

JP1と連携したシステムの運用

システムの集中監視（JP1/IMとの連携）

ジョブによるシステムの自動運転（JP1/AJSとの連携）

監査ログの収集および一元管理（JP1/Audit Management - Managerとの連携）

クラスタソフトウェアとの連携

1:1系切り替えシステム（クラスタソフトウェアとの連携）

相互系切り替えシステム（クラスタソフトウェアとの連携）

N:1リカバリシステム（クラスタソフトウェアとの連携）

ホスト単位管理モデルを対象にした系切り替えシステム（クラスタソフトウェアとの連携）

保守機能

トラブルシューティング関連機能

保守／移行編

性能解析トレースを使用した性能解析

製品のJavaVM（以降，JavaVMと略す場合があります）の機能

移行機能

旧バージョンのアプリケーションサーバからの移行

推奨機能への移行

互換機能

基本・開発機能の互換機能

互換編

拡張機能の互換機能

注※1　マニュアル名称の「アプリケーションサーバ 機能解説」を省略しています。

注※2　このマニュアルです。

1.2　システムの目的と機能の対応

アプリケーションサーバでは，構築・運用するシステムの目的に合わせて，適用する機能を選択する必要があります。

この節では，セキュリティを確保するためにアプリケーションサーバが提供しているそれぞれの機能をどのようなシステムの場合に使用するとよいかを示します。機能ごとに，次の項目への対応を示しています。

信頼性

高い信頼が求められるシステムの場合に使用するとよい機能です。

アベイラビリティ（安定稼働性）およびフォールトトレランス（耐障害性）を高める機能や，ユーザ認証などのセキュリティを高めるための機能が該当します。

性能

性能を重視したシステムの場合に使用するとよい機能です。

システムのパフォーマンスチューニングで使用する機能などが該当します。

運用・保守

効率の良い運用・保守をしたい場合に使用するとよい機能です。

拡張性

システム規模の拡大・縮小および構成の変更への柔軟な対応が必要な場合に使用するとよい機能です。

そのほか

そのほかの個別の目的に対応するための機能です。

また，セキュリティを確保するためにアプリケーションサーバが提供している機能には，Java EE標準機能とアプリケーションサーバが独自に拡張した機能があります。機能を選択するときには，必要に応じて，Java EE標準への準拠についても確認してください。

1.2.1　認証のための機能

認証のための機能を次の表に示します。システムの目的に合った機能を選択してください。機能の詳細については，参照先を確認してください。

表1‒2　認証のための機能とシステムの目的の対応

機能

システムの目的

Java EE標準への準拠

参照先

信頼性

性能

運用・

保守

拡張性

そのほか

標準

拡張

統合ユーザ管理

○

−

○

−

−

○

○

5章

アプリケーションの設定による認証

○

−

−

−

−

○

○

6章

（凡例）　○：対応する　　−：対応しない

注　「Java EE標準への準拠」の「標準」と「拡張」の両方に○が付いている機能は，Java EE標準の機能にアプリケーションサーバ独自の機能が拡張されていることを示します。「拡張」だけに○が付いている機能はアプリケーションサーバ独自の機能であることを示します。

1.2.2　暗号化のための機能

暗号化のための機能を次の表に示します。システムの目的に合った機能を選択してください。機能の詳細については，参照先を確認してください。

表1‒3　暗号化のための機能とシステムの目的の対応

機能

システムの目的

Java EE標準への準拠

参照先

信頼性

性能

運用・

保守

拡張性

そのほか

標準

拡張

SSL/TLS使用による認証情報とデータの暗号化

○

−

−

−

−

○

○

7章，マニュアル「HTTP Server」

Webサービスセキュリティの機能によるSOAPメッセージの暗号化

○

−

−

−

−

○

○

マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」

Webサービスセキュリティの機能で使用するXML

によるSOAPメッセージの暗号化でのXML署名・暗号処理機能

○

−

−

−

−

○

○

マニュアル「XML Security - Core ユーザーズガイド」

（凡例）　○：対応する　　−：対応しない

注　「Java EE標準への準拠」の「標準」と「拡張」の両方に○が付いている機能は，Java EE標準の機能にアプリケーションサーバ独自の機能が拡張されていることを示します。「拡張」だけに○が付いている機能はアプリケーションサーバ独自の機能であることを示します。

1.2.3　不正処理の実行防止のための機能

不正処理の実行防止のための機能を次の表に示します。システムの目的に合った機能を選択してください。機能の詳細については，参照先を確認してください。

表1‒4　不正処理の実行防止のための機能とシステムの目的の対応

機能

システムの目的

Java EE標準への準拠

参照先

信頼性

性能

運用・

保守

拡張性

そのほか

標準

拡張

SecurityManagerによるWebコンテナの実行時の保護

○

−

−

−

−

○

○

2.2.5

（凡例）　○：対応する　　−：対応しない

注　「Java EE標準への準拠」の「標準」と「拡張」の両方に○が付いている機能は，Java EE標準の機能にアプリケーションサーバ独自の機能が拡張されていることを示します。「拡張」だけに○が付いている機能はアプリケーションサーバ独自の機能であることを示します。

1.2.4　そのほかの機能

ほかのプログラムとの連携によるセキュアな通信の要求に従う機能を次の表に示します。システムの目的に合った機能を選択してください。機能の詳細については，参照先を確認してください。

表1‒5　ほかのプログラムとの連携によるセキュアな通信の要求に従う機能とシステムの目的の対応

機能

システムの目的

Java EE標準への準拠

参照先

信頼性

性能

運用・

保守

拡張性

そのほか

標準

拡張

APIによる直接接続を使用する負荷分散機の運用管理機能からの制御

−

−

−

−

○

−

−

8章

（凡例）　○：対応する　　−：対応しない

1.3　このマニュアルに記載している機能の説明

ここでは，このマニュアルで機能を説明するときの分類の意味と，分類を示す表の例について説明します。

1.3.1　分類の意味

このマニュアルでは，各機能について，次の五つに分類して説明しています。マニュアルを参照する目的によって，必要な個所を選択して読むことができます。

解説

機能の解説です。機能の目的，特長，仕組みなどについて説明しています。機能の概要について知りたい場合にお読みください。

実装

コーディングの方法やDDの記載方法などについて説明しています。アプリケーションを開発する場合にお読みください。

設定

システム構築時に必要となるプロパティなどの設定方法について説明しています。システムを構築する場合にお読みください。

運用

運用方法の説明です。運用時の手順や使用するコマンドの実行例などについて説明しています。システムを運用する場合にお読みください。

注意事項

機能を使用するときの全般的な注意事項について説明しています。注意事項の説明は必ずお読みください。

1.3.2　分類を示す表の例

機能説明の分類については，表で説明しています。表のタイトルは，「この章の構成」または「この節の構成」となっています。

次に，機能説明の分類を示す表の例を示します。

機能説明の分類を示す表の例

表X-1　この章の構成（○○機能）

分類

タイトル

参照先

解説

○○機能とは

X.1

実装

アプリケーションの実装

X.2

DDおよびcosminexus.xml※での定義

X.3

設定

実行環境での設定

X.4

運用

○○機能を使用した運用

X.5

注意事項

○○機能使用時の注意事項

X.6

注※

cosminexus.xmlについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「16.　アプリケーションの属性管理」を参照してください。

ポイント

cosminexus.xmlを含まないアプリケーションのプロパティ設定

cosminexus.xmlを含まないアプリケーションでは，実行環境へのインポート後にプロパティを設定，または変更します。設定済みのプロパティも実行環境で変更できます。

実行環境でのアプリケーションの設定は，サーバ管理コマンドおよび属性ファイルで実施します。サーバ管理コマンドおよび属性ファイルでのアプリケーションの設定については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「3.5.2　J2EEアプリケーションのプロパティの設定手順」を参照してください。

属性ファイルで指定するタグは，DDまたはcosminexus.xmlと対応しています。DDまたはcosminexus.xmlと属性ファイルのタグの対応についてはマニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「2.　アプリケーション属性ファイル（cosminexus.xml）」を参照してください。

なお，各属性ファイルで設定するプロパティは，アプリケーション統合属性ファイルでも設定できます。

1.4　アプリケーションサーバ 11-50での主な機能変更

この節では，アプリケーションサーバ 11-50での主な機能の変更について，変更目的ごとに説明します。

説明内容は次のとおりです。

アプリケーションサーバ 11-50で変更になった主な機能と，その概要を説明しています。機能の詳細については参照先の記述を確認してください。「参照先マニュアル」および「参照個所」には，その機能についての主な記載個所を記載しています。

「参照先マニュアル」に示したマニュアル名の「アプリケーションサーバ」は省略しています。

1.4.1　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表1‒6　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

接続できるデータベースにAmazon RDS for SQL Serverを追加

DB Connectorを使用して接続できるデータベースにAmazon RDS for SQL Serverを追加しました。

機能解説 基本・開発編(コンテナ共通機能)

3.6

マニュアルに「アプリケーションサーバでのSpringの利用」の章を追加

マニュアルに，アプリケーションサーバでのSpring Framework 6の利用方法について記載を追加しました。

機能解説 基本・開発編(コンテナ共通機能)

21章

2　アプリケーションサーバでのセキュリティ管理

この章では，アプリケーションサーバのセキュリティを管理するための機能および方法について説明します。この章の内容を基に，確保したいセキュリティの内容やレベルに応じて，どの機能または方法を適用すればよいかを判断してください。

2.1　この章の構成

アプリケーションサーバでは，システムのセキュリティを管理するための機能を提供しています。これらの機能を目的に応じて適切に利用することで，必要なセキュリティを確保したシステムを構築・運用できます。

この章の構成を次の表に示します。

表2‒1　この章の構成（アプリケーションサーバでのセキュリティ管理）

分類

タイトル

参照先

解説

セキュリティを確保するための観点

2.2

セキュリティを確保する方法および機能の詳細

2.3

注意事項

セキュリティを確保する方法および機能を使用する場合の注意事項

2.4

注　「実装」，「設定」，および「運用」について，この章での説明はありません。

2.2　セキュリティを確保するための観点

アプリケーションサーバのセキュリティを確保するためには，次の観点での検討が必要です。

セキュリティを確保するためのシステム構成を検討する

システムをセキュアに運用する方法を検討する

不正なユーザからのアクセスを防止する

通信路でのセキュリティを確保する

不正な処理の実行を防止する

そのほかの観点を確認する

2.2.1　セキュリティを確保するためのシステム構成を検討する

セキュリティを確保するための機器またはソフトウェアをシステム上に適切に配置し，外部からの不正な侵入を防止するためのシステム構成を検討します。

ファイアウォールを使用すると，外部のネットワークと内部のネットワーク間のアクセスを制御できます。アクセスを許可するクライアントや通信をあらかじめ特定し，決められたルールに従って通信を許可したり破棄したりすることで，外部ネットワークからの不正なアクセスを防止します。さらに，侵入検知システム（IDS）を使用すると，通信回線を監視して，通信パターンによって不正なアクセスを判断し，対処できるようになります。

リバースプロキシサーバを配置すると，Webサーバ上に配置した重要な情報を含むコンテンツが悪意のあるクライアントから直接アクセスされることを防止できます。クライアントからのリクエストはリバースプロキシサーバが受け付け，コンテンツが配置されたWebサーバへのアクセスはリバースプロキシサーバから実行するように制御できます。

また，暗号化によって通信路のセキュリティを確保している場合は，暗号化・複合化の処理をSSLアクセラレータで実施することで，Webサーバやアプリケーションサーバに負荷を掛けることなく実現できます。

2.2.2　システムをセキュアに運用する

構築したシステムは，適切に運用することでセキュリティを確保できます。

運用の前に，どのユーザによる運用を許可するのか，どのような情報を管理するのか，システムの物理的な配置はどうするかなどを検討します。

また，検討した内容に沿って正しく運用されるためには，必要に応じて手順書を整備した上で，正しく運用されているかを適切にチェックする仕組みを作ることも必要です。

2.2.3　不正なユーザからのアクセスを防止する（認証機能）

システムで管理している情報を安全に管理し，セキュリティを確保するためには，認証機能によって不正なユーザからのシステムへのアクセスを防止することが有効です。

アプリケーションサーバでは，次の認証機能を提供しています。

統合ユーザ管理フレームワークを使用した，システムにログインするユーザの認証

システムにログインするユーザの情報を統合管理することで，複数のアプリケーションへのシングルサインオンを実現できる機能です。

<security-constraint>要素の設定によるWebコンテナでの認証

Webコンテナの機能を使用して，許可したユーザだけにアプリケーションに対するアクセスを許可する機能です。認証で使用する情報は，DD（web.xml）の<security-constraint>要素で定義します。

<security-identity>要素の設定によるEJBコンテナでの認証

EJBコンテナの機能を使用して，許可したユーザだけにアプリケーションに対するアクセスを許可する機能です。認証で使用する情報は，DD（ejb-jar.xml）またはcosminexus.xmlの<security-identity>要素で定義します。

また，<method-permission>要素に設定したメソッドごとに，ロールに設定したユーザごとに実行できるメソッドを制御することもできます。

なお，アプリケーションサーバが提供するAPIを使用してEJBクライアントアプリケーションを実装することで，EJBクライアントアプリケーションからのアクセスを認証することもできます。

2.2.4　通信路でのセキュリティを確保する（暗号化機能）

クライアントとアプリケーションサーバ間での通信路での情報の不正漏えいを防止するためには，やり取りする情報を暗号化することが有効です。

アプリケーションサーバでは，次の暗号化機能を提供しています。

SSLによる暗号化

WebサーバおよびJ2EEサーバの機能を使用して，通信路のデータを暗号化する機能です。

Webサービスセキュリティの機能によるSOAPメッセージの暗号化

Webサービスセキュリティの機能を使用して，Webサービスで送受信するSOAPメッセージを暗号化したり，SOAPメッセージにXML署名を付与したりできます。

2.2.5　不正な処理の実行を防止する

J2EEサーバで不正な処理が実行されることを防ぐために，Java SEのSecurityManagerの機能によるJ2EEサーバの実行時の保護ができます。

J2EEサーバの実行時の保護では，次に示すような現象を防ぐことができます。

内部でSystem.exit()などを発行するような不正なサーブレット，EJBによって，J2EEサーバ全体が勝手に終了する。

システムプロパティなどを勝手に書き換えるような不正なサーブレット，EJBによって，J2EEサーバの実行に不具合が生じる。

なお，J2EEサーバの保護はデフォルトで有効になっています。使用しない場合は，J2EEサーバを開始するcjstartsvコマンドに-nosecurityオプションを指定してください。

J2EEサーバの実行時保護を無効にした場合，java.lang.SystemのsetSecurityManagerメソッドは使用できません。使用した場合，J2EEサーバの実行に不具合が生じるおそれがあります。また，該当するJ2EEサーバプロセスからEJBを呼び出す場合にダイナミッククラスローディングは使用できません。

2.2.6　そのほかの観点を確認する

ほかのプログラムとの連携でセキュアな通信を要求される場合，要求に従った設定をします。

2.3　セキュリティを確保する方法および機能の詳細

この章で説明した観点でセキュリティを確保する方法および機能の詳細は，次の表に示す参照先で説明しています。

表2‒2　セキュリティを確保する方法および機能の詳細

観点

機能

参照先

セキュリティを確保するためのシステム構成を検討する

−

3章，4章

システムをセキュアに運用する

−

4章

不正なユーザからのアクセスを防止する（認証機能）

統合ユーザ管理フレームワークを使用した，システムにログインするユーザの認証

5章

DDの設定によるWebコンテナでの認証

6.2

セキュリティアイデンティティを使用した認証

6.3

通信路でのセキュリティを確保する（暗号化機能）

SSLによる暗号化（Webサーバ側）

マニュアル「HTTP Server」

SSL/TLS使用による認証情報とデータの暗号化

7章

Webサービスセキュリティの機能によるSOAPメッセージの暗号化

マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」

Webサービスセキュリティの機能で使用するXML

によるSOAPメッセージの暗号化でのXML署名・暗号処理機能

マニュアル「XML Security - Core ユーザーズガイド」

不正な処理の実行を防止する

SecurityManagerによるWebコンテナの実行時の保護

2.2.5

そのほかの観点を確認する

APIによる直接接続を使用する負荷分散機の運用管理機能からの制御

8章

（凡例）−：該当なし。

2.4　セキュリティを確保する方法および機能を使用する場合の注意事項

2.4.1　証明書について

アプリケーションサーバに含まれるcacerts証明書ファイルには，証明書を同梱していません。証明書が必要な場合は，個別に入手してインポートする必要があります。インポート手順については，次のURLを参照してください。

Windowsの場合

http://docs.oracle.com/javase/jp/8/docs/technotes/tools/windows/keytool.html

UNIXの場合

http://docs.oracle.com/javase/jp/8/docs/technotes/tools/unix/keytool.html

第2編　システム設計

3　セキュリティを確保するためのシステム構成

この章では，J2EEアプリケーション実行基盤でセキュリティを確保するためのシステム構成について説明します。コンポーネントの種類に応じたファイアウォールの配置を検討する場合，およびDMZへのリバースプロキシの配置を検討する場合の構成について，システム構成例に従って説明します。

3.1　この章の構成

この章では，セキュリティを確保するためのシステム構成について説明します。この章の構成を次の表に示します。

表3‒1　この章の構成（セキュリティを確保するためのシステム構成）

分類

タイトル

参照先

解説

ファイアウォールを使用する構成を検討する

3.2

DMZへのリバースプロキシの配置を検討する

3.3

注　「実装」，「設定」，「運用」，および「注意事項」について，この章での説明はありません。

3.2　ファイアウォールを使用する構成を検討する

この節では，ファイアウォールを使用して，セキュリティを確保するための構成について説明します。

なお，ここでは，アクセスポイントになるコンポーネントの種類に応じたファイアウォールの配置位置について説明します。このほかのセキュリティの考え方については，「4.　セキュアなシステムの検討」を参照してください。

3.2.1　サーブレットとJSPに対するファイアウォールの配置

サーブレットとJSPに対するアクセスをファイアウォール経由にする構成について説明します。

(1)　システム構成の特徴

Webクライアント側から見たサーブレットとJSPの手前に，ファイアウォールを配置します。

サーブレットとJSPに対するアクセスをファイアウォール経由にする構成の例を次の図に示します。なお，この図は，Webサーバ連携の場合の例です。

図3‒1　サーブレットとJSPに対するアクセスをファイアウォール経由にする構成

これ以外の例については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.2　システム構成の説明について」を参照してください。

特徴

サーブレットとJSPに対するアクセスをファイアウォール経由にすることで，システムへの第三者の不正侵入，アプリケーションで扱うデータの漏洩，および第三者による不正な運用を防ぎます。

クライアントからのアクセスの流れ

サーブレットとJSPに対するクライアントからのアクセスは，すべてファイアウォール経由で実行されます。

(2)　それぞれのマシンに必要なソフトウェアと起動するプロセス

ファイアウォールを使用する場合にアプリケーションサーバマシンおよびクライアントマシンに必要なソフトウェアと起動するプロセスは，サーブレットとJSPをアクセスポイントにする構成と同じです。

サーブレットとJSPをアクセスポイントにする構成については，次の個所を参照してください。

マニュアル「アプリケーションサーバ システム設計ガイド」の「3.4.1　サーブレットとJSPをアクセスポイントに使用する構成（Webサーバ連携の場合）」

マニュアル「アプリケーションサーバ システム設計ガイド」の「3.4.2　サーブレットとJSPをアクセスポイントに使用する構成（NIO HTTPサーバに直接アクセスする場合）」

3.2.2　Session BeanとEntity Beanに対するファイアウォールの配置

Session BeanとEntity Beanに対するアクセスをファイアウォール経由にする構成です。

(1)　システム構成の特徴

EJBクライアント側から見たSession BeanとEntity Beanの手前に，ファイアウォールを配置します。

Session BeanとEntity Beanに対するアクセスをファイアウォール経由にする構成の例を次の図に示します。

図3‒2　Session BeanとEntity Beanに対するアクセスをファイアウォール経由にする構成

これ以外の凡例については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.2　システム構成の説明について」を参照してください。

特徴

Session BeanとEntity Beanに対するアクセスをファイアウォール経由にすることで，システムへの第三者の不正侵入，アプリケーションで扱うデータの漏洩，および第三者による不正な運用を防ぎます。

クライアントからのアクセスの流れ

Session BeanとEntity Beanに対するEJBクライアントからのアクセスは，すべてファイアウォール経由で実行されます。

(2)　それぞれのマシンに必要なソフトウェアと起動するプロセス

ファイアウォールを使用する場合にアプリケーションサーバマシンおよびクライアントマシンに必要なソフトウェアと起動するプロセスは，Session BeanとEntity Beanをアクセスポイントにする構成と同じです。マニュアル「アプリケーションサーバシステム設計ガイド」の「3.4.3　Session BeanとEntity Beanをアクセスポイントに使用する構成」を参照してください。

3.2.3　リソースマネジャに対するファイアウォールの配置

リソースマネジャに対するアクセスをファイアウォール経由にする構成です。

(1)　システム構成の特徴

アプリケーション側から見たリソースマネジャの手前に，ファイアウォールを配置します。

リソースマネジャに対するアクセスをファイアウォール経由にする構成の例を次の図に示します。

図3‒3　リソースマネジャに対するアクセスをファイアウォール経由にする構成

これ以外の凡例については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.2　システム構成の説明について」を参照してください。

特徴

リソースマネジャに対するアクセスをファイアウォール経由にすることで，システムへの第三者の不正侵入，リソースマネジャで管理するデータの漏洩，および第三者による不正な運用を防ぎます。

クライアントからのアクセスの流れ

クライアントマシン上のWebブラウザからのリクエストは，Webサーバ経由でサーブレットとJSPに送信されます。サーブレットとJSPは，ローカルでSession Beanを呼び出します。Session Beanからデータベースへのアクセスが，ファイアウォール経由になります。

(2)　それぞれのマシンに必要なソフトウェアと起動するプロセス

トランザクションの使用方法に応じたソフトウェアとプロセスを起動してください。詳細は，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.6　トランザクションの種類を検討する」を参照してください。

3.3　DMZへのリバースプロキシの配置を検討する

この節では，DMZにリバースプロキシを配置してセキュリティを確保するための構成について説明します。

インターネットに接続するシステムの場合，ここで説明する構成を基に，リバースプロキシを配置する構成を検討してください。

なお，ここでは，使用するWebサーバの種類に応じた，リバースプロキシの配置について説明します。このほかのセキュリティの考え方については，「4.　セキュアなシステムの検討」を参照してください。

3.3.1　リバースプロキシの配置

NIO HTTPサーバを使用する場合にリバースプロキシを配置する構成について説明します。

インターネットに接続するシステムでNIO HTTPサーバを使用する場合は，ここで示す構成を基に，必ずDMZを確保して，リバースプロキシを配置する構成にしてください。

(1)　システム構成の特徴

Webブラウザとアプリケーションサーバの間にDMZを確保して，リバースプロキシサーバを配置する構成です。

NIO HTTPサーバを使用する場合にDMZにリバースプロキシを配置する構成の例を次の図に示します。

図3‒4　NIO HTTPサーバを使用する場合にDMZにリバースプロキシを配置する構成の例

これ以外の凡例については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.2　システム構成の説明について」を参照してください。

特徴

アプリケーションサーバへのアクセスはリバースプロキシサーバからだけになり，Webブラウザからアプリケーションサーバに直接アクセスされることを抑止できます。

通常，リバースプロキシ上にはHTMLなどの静的コンテンツは配置しません。

リクエストの流れ

サーブレットとJSPに対するクライアントからのアクセスは，リバースプロキシモジュールを組み込んだWebサーバ経由で実行されます。

また，ロードバランスクラスタを使用して負荷分散をする場合は，リバースプロキシサーバおよびアプリケーションサーバそれぞれに対して負荷分散機（レイヤ5スイッチ）を使用して負荷分散を実行できます。

ロードバランスクラスタ構成の場合に，DMZにリバースプロキシを配置する構成の例を次の図に示します。

図3‒5　NIO HTTPサーバを使用する場合にDMZにリバースプロキシを配置する構成の例（ロードバランスクラスタ構成の場合）

これ以外の凡例については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.2　システム構成の説明について」を参照してください。

特徴

アプリケーションサーバへのアクセスはリバースプロキシサーバだけからになり，Webブラウザからアプリケーションサーバに直接アクセスされることを抑止できます。

通常，リバースプロキシ上にはHTMLなどの静的コンテンツは配置しません。

リバースプロキシサーバおよびアプリケーションサーバへの負荷を分散してスケーラビリティと可用性を確保できます。

リクエストの流れ

サーブレットとJSPに対するクライアントからのアクセスは，一つ目の負荷分散機，リバースプロキシモジュールを組み込んだWebサーバ，および二つ目の負荷分散機経由で実行されます。

このとき，一つ目の負荷分散機は，Webブラウザからのアクセスを，複数のリバースプロキシサーバに対して振り分けて負荷を分散します。二つ目の負荷分散機は，リバースプロキシサーバからのアクセスを，複数のアプリケーションサーバに対して振り分けて負荷を分散します。二つ目の負荷分散機では，HTTPセッションのスティッキー（Sticky）やアフィニティ（Affinity）の関連づけも制御します。

なお，HTTPSを使用する場合は，一つ目の負荷分散機のフロントにSSLアクセラレータを配置する必要があります。

(2)　それぞれのマシンに必要なソフトウェアと起動するプロセス

それぞれのマシンに必要なソフトウェアとプロセスについて説明します。

(a)　リバースプロキシサーバマシン

リバースプロキシサーバマシンには，HTTP Serverをインストールします。

必ず起動するプロセスは次のとおりです。

Webサーバ

このWebサーバには，リバースプロキシモジュールが組み込まれている必要があります。

(b)　アプリケーションサーバマシン，運用管理サーバマシンおよびクライアントマシン

アプリケーションサーバマシン，運用管理サーバマシンおよびクライアントマシンに必要なソフトウェアと起動するプロセスは，サーブレットとJSPをアクセスポイントにする構成と同じです。マニュアル「アプリケーションサーバ システム設計ガイド」の「3.4.2　サーブレットとJSPをアクセスポイントに使用する構成（NIO HTTPサーバに直接アクセスする場合）」を参照してください。

4　セキュアなシステムの検討

業務システムを安全に稼働させ，扱うデータを確実に守るためには，システム設計の段階でセキュリティについて十分に検討しておく必要があります。この章では，セキュアなシステムを構築・運用するための考え方，正しい構築・運用手順，および監査の方法について説明します。

また，外部ネットワークを使用するシステムの場合に想定されるセキュリティ上の脅威を明確にし，それぞれに対して，ハードウェアおよびソフトウェアを使用して対策する方法についても説明します。

なお，この章は，J2EEアプリケーションを実行するシステムの場合に参照してください。バッチアプリケーションを実行するシステムの場合は該当しません。

4.1　この章の構成

この章では，セキュアなシステムを構築・運用するための考え方，正しい構築・運用手順，および監査の方法について説明します。この章の構成を次の表に示します。

表4‒1　この章の構成（セキュアなシステムの検討）

分類

タイトル

参照先

解説

セキュアなシステムの検討の概要

4.2

セキュアなシステムの構成の検討

4.3

システムの使用者の検討

4.4

システムが扱う資産の検討

4.5

セキュアなシステムの前提条件の確認

4.6

想定される脅威の分析

4.7

対策の検討

4.8

作業手順の検討

4.9

システムの監査方法の確認

4.10

外部ネットワークを使用するシステムでのセキュリティの検討

4.11

注　「実装」，「設定」，「運用」，および「注意事項」について，この章での説明はありません。

4.2　セキュアなシステムの検討の概要

システムを管理または運用するユーザがシステムを構築・運用していく過程や，システムが提供するサービスをエンドユーザが利用していく過程で，システムにはセキュリティ上のさまざまな脅威が想定されます。脅威からシステムを守るには，システムを物理的に安全な構成に設計したり，作業者の運用ルールを定めたりするなど，対策を実施する必要があります。

また，近年，組織の健全な運営の保証や，複雑化・多様化するITシステムの安全な構築・運用の観点から，組織の内部統制の重要性が高まっています。その中では，システムがセキュアに保たれていることを監査者に証明できることが求められます。そのためには，システムに対して，いつ，だれが，どんな操作を実施したのかをログに記録して，システムに対して正当な権限を持つ作業者が正当な業務を実施したことを監査できる仕組みが必要です。

このようなセキュアなシステムを実現するためには，想定される脅威をシステムの設計時に明確にして，それに応じた対策を実現できるシステムを検討していく必要があります。

この章では，システムに対して想定される脅威を明確にした上で，セキュアなシステムを構築・運用するための考え方や手順など，システム設計時に検討が必要なことについて説明します。

セキュアなシステムの検討は，次の流れで実施します。

図4‒1　セキュアなシステムの検討の流れ

なお，この図では，企業内部で使用されるシステムのセキュリティを確保するための作業の流れを示しています。外部からの脅威に対する対策については，「4.11　外部ネットワークを使用するシステムでのセキュリティの検討」を参照してください。

4.3　セキュアなシステムの構成の検討

ここでは，セキュアなシステムの構成について説明します。このマニュアルではセキュアなシステムとして，次のようなシステムを想定しています。

大企業で常時稼働して，社内で利用されるシステムです。

システムを構成する要素はすべて社内LAN上に配置されます。

システムが提供するサービスは，社内のクライアント端末からWebブラウザを使用して利用されます。

クライアント端末からサービスを利用するには，ログイン処理が必要です。システムに登録されていないユーザはサービスを利用できません。

このシステムの構成を次の図に示します。

図4‒2　セキュアなシステムの構成

このシステムの構成要素を次に示します。なお，説明中にある「システム管理者」，「システム運用者」，「監査者」，および「エンドユーザ」の定義については，「4.4　システムの使用者の検討」を参照してください。

サーバエリア

ハードウェアを管理するための，物理的に隔離されたスペースです。サーバエリア内のハードウェアは，システム管理者が管理します。サーバエリアに入室できるのは，システム管理者，システム運用者，および監査者だけです。

アプリケーションサーバ

Webサーバ，サービスを提供するJ2EEアプリケーション，およびJ2EEアプリケーションが稼働するために必要なサーバプログラムが稼働しているマシンです。サーバエリアに複数台設置されて，負荷分散機によって負荷分散されます。

データベース

ユーザの情報やサービスが処理した情報が格納されているマシンです。サーバエリアに設置します。

監査ログサーバ

監査ログを収集して，監査を実施するためのサーバです。監査者だけが使用します。サーバエリアに設置します。

運用管理サーバ

アプリケーションサーバを管理する，運用管理プログラムが稼働するマシンです。システム構築時にシステム管理者が，システム運用時にシステム運用者が使用します。サーバエリアに設置します。

負荷分散機

アプリケーションサーバを複数台設置する場合に，負荷分散をする装置です。サーバエリアに設置します。

ファイアウォール

サーバエリア，社内LAN，および外部インターネットの間に配置します。

クライアント端末

システムが提供するサービスを利用するための端末です。エンドユーザは，クライアント端末上のWebブラウザを使用して，社内LAN経由でアプリケーションサーバにアクセスします。

4.4　システムの使用者の検討

セキュアなシステムを検討するには，まず，システムの使用者を定義します。システムの使用者にはどのようなユーザがいるかを洗い出して，それぞれの使用者の目的や作業範囲を明確に定義します。これが，システムの監査を実施する観点の一つである，正しいユーザがそれぞれの操作を実行したかどうかを検証する根拠になります。

なお，それぞれの使用者の作業手順は，作業手順書を作成して定義する必要があります。作業手順書には，「システム構築手順書」，「システム運用手順書」，「エンドユーザ操作手順書」，「入退室手順書」などが考えられます。作業手順書の検討については，「4.9　作業手順の検討」を参照してください。

このシステムでは，次に示す使用者を定義します。

システム管理者

システム管理者は，「システム構築手順書」に従って，システムの構築，および管理を実施します。具体的には，主に次の作業を実施します。

サーバエリア内のハードウェア，ソフトウェア，ネットワークの設置・設定

ソフトウェアのアップデート

システムの起動と停止

システム管理者は，組織内の情報システム部門から選ばれたユーザが担当します。

システム運用者

システム運用者は，「システム運用手順書」に従って，サーバエリア内でエンドユーザの登録・削除などのシステムの運用作業を実施します。システム運用者は，社内の情報システム部門から委託されたユーザが担当します。

エンドユーザ

エンドユーザは，「エンドユーザ操作手順書」に従って，システムが提供するサービスを利用します。サービスの利用には，社内LANに接続されたクライアント端末上のWebブラウザを使用します。

監査者

監査者は「入退室手順書」に従ってサーバエリアに入室して，監査ログを取得します。取得した監査ログを調査して，信頼できるシステム管理者が「システム構築手順書」に従った正しい方法でシステムを構築しているかどうかを確認します。また，正しい方法で構築されたシステムが，「システム運用手順書」および「エンドユーザ操作手順書」に従った正しい方法で運用，および利用されているかどうかを監査します。監査者は，社内の内部監査を実施するコンプライアンス部門から選ばれたユーザが担当します。

4.5　システムが扱う資産の検討

セキュアなシステムを検討するには，システムが扱う資産（データ）のうち，保護する必要がある資産にはどのようなものがあるのかを明確に判断する必要があります。

このシステムでは，システムが扱う資産（データ）のうち，次の資産を保護する必要があると判断しています。

システム管理者のユーザ情報

エンドユーザのユーザ情報

システム構築時の設定ファイル

J2EEアプリケーション

サービスを利用する中でエンドユーザが送信して，J2EEアプリケーションが処理した情報

監査ログ

保護する必要があると判断した資産については，使用できる権限を制御するなどの対策が必要です。対策の詳細については，「4.8　対策の検討」を参照してください。

4.6　セキュアなシステムの前提条件の確認

ここでは，セキュアなシステムの前提条件について説明します。

セキュアなシステムでは，ハードウェアの設置方法や作業者に関する前提条件の確認が必要になります。前提条件を把握した上で，アプリケーションサーバが提供する機能やOSの機能などを使用して，想定される脅威に対する対策を実施します。

ここでは，次の二つの前提条件を想定します。

物理的な前提条件

運用上の前提条件

4.6.1　物理的な前提条件

セキュアなシステムを構築するための，物理的な前提条件を次に示します。

システムが稼働するハードウェア，ファイアウォール，それぞれのサーバ，および内部ネットワークが，外部から物理的に隔離されたサーバエリアに設置されていること。

施錠管理などによって，認証されたユーザ以外がサーバエリアに入室できないこと。

システムが稼働するために必要のないハードウェア，およびソフトウェアは，サーバエリア内には持ち込まれないこと。

4.6.2　運用上の前提条件

セキュアなシステムを構築するための運用上の前提条件を次に示します。

運用上の前提条件には，作業手順書，システム管理，システム運用，およびシステム監査に関する前提条件があります。それぞれの前提条件を次に示します。

作業手順書に関する前提条件

システムの構築手順は「システム構築手順書」に，システムの運用手順は「システム運用手順書」に，システムの操作手順は「エンドユーザ操作手順書」に記載されていること。

システム管理に関する前提条件

システムが稼働するために必要なサーバエリア内のハードウェア，ソフトウェア，およびJ2EEアプリケーションは，「システム構築手順書」に従ってシステム管理者が構築・設定すること。また，システム管理者は，信頼できる者が担当すること。

システム運用に関する前提条件

システムが稼働するために必要な，サーバエリア内のハードウェア，ソフトウェア，およびJ2EEアプリケーションは，システム運用者が運用すること。

システム監査に関する前提条件

システム監査を実施する監査者は，信頼できる者が担当すること。

4.7　想定される脅威の分析

この節では「4.4　システムの使用者の検討」と「4.5　システムが扱う資産の検討」で検討した内容，および「4.6　セキュアなシステムの前提条件の確認」で確認した内容から，システムにはどんな脅威が想定されるかを分析します。

このシステムでは次の脅威が想定されます。

不正なユーザによるサービスの利用

システムに登録されていないエンドユーザがサービスを利用するおそれがあります。

手順書に従わないユーザによるサービスの利用

システムに登録されているユーザIDおよびパスワードを入手しているエンドユーザが，「エンドユーザ操作手順書」に従わないで，システムの脆弱性を利用してサービスを利用するおそれがあります。

また，システムに登録しているユーザが，権限のないサービスを利用するおそれがあります。

不正なシステム管理者によるシステム構築

システム管理者ではないユーザが，「入退室手順書」に従わないで不正にサーバエリアに入室してシステムを構築するおそれがあります。

不正なシステム運用者によるシステム運用

システム運用者ではないユーザが，「入退室手順書」に従わないで不正にサーバエリアに入室してシステムを運用するおそれがあります。

手順書に従わないシステム運用者によるシステム運用

システム運用者のManagement Serverの管理ユーザアカウントを使用して，「システム運用手順書」に従わない方法でシステムを運用するおそれがあります。

「4.8　対策の検討」で説明する対策を実施すると，これらの脅威からシステムを守れます。

「入退室手順書」，「システム構築手順書」，「システム運用手順書」，および「エンドユーザ操作手順書」の詳細については，「4.9　作業手順の検討」を参照してください。

4.8　対策の検討

この節では，実施する対策の内容と，対策を実施したシステムの動作について説明します。

実施する対策には，次の二つがあります。

前提条件に対して実施する対策

「4.6　セキュアなシステムの前提条件の確認」で確認した前提条件に対する対策です。

想定した脅威に対して実施する対策

「4.7　想定される脅威の分析」で想定した脅威に対する対策です。

それぞれについて次に示します。

4.8.1　前提条件に対して実施する対策

ここでは，「4.6　セキュアなシステムの前提条件の確認」で確認した前提条件に対して実施する，対策の内容について説明します。

「4.6　セキュアなシステムの前提条件の確認」で確認した前提条件と，実施する対策を次の表に示します。

表4‒2　前提条件と実施する対策

前提条件

対策

物理的な前提条件

物理的な対策

運用上の前提条件

システム管理者に対する対策

システム運用者に対する対策

システム監査者に対する対策

それぞれの対策の概要を次に示します。

(1)　物理的な前提条件に対する対策

物理的な前提条件に対する対策を次に示します。

物理的な対策

システム管理者は，システムが稼働するハードウェア，ファイアウォール，それぞれのサーバ，および内部ネットワークを，外部から物理的に隔離されたサーバエリアに設置します。

システム管理者は，システムが稼働するために必要のないハードウェア，およびソフトウェアを，サーバエリア内に持ち込まないようにします。

システム管理者，システム運用者，および監査者は，「入退室手順書」に従ってサーバエリアに入退室するようにします。

「入退室手順書」については，「4.9　作業手順の検討」を参照してください。

(2)　運用上の前提条件に対する対策

運用上の前提条件に対する対策を次に示します。

システム管理者に対する対策

システム管理者には，システム全体に責任を持っていて，悪意のある行為はしない，信頼できるユーザを選定すること。

システム管理者は，システムの構築および管理に関するトレーニングなどを実施して，システムの構築，および管理方法を熟知していること。また，システムで利用するそれぞれの機器の構築，および管理方法について熟知していること。

システム管理者は，セキュリティ面での注意点を考慮しながらシステムを構築および管理すること。

システム管理者は，自分のOSのパスワード，システム管理者のManagement Serverの管理パスワード，システム運用者のOSのパスワード，およびシステム運用者のManagement Serverの管理パスワードとして，推測されにくい十分に強度のあるパスワードを設定すること。

「システム構築手順書」については，「4.9　作業手順の検討」を参照してください。

システム運用者に対する対策

システム運用者は，システムの運用に関するトレーニングなどを実施して，システムの運用方法を熟知していること。

システム運用者は，セキュリティ面での注意点を考慮しながらシステムを運用すること。

システム運用者は，エンドユーザのパスワードとして，推測されにくい十分に強度のあるパスワードを設定すること。

「システム運用手順書」については，「4.9　作業手順の検討」を参照してください。

システム監査者に対する対策

監査者には，システム全体に責任を持っていて，悪意のある行為はしない，信頼できるユーザを選定すること。

監査者には，システム管理者以外のユーザを選定すること。

監査者は，システムの構築手順が正当であるかどうかを確認すること。また，運用手順が正当であるかどうかを監査すること。

4.8.2　想定した脅威に対して実施する対策

ここでは，「4.7　想定される脅威の分析」で想定した脅威に対して実施する，対策の内容について説明します。

このシステムで想定される脅威と，それぞれの脅威に対する対策を，対策を実施する対象者ごとに次の表に示します。それぞれの脅威の詳細については，「4.7　想定される脅威の分析」を参照してください。

表4‒3　想定される脅威と実施する対策

対策の対象者

脅威

対策

システム管理者

不正なシステム管理者によるシステム構築

OSのユーザ識別・認証

システム運用者

不正なシステム運用者によるシステム運用

OSのユーザ識別・認証

システム運用者のユーザ識別・認証

手順書に従わないシステム運用者によるシステム運用

システムの監査ログ出力

J2EEアプリケーションの監査ログ出力

エンドユーザ

不正なユーザによるサービスの利用

J2EEアプリケーションの監査ログ出力

J2EEアプリケーションのユーザ識別・認証

手順書に従わないユーザによるサービスの利用

J2EEアプリケーションの監査ログ出力

J2EEアプリケーションのアクセス制御

それぞれの対策の概要を次に示します。

システム管理者を対象にした対策

OSのユーザ識別・認証

システム管理者だけがシステムを管理するように，システムが動作するOSのユーザ識別・認証を設定して，コマンドの実行権限を制御します。

システム運用者を対象にした対策

OSのユーザ識別・認証

システム運用者がシステムを運用するように，システムが動作するOSのユーザ識別・認証を設定して，コマンドの実行権限を制御します。

システム運用者のユーザ識別・認証

システム運用者がシステムを運用するように，システムでユーザ識別・認証をします。

システムの監査ログ出力

手順書に従った方法でシステムを運用したかどうかを監査するために，システムで監査ログを出力するようにします。

J2EEアプリケーションの監査ログ出力

手順書に従った方法でエンドユーザを管理したかどうかを監査するために，アプリケーションサーバが提供する監査ログ出力用のAPIを使用してJ2EEアプリケーションを実装して，J2EEアプリケーションの監査ログを出力するようにします。監査ログ出力用のAPIを使用したJ2EEアプリケーションの実装方法については，マニュアル「アプリケーションサーバ機能解説 運用／監視／連携編」の「6.8　アプリケーションの監査ログを出力するための実装」を参照してください。

エンドユーザを対象にした対策

J2EEアプリケーションの監査ログ出力

正当なエンドユーザが手順書に従った方法でサービスを利用したかどうかを監査するために，アプリケーションサーバが提供する監査ログ出力用のAPIを使用してJ2EEアプリケーションを実装して，J2EEアプリケーションの監査ログを出力するようにします。監査ログ出力用のAPIを使用したJ2EEアプリケーションの実装方法については，マニュアル「アプリケーションサーバ機能解説 運用／監視／連携編」の「6.8　アプリケーションの監査ログを出力するための実装」を参照してください。

J2EEアプリケーションのユーザ識別・認証

正当なエンドユーザだけがサービスを利用するように，J2EEアプリケーションにユーザ識別・認証機能を実装します。

J2EEアプリケーションのアクセス制御

アクセス権限を持っているエンドユーザだけが保護するべきデータにアクセスできるように，J2EEアプリケーションにアクセス制御機能を実装します。

4.8.3　対策を実施したセキュアなシステムの動作

ここでは，対策を実施したセキュアなシステムの動作について説明します。

対策を実施したシステムの動作の概要を次の図に示します。なお，図中に示した対策は，「4.8.2　想定した脅威に対して実施する対策」で説明した対策と対応しています。

図4‒3　システム管理者の操作とシステムの動作

この図で示した，対策を実施したシステムの動作の概要を，システムの使用者ごとに説明します。

(1)　システム管理者・システム運用者の操作とシステムの動作

システム管理者・システム運用者の操作とシステムの動作の概要について説明します。

システム管理者の操作

Smart Composer機能のコマンドを使用してアプリケーションサーバを構築します。ただし，J2EEアプリケーションの設定，リソースの設定などの作業は，サーバ管理コマンドを使用して実施します。

ユーザ識別・認証機能とアクセス制御機能，および監査ログを出力する機能を実装したアプリケーションを，デプロイ・開始します。

システム運用者の操作

Smart Composer機能のコマンドを使用してシステムを運用します。ただし，障害発生時のログの収集は，snapshotlogコマンドを使用して実施します。

システムの動作

コマンドの実行によるそれぞれの操作に対して監査ログを出力します。

ポイント

一部のコマンドは監査ログを出力しないため，使用するコマンドが監査ログを出力するコマンドかどうかを確認して作業を実施してください。監査ログを出力するコマンドについては，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「6.6　監査ログを出力するコマンド・操作一覧」を参照してください。

(2)　エンドユーザの操作とシステムの動作

システムが提供するサービス利用時のエンドユーザの操作とシステム（J2EEアプリケーション）の動作の概要を次に示します。

エンドユーザの操作

クライアント端末のWebブラウザからHTTPリクエストをアプリケーションサーバへ送信します。

システム（J2EEアプリケーション）の動作

HTTPリクエストに含まれているユーザ情報を識別して，ユーザ認証をします。

アクセス制御機能を使用して，認証されたユーザにアクセス権があるかどうかをチェックします。

アクセス制御機能で許可されたリクエストがJ2EEアプリケーションのサービスを実行します。

処理の実行時に，監査ログを出力します。

4.9　作業手順の検討

この節では，セキュアなシステムを構築・運用するために，システムごとに検討する必要がある作業手順について説明します。

セキュアなシステムを構築・運用するには，それぞれの作業者が実施する作業の手順を明確にする必要があります。システムの監査では，監査ログと作業手順書を照合して，それぞれに矛盾がないかを調査します。作業手順書とは，システム構築，システム運用，エンドユーザによるサービスの利用などの作業について，正しい手順，方法を明文化した文書です。作業手順書は，それぞれのシステムに応じて作成する必要があります。作業者や操作内容の記録である監査ログと作業手順書を照合することで，正しい作業者が正しい手段・手順で作業を実施したかどうかが明確になります。これによって，システムの安全性を保てます。

作業手順書の作成では，それぞれの作業手順書に記載する作業とその手順・方法を検討する必要があります。監査の観点で，正しいユーザが正しい手順・方法で実施するように規定する必要がある作業を洗い出してください。また，それぞれの作業の手順では，必ず監査ログを出力するコマンドを使用して作業を実行するように規定してください。

4.9.1　作成する作業手順書の概要

ここでは，作成する必要がある作業手順書の概要について説明します。

作成する作業手順書は，システムによって異なります。このシステムでは，次の作業手順書を作成します。

入退室手順書

施錠管理がされているサーバエリアに入退室する手順が規定された文書です。

システム構築手順書

システムを構築する手順が規定された文書です。記載する手順は，「4.9.2　システムの構築手順の検討」および「4.9.3　システムの再構築手順の検討」で説明している手順を基に作成します。

なお，「4.9.2　システムの構築手順の検討」，および「4.9.3　システムの再構築手順の検討」で説明している手順では，システム管理者はSmart Composer機能のコマンドおよびサーバ管理コマンドを使用して操作を実行しています。また，すべての操作に，監査ログが出力されるコマンドを使用しています。

システム運用手順書

システムを運用する手順が規定された文書です。記載する手順は，「4.9.4　システムの運用手順の検討」で説明している手順を基に作成します。

なお，「4.9.4　システムの運用手順の検討」で説明している手順では，システム運用者はSmart Composer機能のコマンド，およびsnapshotlogコマンドを使用して操作を実行しています。

エンドユーザ操作手順書

システムが提供するサービスを利用する手順が規定された文書です。

4.9.2　システムの構築手順の検討

ここでは，「システム構築手順書」に記載するシステムの構築手順の例について説明します。「システム構築手順書」を作成するときは，ここで説明している手順を参考にしてください。

セキュアなシステムの構築には，Smart Composer機能のコマンド，およびサーバ管理コマンドを使用します。また，すべての操作に，実行時に監査ログが出力されるコマンドを使用します。ここで説明している以外の操作を作業手順書に記載する場合も，監査ログが出力されるコマンドを使用する方法を記載してください。監査ログが出力されるコマンドについては，マニュアル「アプリケーションサーバ機能解説 運用／監視／連携編」の「6.6　監査ログを出力するコマンド・操作一覧」を参照してください。

なお，この項で説明する手順は，すべてシステム管理者が実行します。

(1)　ハードウェアの設置

システム管理者が，ハードウェアを設置します。ハードウェアを設置する手順を次に示します。

「入退室手順書」に従って，外部から物理的に隔離されたサーバエリアに入室します。

システムが稼働するハードウェア，およびファイアウォールをサーバエリア内に設置します。

なお，「システム構築手順書」では，ハードウェア，およびファイアウォールを設置する手順の詳細を規定してください。

(2)　OSのインストール

システム管理者が，システムで使用するOSのインストールを実施します。OSをインストールする手順を次に示します。

OSのインストール，およびIPアドレス・ホスト名の設定などの，ネットワークの接続に必要な設定をします。

システムに必要なセキュリティパッチを適用します。

システムに必要なソフトウェアをインストールして，環境変数を設定します。

システム管理者用のOSのアカウントを作成して，管理者権限を付与します。

監査者用のOSのアカウントを作成して，安全な手段で監査者へ通知します。

(3)　システムの管理の開始

システム管理者が，「(2) OSのインストール」で設定したシステム管理者用のOSのアカウントを使用してOSにログインします。

(4)　監査ログを出力するための設定

システム管理者が，運用管理サーバおよびアプリケーションサーバの端末で監査ログを出力するための設定をします。監査ログを出力するための設定をする手順を次に示します。

システム構成を基に，ログファイルのサイズを決定します。

システム管理者，およびシステム運用者に，監査ログファイルに対する読み取り権限と書き込み権限を設定します。また，監査者に監査ログファイルに対する読み取り権限を設定します。

手順1.および手順2.で決定，および設定した内容を監査ログ定義ファイル（auditlog.properties）に反映します。

監査ログ定義ファイルに指定した監査ログ出力ディレクトリを作成します。

システム管理者，およびシステム運用者に，手順4.で作成した監査ログ出力ディレクトリに対する読み取り権限と書き込み権限を設定します。また，監査者に，手順4.で作成した監査ログ出力ディレクトリに対する読み取り権限を設定します。

セットアップコマンド（auditsetupコマンド）を実行します。

(5)　負荷分散機およびデータベースの設定

システム管理者が，負荷分散機およびデータベースをサーバエリア内に設置して，負荷分散機およびデータベースを設定します。

なお，「システム構築手順書」では，負荷分散機およびデータベースの設定手順の詳細を規定してください。

(6)　運用管理サーバの設定

システム管理者が，運用管理サーバの初期設定をします。運用管理サーバを設定する手順を次に示します。

mngsvrctlコマンドで，引数「setup」を指定して，Management Serverのセットアップ，およびManagement Serverの管理ユーザアカウントの設定をします。

mngautorunコマンドで，引数「server」と-syncオプションを指定して，Management Serverの自動起動の設定をします。

(7)　Webシステムの構成定義

システム管理者が，Webシステムの構成を定義します。Webシステムの構成を定義する手順を次に示します。

mngsvrctlコマンドで，引数「start」と-syncオプションを指定して，Management Serverを起動します。

簡易構築定義ファイルを編集して保存します。

adminagentctlコマンドで引数「start」と-syncオプションを指定して，それぞれのアプリケーションサーバで運用管理エージェントを起動します。

運用管理サーバでcmx_build_systemコマンドを使用して，Webシステムを構築します。

(8)　Webシステムの準備

システム管理者が，運用管理サーバの管理者端末でSmart Composer機能のコマンドを使用して，Webシステムの準備をします。Webシステムを準備する手順を次に示します。

cmx_start_targetコマンドを使用して，Webシステムを準備状態にします。

cmx_list_statusコマンドを使用して，Webシステム内のサービスユニットが準備状態であることを確認します。

(9)　リソースアダプタの設定

システム管理者が，運用管理サーバの管理者端末でサーバ管理コマンドを使用して，データベースと連携するアプリケーションに必要なリソースアダプタを設定します。リソースアダプタを設定する手順を次に示します。

次のディレクトリから，使用するリソースアダプタのConnector属性ファイルのテンプレートをコピーします。

Windowsの場合

<Application Serverのインストールディレクトリ>¥CC¥admin¥templates¥

UNIXの場合

/opt/Cosminexus/CC/admin/templates/

手順1.でコピーしてきたConnector属性ファイルのテンプレートを編集します。

cjimportresコマンドを使用して，リソースアダプタをインポートします。

cjsetrespropコマンドを使用して，Connector属性ファイルの編集内容をリソースアダプタに反映します。

cjdeployrarコマンドを使用して，リソースアダプタをデプロイします。

cjtestresコマンドを使用して，リソースアダプタの接続テストを実施します。

(10)　J2EEアプリケーションの確認

システム管理者が，「4.8.2　想定した脅威に対して実施する対策」で説明した対策がJ2EEアプリケーションに施されているかを確認します。ここでは，次の対策について確認します。

J2EEアプリケーションの監査ログ出力

J2EEアプリケーションのユーザ識別・認証

J2EEアプリケーションのアクセス制御

具体的には，J2EEアプリケーションが次の仕様を満たしているかどうかを確認してください。

システム運用者によってエンドユーザのユーザID・パスワードを登録，および削除するための機能がある。

ユーザID・パスワードの識別・認証機能がある。

提供するサービスに対するアクセス制御機能がある。

ユーザがサービスを利用するときに，監査ログを出力する機能がある。

(11)　J2EEアプリケーションの設定

システム管理者が，運用管理サーバの管理者端末でサーバ管理コマンドを使用して，J2EEアプリケーションを設定します。J2EEアプリケーションを設定する手順を次に示します。

cjimportappコマンドを使用して，J2EEアプリケーションをインポートします。

cjgetapppropコマンドを使用して，アプリケーション統合属性ファイルを取得します。

手順2.で取得したアプリケーション統合属性ファイルを編集します。

cjsetapppropコマンドを使用して，アプリケーション統合属性ファイルの編集内容をJ2EEアプリケーションに反映します。

注意事項

ここでは，実行時情報を持たないJ2EEアプリケーションを設定する手順について説明しています。実行時情報を持つJ2EEアプリケーションを設定する場合は，手順1.でJ2EEアプリケーションをインポートしたあとに，cjstopappコマンドを使用してJ2EEアプリケーションを停止してから，手順2.に進んでください。

(12)　Webシステムの開始

システム管理者が，運用管理サーバの管理者端末でSmart Composer機能のコマンドとサーバ管理コマンドを使用して，Webシステムを開始します。Webシステムを開始する手順を次に示します。

cjstartrarコマンドを使用して，リソースアダプタを開始します。

cjstartappコマンドを使用して，J2EEアプリケーションを開始します。

cmx_start_targetコマンドを使用して，Webシステム内のサービスユニットを稼働状態にします。

(13)　不要な機能の無効化

不正なユーザによって不要な機能を使用されないように，機能を無効化します。具体的には，システム管理者が，コマンドの実行権限を変更したり，コマンドの実行に必要なファイルを削除したりします。無効化する必要がある機能を，Windowsの場合とUNIXの場合に分けて，次の表に示します。

表4‒4　無効化する必要がある機能（Windowsの場合）

機能名

対象ディレクトリ

対象ファイル

対処

HTTP ServerのGUIサーバ管理機能

<Application Serverのインストールディレクトリ>¥httpsd

adm-httpsd.exe

システム管理者以外の実行権限を解除します。

HTTP Serverのパスワードファイル編集コマンド

<Application Serverのインストールディレクトリ>¥httpsd¥bin

htpasswd.exe

システム管理者以外の実行権限を解除します。

CTMのスケジュールキューの同時実行数の変更

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmchpara.exe

システム管理者以外の実行権限を解除します。

CTMのCTMドメインの情報表示と削除

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmdminfo.exe

システム管理者以外の実行権限を解除します。

CTMのスケジュールキューの閉塞

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmholdque.exe

システム管理者以外の実行権限を解除します。

CTMの実行形式ファイルおよびライブラリのバージョン情報の出力

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmjver.exe

システム管理者以外の実行権限を解除します。

CTMのメッセージの編集と出力

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmlogcat.exe

システム管理者以外の実行権限を解除します。

CTMのスケジュールキュー情報の出力

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmlsque.exe

システム管理者以外の実行権限を解除します。

CTMのスケジュールキューの閉塞解除

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmrlesque.exe

システム管理者以外の実行権限を解除します。

CTMの稼働統計情報の編集と出力

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmstsed.exe

システム管理者以外の実行権限を解除します。

CTMのバッファ内容の強制ファイル出力

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmstsflush.exe

システム管理者以外の実行権限を解除します。

CTMの実行形式ファイルおよびライブラリのバージョン情報の出力

<Application Serverのインストールディレクトリ>¥CTM¥bin

ctmver.exe

システム管理者以外の実行権限を解除します。

PRFの性能解析トレース情報の編集出力

<Application Serverのインストールディレクトリ>¥PRF¥bin

cprfed.exe

システム管理者以外の実行権限を解除します。

PRFのバッファ内容の強制ファイル出力

<Application Serverのインストールディレクトリ>¥PRF¥bin

cprfflush.exe

システム管理者以外の実行権限を解除します。

PRFトレース取得レベルの表示と変更

<Application Serverのインストールディレクトリ>¥PRF¥bin

cprflevel.exe

システム管理者以外の実行権限を解除します。

Management Serverで使用するコマンド

<Application Serverのインストールディレクトリ>¥manager¥bin

mngsvrutil.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥bin

mstrexport.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥bin

mstrimport.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥bin

ssoexport.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥bin

ssogenkey.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥bin

ssoimport.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥bin

uachpw.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥bin

mngsvr_adapter_setup.exe

このコマンドを実行しないようにします。

<Application Serverのインストールディレクトリ>¥manager¥bin

Adapter_HITACHI_COSMINEXUS_MANAGER.exe

システム管理者以外の実行権限を解除します。

<Application Serverのインストールディレクトリ>¥manager¥externals¥jp1¥mngsvrmonitor

mngsvr_monitor_setup.exe

このコマンドを実行しないようにします。

運用管理ポータル

<Application Serverのインストールディレクトリ>¥manager¥containers¥m¥webapps¥mngsvr

index.jsp

ファイルを削除します。

<Application Serverのインストールディレクトリ>¥manager¥containers¥m¥webapps¥mngsvr

login.jsp

ファイルを削除します。

表4‒5　無効化する必要がある機能（UNIXの場合）

機能名

対象ディレクトリ

対象ファイル

対処

HTTP ServerのGUIサーバ管理機能

/opt/hitachi/httpsd/sbin

adminctl

システム管理者以外の実行権限を解除します。

/opt/hitachi/httpsd/sbin

adm-httpsd

システム管理者以外の実行権限を解除します。

HTTP Serverのパスワードファイル編集コマンド

/opt/hitachi/httpsd/bin

htpasswd

システム管理者以外の実行権限を解除します。

CTMのスケジュールキューの同時実行数の変更

/opt/Cosminexus/CTM/bin

ctmchpara

システム管理者以外の実行権限を解除します。

CTMのCTMドメイン情報の表示と削除

/opt/Cosminexus/CTM/bin

ctmdminfo

システム管理者以外の実行権限を解除します。

CTMのスケジュールキューの閉塞

/opt/Cosminexus/CTM/bin

ctmholdque

システム管理者以外の実行権限を解除します。

CTMの実行形式ファイルおよびライブラリのバージョン情報の出力

/opt/Cosminexus/CTM/bin

ctmjver

システム管理者以外の実行権限を解除します。

CTMのメッセージの編集と出力

/opt/Cosminexus/CTM/bin

ctmlogcat

システム管理者以外の実行権限を解除します。

CTMのスケジュールキュー情報の出力

/opt/Cosminexus/CTM/bin

ctmlsque

システム管理者以外の実行権限を解除します。

CTMのスケジュールキューの閉塞解除

/opt/Cosminexus/CTM/bin

ctmrlesque

システム管理者以外の実行権限を解除します。

CTMの稼働統計情報の編集と出力

/opt/Cosminexus/CTM/bin

ctmstsed

システム管理者以外の実行権限を解除します。

CTMのバッファ内容の強制ファイル出力

/opt/Cosminexus/CTM/bin

ctmstsflush

システム管理者以外の実行権限を解除します。

CTMの実行形式ファイルおよびライブラリのバージョン情報の出力

/opt/Cosminexus/CTM/bin

ctmver

システム管理者以外の実行権限を解除します。

PRFの性能解析トレース情報の編集出力

/opt/Cosminexus/PRF/bin

cprfed

システム管理者以外の実行権限を解除します。

PRFのバッファ内容の強制ファイル出力

/opt/Cosminexus/PRF/bin

cprfflush

システム管理者以外の実行権限を解除します。

PRFトレース取得レベルの表示と変更

/opt/Cosminexus/PRF/bin

cprflevel

システム管理者以外の実行権限を解除します。

Management Serverで使用するコマンド

/opt/Cosminexus/manager/bin

mngsvrutil

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

mstrexport

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

mstrimport

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

ssoexport

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

ssogenkey

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

ssoimport

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

uachpw

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

mngsvr_adapter_setup

システム管理者以外の実行権限を解除します。

/opt/Cosminexus/manager/bin

Adapter_HITACHI_COSMINEXUS_MANAGER

システム管理者以外の実行権限を解除します。

運用管理ポータル

/opt/Cosminexus/manager/containers/m/webapps/mngsvr

index.jsp

ファイルを削除します。

/opt/Cosminexus/manager/containers/m/webapps/mngsvr

login.jsp

ファイルを削除します。

(14)　システム運用者の登録

システム管理者が，運用管理サーバの管理者端末でOSの機能，およびSmart Composer機能のコマンドを使用して，システム運用者のユーザIDとパスワードを設定します。また，設定したユーザIDとパスワードをシステム運用者に通知します。システム運用者を登録する手順を次に示します。

OSの機能を使用して，システム運用者のOSのユーザIDとパスワードを設定します。

OSの機能を使用して，システム運用者に管理者権限を与えないよう設定します。

cmx_admin_passwdコマンドを使用して，システム管理者のManagement Serverの管理ユーザIDと管理パスワードを，システム運用者のManagement Serverの管理ユーザIDと管理パスワードに変更します。

手順1.および手順3.で設定したユーザIDとパスワードを安全な手段でシステム運用者へ通知します。

4.9.3　システムの再構築手順の検討

ここでは，「システム構築手順書」に記載するシステムの再構築手順の例について説明します。「システム構築手順書」を作成するときは，ここで説明している手順を参考にしてください。

セキュアなシステムの再構築には，Smart Composer機能のコマンド，およびサーバ管理コマンドを使用します。また，すべての操作に，実行時に監査ログが出力されるコマンドを使用します。ここで説明している以外の操作を作業手順書に記載する場合も，監査ログが出力されるコマンドを使用する方法を記載してください。監査ログが出力されるコマンドについては，マニュアル「アプリケーションサーバ機能解説 運用／監視／連携編」の「6.6　監査ログを出力するコマンド・操作一覧」を参照してください。

なお，この項で説明する手順は，すべてシステム管理者が実行します。

(1)　J2EEアプリケーションの入れ替え

システム管理者が，メンテナンスが必要な場合などにJ2EEアプリケーションを入れ替えます。J2EEアプリケーションを入れ替える手順を次に示します。

cmx_stop_targetコマンドを使用して，Webシステム内のサービスユニットを準備状態にします。

cjstopappコマンドを使用して，入れ替え前のJ2EEアプリケーションを停止します。

cjdeleteappコマンドを使用して，入れ替え前のJ2EEアプリケーションを削除します。

cjimportappコマンドを使用して，入れ替え後のJ2EEアプリケーションをインポートします。

cjgetapppropコマンドを使用して，入れ替え後のJ2EEアプリケーションのアプリケーション統合属性ファイルを取得します。

手順5.で取得したアプリケーション統合属性ファイルを編集して，J2EEアプリケーションに必要な情報を設定します。また，必要に応じてJ2EEアプリケーションをカスタマイズします。

cjsetapppropコマンドを使用して，手順6.で編集したアプリケーション統合属性ファイルを，入れ替え後のJ2EEアプリケーションに反映します。

cjstartappコマンドを使用して，入れ替え後のJ2EEアプリケーションを開始します。

cmx_start_targetコマンドを使用して，Webシステム内のサービスユニットを稼働状態にします。

なお，J2EEアプリケーションの入れ替えには，この手順のほかに，cjreplaceappコマンドを使用したリデプロイ機能，またはcjreloadappコマンドを使用したリロード機能を使用することもできます。

(2)　システムのチューニング

システム管理者が，必要に応じてシステムをチューニングします。システムをチューニングする手順を次に示します。

簡易構築定義ファイルを編集します。

cmx_stop_targetコマンドを使用して，Webシステム内のサービスユニットを停止します。

cmx_build_systemコマンドを使用して，Webシステムの設定を変更します。

cmx_start_targetコマンドを使用して，Webシステム内のサービスユニットを起動します。

(3)　システム構成の変更（サービスユニットの追加）

システム管理者が，必要に応じてサービスユニットを追加してシステム構成を変更します。サービスユニットを追加してシステム構成を変更する手順を次に示します。

構成変更定義ファイルを作成・編集します。

cmx_change_modelコマンドを使用して，Management ServerのWebシステムの情報モデルを変更します。

cmx_build_systemコマンドを使用して，変更したWebシステムの情報モデルを適用します。

cmx_start_targetコマンドを使用して，追加するWebシステム内のサービスユニットを準備状態にします。

cjstartrarコマンドを使用して，リソースアダプタを開始します。

cjstartappコマンドを使用して，J2EEアプリケーションを開始します。

cmx_start_targetコマンドを使用して，追加するWebシステム内のサービスユニットを稼働状態にします。

(4)　システム構成の変更（サービスユニットの削除）

システム管理者が，必要に応じてサービスユニットを削除してシステム構成を変更します。サービスユニットを削除してシステム構成を変更する手順を次に示します。

cmx_stop_targetコマンドを使用して，削除するWebシステム内のサービスユニットを停止します。

cmx_delete_systemコマンドを使用して，手順1.で指定したWebシステム内のサービスユニットを削除します。

4.9.4　システムの運用手順の検討

ここでは，「システム運用手順書」に記載するシステムの運用手順の例について説明します。「システム運用手順書」を作成するときは，ここで説明している手順を参考にしてください。

セキュアなシステムの運用には，Smart Composer機能のコマンド，およびsnapshotlogコマンドを使用します。ここで説明している以外の操作を作業手順書に記載する場合も，監査ログが出力されるコマンドを使用する方法を記載してください。監査ログが出力されるコマンドについては，マニュアル「アプリケーションサーバ機能解説 運用／監視／連携編」の「6.6　監査ログを出力するコマンド・操作一覧」を参照してください。

なお，この項で説明する手順のうち，Webシステムの起動の作業の一部，およびWebシステムのメンテナンス以外は，システム運用者が実行します。Webシステムのメンテナンスは，システム運用者に依頼されたシステム管理者が実行します。

(1)　Webシステムの起動

システム運用者が，運用管理サーバの管理者端末でWebシステムを起動します。ただし，リソースアダプタおよびJ2EEアプリケーションの起動は，システム管理者が，サーバ管理コマンドを使用して実行します。Webシステムを起動する手順を次に示します。

システム運用者が，cmx_start_targetコマンドを使用して，Webシステム内のサービスユニットを準備状態にします。

システム運用者が，システム管理者にサービスの起動を依頼します。

システム管理者が，cjstartrarコマンドを使用して，リソースアダプタを開始します。

システム管理者が，cjstartappコマンドを使用して，J2EEアプリケーションを開始します。

システム運用者が，cmx_start_targetコマンドを使用して，Webシステム内のサービスユニットを稼働状態にします。

(2)　Webシステムの停止

システム運用者が，運用管理サーバの管理者端末でSmart Composer機能のコマンドを使用して，Webシステムを停止します。Webシステムを停止する手順を次に示します。

cmx_stop_targetコマンドを使用して，Webシステム内のサービスユニットを停止状態にします。

(3)　エンドユーザの管理

システム運用者が，「システム運用手順書」に従って，エンドユーザのアクセス権やユーザIDなどを管理します。次の作業を実施します。

エンドユーザの登録，削除

エンドユーザの権限の変更

エンドユーザのパスワード変更

なお，「システム運用手順書」では，これらの手順の詳細を規定してください。

(4)　エンドユーザへの通知

システム運用者が，「(3) エンドユーザの管理」で登録したエンドユーザのユーザIDとパスワードをエンドユーザに通知します。ユーザIDとパスワードをエンドユーザに通知する手順を次に示します。

「システム運用手順書」に従って登録したエンドユーザのユーザIDとパスワードを使用して，サービスを利用できることを確認します。

サービス利用時に，監査ログが出力されることを確認します。

手順1.および手順2.の確認が終わったら，システム運用者がエンドユーザにユーザIDとパスワードを安全な手段で通知します。

(5)　Webシステムのメンテナンス

必要に応じてWebシステムをメンテナンスします。Webシステムのメンテナンスは，システム運用者に依頼されたシステム管理者が実施します。Webシステムをメンテナンスする手順を次に示します。

システム運用者が，cmx_stop_targetコマンドを使用して，メンテナンスするサービスユニットを閉塞，または停止します。

アプリケーションサーバの修正パッチを適用する場合，システム運用者がアプリケーションサーバ関連のプログラムを停止します。修正パッチを適用しない場合は，手順3.に進みます。

システム管理者にシステムのメンテナンスを依頼します。

システム管理者が，システム管理者用のユーザIDで，OSにログインします。

システム管理者がOSのサービスパック，セキュリティパッチ，アプリケーションサーバの修正パッチなどを適用します。この作業をシステム管理者が実施しているとき，システム運用者はその場に立ち会う必要があります。

アプリケーションサーバの修正パッチを適用した場合，システム運用者がアプリケーションサーバ関連のプログラムを再開します。

システム運用者が，cmx_start_targetコマンドを使用して，サービスユニットを再開します。

(6)　システムの障害対応

障害発生時に，システム運用者が障害に対応します。システムの障害に対応する手順を次に示します。

snapshotlogコマンドを使用して，アプリケーションサーバのログを収集します。

必要に応じて，snapshotlogコマンドで収集できないログを個別に収集します。

収集したログを保守員に送付して，調査を依頼します。

調査の結果に基づいてシステムをメンテナンスします。

4.10　システムの監査方法の確認

この節では，システムの監査方法について説明します。

システムの監査では，監査者がそれぞれの作業手順書と監査ログに出力されている操作の記録を照合して，正しい作業者が正しい手順で作業を実行しているかどうかを調査します。

4.10.1　監査ログの入手

監査ログを入手する手順について次に示します。

監査者が，「入退室手順書」に従って外部から物理的に隔離されたサーバエリアに入室します。

監査者が，監査ログサーバにログインして，各種サーバが稼働しているマシンから監査ログを入手します。

4.10.2　監査ログの調査

監査ログの調査では，次の点を確認します。

信頼できるシステム管理者が正しい方法でシステムを構築しているか

監査ログに出力された時刻，操作者，事象内容，および結果と，「システム構築手順書」の内容に相違がないことを確認します。

正しい方法で構築されたシステムが，正しく運用，および利用されているか

監査ログに出力された時刻，操作者，事象内容，および結果と，「システム運用手順書」および「エンドユーザ操作手順書」に相違がないことを確認します。

監査ログの調査方法，および監査ログに出力されるメッセージの詳細については，次のマニュアルを参照してください。

監査ログの調査方法

マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「6.3　監査ログとは」を参照してください。

監査ログに出力されるメッセージの詳細

マニュアル「アプリケーションサーバ メッセージ(監査者用)」を参照してください。

4.11　外部ネットワークを使用するシステムでのセキュリティの検討

この節では，外部ネットワークを使用するシステムで想定されるセキュリティ上の脅威とその対策について説明します。

4.11.1　外部ネットワークを使用するシステムで想定されるセキュリティ上の脅威

ここでは，外部ネットワークを使用するシステムで想定されるセキュリティ上の脅威について説明します。

(1)　想定するセキュリティ上の脅威

ネットワークを使用するシステムでは，セキュリティ対策が十分でないと，アプリケーションを不正に実行されたり，通信内容やバックエンドのデータベースで管理しているデータが漏洩または改ざんされたりするおそれがあります。これらを防ぐためには，セキュリティ上の脅威を認識して，それらに十分に対策しておく必要があります。

ここでは，次のようなセキュリティ上の脅威を想定します。

システム外からシステムへの第三者の不正侵入

アプリケーションの扱うデータの第三者への漏洩

アプリケーションの通信内容の第三者への漏洩

アプリケーションの通信内容の第三者による改ざん

システム利用者の許可された権限の範囲を超えた操作や情報の入手

なお，ここでは，システム外部からの脅威を想定した対策について検討します。システム内部の脅威については，ここでは対象にしません。

(2)　考えられる対策

想定したセキュリティ上の脅威に対しては，それぞれ，次の表に示すような対策が考えられます。それぞれの具体的な対策方法については，参照先の説明を参照してください。

表4‒6　セキュリティ上の脅威に対して考えられる対策

脅威

対策

参照先

システム外からシステムへの第三者の不正侵入

ファイアウォールと侵入検知システムを配置する

4.11.2

アプリケーションの扱うデータの第三者への漏洩

アプリケーションの通信内容の第三者への漏洩

通信内容を暗号化する

4.11.3※

アプリケーションの通信内容の第三者による改ざん

システム利用者の許可された権限の範囲を超えた操作や情報の入手

アプリケーションでユーザを認証する

4.11.4

注※　通信内容の暗号化には，HTTPSを使用します。参照先では，HTTPSを使用する場合に，SSLアクセラレータを使用して暗号通信を処理する方法について説明します。

4.11.2　ファイアウォールと侵入検知システムを配置する

ここでは，ファイアウォールと侵入検知システムを適切に配置，設定することでシステムのセキュリティを向上させる方法について説明します。

(1)　ファイアウォールと侵入検知システムを配置する目的

ファイアウォールは，外部のネットワークと内部のネットワーク間のアクセスを制御します。あらかじめアクセスを許可するクライアントや通信を特定し，決められたルールに従って通信を許可したり破棄したりすることで，外部ネットワークからの不正なアクセスを防止します。このため，ファイアウォールを使用する場合は，通信を許可するポートやIPアドレスを明確にして，設定しておく必要があります。

侵入検知システム（IDS）は，通信回線を監視して，通信パターンによって不正なアクセスを判断します。

ファイアウォールと侵入検知システムを適切な個所に配置，設定することで，次のようなセキュリティ上の脅威からシステムを守れます。

システム外からシステムへの第三者の不正侵入

アプリケーションの扱うデータの第三者への漏洩

ここでは，次の表に示すシステム構成ごとのファイアウォールと侵入検知システムの配置個所，および設定するときに留意することについて説明します。

表4‒7　ファイアウォールと侵入検知システムの配置を検討するためのシステム構成の分類

システム構成

説明

基本的なWebクライアント構成

1台のアプリケーションサーバで構成されるシステム構成です。クライアントはWebブラウザです。

基本的なEJBクライアント構成

1台のアプリケーションサーバで構成されるシステム構成です。クライアントはEJBクライアントアプリケーションです。

サーバの層ごとにファイアウォールで区切る構成（アプリケーション集中型）

複数のアプリケーションサーバで構成されるシステム構成で，サーバの層ごとにファイアウォールで区切る構成です。アプリケーションはすべて同じ層のアプリケーションサーバ上で動作します。

サーバの層ごとにファイアウォールで区切る構成（アプリケーション分散型）

複数のアプリケーションサーバで構成されるシステム構成で，サーバの層ごとにファイアウォールで区切る構成です。アプリケーションは異なる複数の層のアプリケーションサーバ上で動作します。

なお，インターネットと接続するシステムの場合は，外部ネットワークから直接内部ネットワークのアプリケーションサーバにアクセスされないように，DMZを確保して，リバースプロキシを使用した構成を検討することをお勧めします。

(2)　基本的なWebクライアント構成の場合

ここでは，1台のアプリケーションサーバで構成される基本的なWebクライアント構成の場合のファイアウォールと侵入検知システムの配置個所について説明します。

ファイアウォールは，ネットワークから見てアプリケーションサーバの手前に配置します。この構成の場合，ネットワーク上のWebクライアントは，ファイアウォール経由でだけアプリケーションサーバにアクセスできます。

基本的なWebクライアント構成の場合のファイアウォールと侵入検知システムの配置例を次の図に示します。

図4‒4　基本的なWebクライアント構成でのファイアウォールと侵入検知システムの配置例

(a)　アプリケーションサーバの設定

アプリケーションサーバでは，次の項目を設定します。

J2EEサーバの管理用通信ポートのアドレス指定

J2EEサーバの管理用通信ポートにアクセスできるアドレスを指定します。

Management Serverおよび運用管理エージェントのアドレス指定

Management Serverおよび運用管理エージェントにアクセスできるアドレスを指定します。

(b)　ファイアウォールの設定

外部ネットワークとアプリケーションサーバ内のWebサーバ（HTTP Server）のアクセスについて制御するために，次の項目を設定します。

外部ネットワークからのWebサーバに対してのアクセス許可

ファイアウォールの外部のネットワークとアプリケーションサーバ間の通信では，公開ポートであるHTTP/80やHTTPS/443などだけを許可するようにします。ただし，システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

アクセスを許可するWebクライアントのIPアドレスの限定（任意）

ファイアウォールの機能を使用してアクセスを許可するWebクライアントのIPアドレスを限定することで，そのシステムの利用者を特定できます。この場合は，ファイアウォールに通信を許可するIPアドレスを指定してください。

Management Serverおよび運用管理エージェントの通信ポートの指定

Management Serverおよび運用管理エージェントの通信ポートについては，ファイアウォールの外部からはアクセスできないように通信を遮断してください。これらの通信ポートにアクセスできると，運用管理者以外の外部のユーザからアプリケーションサーバに対して不正な運用操作が実行されるおそれがあります。

(c)　侵入検知システムの設定

外部ネットワークとアプリケーションサーバ内のWebサーバ（HTTP Server）の公開ポートの通信内容を監視するために，次の項目を設定します。

通信内容の監視

通信内容に既知の攻撃パターンや，攻撃と疑われるようなパターンが含まれている場合は運用管理者などに警告を通知するように設定します。侵入検知システムとファイアウォールの連携機能を利用して，疑わしい通信は自動的に遮断するように設定することもできます。

SSLコネクションの確立部分への攻撃の監視

HTTPSによるアクセスは，通信内容が暗号化されているため，基本的に通信内容を監視できません。この場合は，HTTPSに関する既知の攻撃パターンとして，SSLコネクションの確立部分への攻撃などを監視対象としてください。

公開ポート以外のポートへの通信の監視

アプリケーションサーバの公開ポート以外のポートへの通信が外部ネットワークから送信されている場合は，設定ミスなどによってファイアウォールが突破されているおそれがあります。この場合，警告を通知するように設定することをお勧めします。

(3)　基本的なEJBクライアント構成の場合

ここでは，1台のアプリケーションサーバで構成される基本的なEJBクライアント構成の場合のファイアウォールと侵入検知システムの配置個所について説明します。

ファイアウォールは，ネットワークから見てアプリケーションサーバの手前に配置します。この構成の場合，ネットワーク上のEJBクライアントは，ファイアウォール経由でだけアプリケーションサーバにアクセスできます。

基本的なEJBクライアント構成の場合のファイアウォールと侵入検知システムの配置例を次の図に示します。

図4‒5　基本的なEJBクライアント構成でのファイアウォールと侵入検知システムの配置

(a)　アプリケーションサーバの設定

アプリケーションサーバでは，次の項目を設定します。

J2EEサーバの管理用通信ポートのアドレス指定

J2EEサーバの管理用通信ポートにアクセスできるアドレスを指定します。

Management Serverおよび運用管理エージェントのアドレス指定

Management Serverおよび運用管理エージェントにアクセスできるアドレスを指定します。

EJBクライアントからアクセスされるポート番号の固定

EJBクライアントからアプリケーションサーバを利用するために，EJBクライアントから次のポート番号に通信できるように設定してください。

CORBAネーミングサービス

ポート番号は，通常固定されています（デフォルトのポート番号：900）。

EJBコンテナ

ポート番号が固定されていないため，EJBコンテナが利用するポート番号を明示的に指定（固定）する必要があります。指定個所については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.15　アプリケーションサーバのプロセスが使用するTCP/UDPのポート番号」を参照してください。

Management Serverおよび運用管理エージェントの通信ポートの指定

Management Serverおよび運用管理エージェントの通信ポートの指定については，ファイアウォールの外部からはアクセスできないように，公開ポートを使用しないことを推奨します。これらの通信ポートにアクセスできると，運用管理者以外の外部のユーザからアプリケーションサーバに対して不正な運用操作が実行されるおそれがあります。

(b)　ファイアウォールの設定

外部ネットワークとアプリケーションサーバ間のアクセスについて制御するために，次の項目を設定します。

外部ネットワークからアプリケーションサーバに対してのアクセス許可

ファイアウォールの外部のネットワークとアプリケーションサーバ間の通信では，公開ポートであるCORBAネーミングサービスおよびEJBコンテナの固定ポートなどだけを許可するようにします。ただし，システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

アクセスを許可するクライアントのIPアドレスの限定（任意）

ファイアウォールの機能を使用してアクセスを許可するクライアントのIPアドレスを限定することで，そのシステムの利用者を特定できます。この場合は，ファイアウォールに通信を許可するIPアドレスを指定してください。

Management Serverおよび運用管理エージェントの通信ポートの指定

Management Serverおよび運用管理エージェントの通信ポートについては，ファイアウォールの外部からはアクセスできないように通信を遮断してください。これらの通信ポートにアクセスできると，運用管理者以外の外部のユーザからアプリケーションサーバに対して不正な運用操作が実行されるおそれがあります。

(c)　侵入検知システムの設定

外部ネットワークとアプリケーションサーバの公開ポートの通信内容を監視するために，次の項目を設定します。

通信内容の監視

通信内容に既知の攻撃パターンや，攻撃と疑われるようなパターンが含まれている場合は運用管理者などに警告を通知するように設定します。侵入検知システムとファイアウォールの連携機能を利用して，疑わしい通信は自動的に遮断するように設定することもできます。

SSLコネクションの確立部分への攻撃の監視

HTTPSによるアクセスは，通信内容が暗号化されているため，基本的に通信内容を監視できません。この場合は，HTTPSに関する既知の攻撃パターンとして，SSLコネクションの確立部分への攻撃などを監視対象としてください。

公開ポート以外のポートへの通信の監視

アプリケーションサーバの公開ポート以外のポートへの通信が外部ネットワークから送信されている場合は，設定ミスなどによってファイアウォールが突破されているおそれがあります。この場合，警告を通知するように設定することをお勧めします。

(4)　サーバの層ごとにファイアウォールで区切る構成（アプリケーション集中型）

システムの規模によっては，一つのシステムが複数のアプリケーションサーバおよびそのほかのサーバで構成されることがあります。このような構成では，それぞれの層でセキュリティを確保する必要があります。

ここでは，Webサーバ，アプリケーションサーバおよびデータベースサーバを多層化した場合に，アプリケーションはすべて同じ層のアプリケーションサーバで動作させる構成について説明します。この構成を，アプリケーション集中型の構成といいます。

アプリケーション集中型の構成の場合のファイアウォールと侵入検知システムの配置例を次の図に示します。この構成では，サーバの層ごとに1台ずつ，合計3台のファイアウォールを配置しています。また，DMZには，リバースプロキシモジュールを組み込んだWebサーバ（リバースプロキシサーバ）を配置しています。

図4‒6　アプリケーション集中型のファイアウォールと侵入検知システムの配置

また，コストなどの要因からファイアウォール数を削減したい場合は，次の図に示すような構成にできます。この例では，ファイアウォール1とファイアウォール2で実行するアクセス制御をファイアウォール1に集約して，ファイアウォール2を削減します。

図4‒7　ファイアウォールを削減した構成

この構成の場合は，ファイアウォール2で設定する内容を，ファイアウォール1にまとめて設定してください。

(a)　アプリケーションサーバの設定

アプリケーションサーバでは，次の項目を設定します。

J2EEサーバの管理用通信ポートのアドレス指定

J2EEサーバの管理用通信ポートにアクセスできるアドレスを指定します。

Management Serverおよび運用管理エージェントのアドレス指定

Management Serverおよび運用管理エージェントにアクセスできるアドレスを指定します。

(b)　ファイアウォールの設定

この構成では，次に示す三つのファイアウォールを使用しています。

ファイアウォール1

外部のネットワークとDMZのWebサーバ（リバースプロキシサーバ）間のアクセスを制御します。

ファイアウォール2

DMZのWebサーバ（リバースプロキシサーバ）と内部のネットワークにあるアプリケーションサーバ間のアクセスを制御します。

ファイアウォール3

アプリケーションサーバとデータベースサーバ間のアクセスを制御します。

それぞれのファイアウォールに設定する内容について説明します。

ファイアウォール1の設定

外部のネットワークとDMZのWebサーバ（リバースプロキシサーバ）間のアクセスを制御するためのファイアウォールです。次の項目を設定します。

外部ネットワークからWebサーバ（リバースプロキシサーバ）に対してのアクセス許可

ファイアウォール1よりも外部のネットワークからアプリケーションサーバ内のWebサーバに対する通信は，公開ポートへの通信だけを許可します。HTTP/80やHTTPS/443などが該当します。ただし，システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

アクセスを許可するWebクライアントのIPアドレスの限定（任意）

ファイアウォールの機能を使用してアクセスを許可するWebクライアントのIPアドレスを限定することで，そのシステムの利用者を特定できます。この場合は，ファイアウォール1に通信を許可するIPアドレスを指定してください。

ファイアウォール2の設定

Webサーバとアプリケーションサーバ間のアクセスを制御するためのファイアウォールです。次の項目を設定します。

DMZのWebサーバ（リバースプロキシサーバ）から内部ネットワークのアプリケーションサーバ内のWebサーバに対してのアクセス許可

ファイアウォール2よりも外部のネットワーク（DMZ）からアプリケーションサーバ内のWebサーバに対する通信は，公開ポートへの通信だけを許可します。HTTP/80やHTTPS/443などが該当します。ただし，システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

アクセスを許可するWebクライアントのIPアドレスの限定（任意）

ファイアウォールの機能を使用してアクセスを許可するWebクライアントのIPアドレスを限定することで，そのシステムの利用者を特定できます。この場合は，リバースプロキシサーバのIPアドレスを指定してください。

このほかの通信の設定は，システム構成によって，必要に応じて許可してください。DNSなどの通信の許可が必要な場合があります。

参考

WebサーバとJ2EEサーバが動作するアプリケーションサーバの間にファイアウォールを配置した場合には，次の設定が必要です。

Webサーバからアプリケーションサーバに対してのアクセス許可

J2EEサーバのWebサーバ通信用ポート（NIO HTTPサーバのリクエスト受付ポート。デフォルトのポート番号：8008）への通信の許可を設定します。

ファイアウォール3の設定

アプリケーションサーバとデータベース間のアクセスを制御するためのファイアウォールです。このファイアウォールが，システムで最も重要な情報を守るための最終防衛ラインになります。

次の項目を設定します。

アプリケーションサーバからデータベースサーバに対してのアクセス許可

アプリケーションサーバからデータベースサーバに対する通信は，データベースサーバの通信用ポートだけを許可するように設定します。データベースサーバの通信用ポートは，使用するデータベースの設定に従ってください。データベースサーバからアプリケーションサーバへのコネクション確立が必要な場合があるので注意してください。

このほかの通信の設定は，システム構成によって，必要に応じて許可してください。DNSなどの通信の許可が必要な場合があります。

(c)　侵入検知システムの設定

外部ネットワークとアプリケーションサーバ内のWebサーバの公開ポートの通信内容を監視するために，次の項目を設定します。

通信内容の監視

通信内容に既知の攻撃パターンや，攻撃と疑われるようなパターンが含まれている場合は運用管理者などに警告を通知するように設定します。侵入検知システムとファイアウォールの連携機能を利用して，疑わしい通信は自動的に遮断するように設定することもできます。

SSLコネクションの確立部分への攻撃の監視

HTTPSによるアクセスは，通信内容が暗号化されているため，基本的に通信内容を監視できません。この場合は，HTTPSに関する既知の攻撃パターンとして，SSLコネクションの確立部分への攻撃などを監視対象としてください。

公開ポート以外のポートへの通信の監視

アプリケーションサーバの公開ポート以外のポートへの通信が外部ネットワークから送信されている場合は，設定ミスなどによってファイアウォールが突破されているおそれがあります。この場合，警告を通知するように設定することをお勧めします。

(5)　サーバの層ごとにファイアウォールで区切る構成（アプリケーション分散型）

ここでは，Webサーバ，アプリケーションサーバおよびデータベースサーバを多層化した場合に，アプリケーションを複数の層のアプリケーションサーバで動作させるときの構成について説明します。この構成を，アプリケーション分散型の構成といいます。

アプリケーション分散型の構成の場合のファイアウォールと侵入検知システムの配置例を次の図に示します。この例では，Webサーバに該当するマシンがアプリケーションサーバを兼ねているため，WebアプリケーションがWebサーバと同じ層で動作します。また，Enterprise Beanは，Webサーバとは別のマシン上に構築されたアプリケーションサーバ上で動作します。

なお，運用管理は，各ホストに配置したManagement Serverによって実行します。このため，管理ホストは層ごとに配置しています。

この構成では，DMZのフロントに1台，およびサーバの層ごとに1台ずつ，合計4台のファイアウォールを配置しています。また，DMZには，リバースプロキシモジュールを組み込んだWebサーバ（リバースプロキシサーバ）を配置しています。

図4‒8　アプリケーション分散型のファイアウォールと侵入検知システムの配置

(a)　Web／アプリケーションサーバでの設定

Webサーバを兼ねたアプリケーションサーバマシン（Web／アプリケーションサーバ）では，次の項目を設定します。なお，このアプリケーションサーバマシンでは，Webアプリケーションが動作します。

J2EEサーバの管理用通信ポートのアドレス指定

J2EEサーバの管理用通信ポートにアクセスできるアドレスを指定します。

Management Serverおよび運用管理エージェントのアドレス指定

Management Serverおよび運用管理エージェントにアクセスできるアドレスを指定します。

(b)　アプリケーションサーバの設定

Enterprise Beanが動作するアプリケーションサーバでは，次の項目を設定します。

J2EEサーバの管理用通信ポートのアドレス指定

J2EEサーバの管理用通信ポートにアクセスできるアドレスを指定します。

Management Serverおよび運用管理エージェントのアドレス指定

Management Serverおよび運用管理エージェントにアクセスできるアドレスを指定します。

EJBコンテナが利用するポート番号の固定

EJBコンテナが利用するポート番号を明示的に指定（固定）する必要があります。

指定個所については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.15　アプリケーションサーバのプロセスが使用するTCP/UDPのポート番号」を参照してください。

(c)　ファイアウォールの設定

この構成では，次の4台のファイアウォールを使用しています。

ファイアウォール1

外部のネットワークとDMZのWebサーバ（リバースプロキシサーバ）間のアクセスを制御します。

ファイアウォール2

DMZのWebサーバ（リバースプロキシサーバ）と内部のネットワーク上のWeb／アプリケーションサーバ間のアクセスを制御します。

ファイアウォール3

Web／アプリケーションサーバとアプリケーションサーバ間のアクセスを制御します。

ファイアウォール4

アプリケーションサーバとデータベースサーバ間のアクセスを制御します。

それぞれのファイアウォールに設定する内容について説明します。

ファイアウォール1の設定

外部のネットワークとDMZのWebサーバ（リバースプロキシサーバ）間のアクセスを制御するためのファイアウォールです。次の項目を設定します。

外部ネットワークからWebサーバ（リバースプロキシサーバ）に対してのアクセス許可

ファイアウォール1よりも外部のネットワークからアプリケーションサーバ内のWebサーバに対する通信は，公開ポートへの通信だけを許可します。HTTP/80やHTTPS/443などが該当します。ただし，システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

アクセスを許可するWebクライアントのIPアドレスの限定（任意）

ファイアウォールの機能を使用してアクセスを許可するWebクライアントのIPアドレスを限定することで，そのシステムの利用者を特定できます。この場合は，ファイアウォール1に通信を許可するIPアドレスを指定してください。

ファイアウォール2の設定

外部のネットワークと内部のネットワーク上のWeb／アプリケーションサーバ間のアクセスを制御するためのファイアウォールです。次の項目を設定します。

DMZのWebサーバ（リバースプロキシサーバ）からアプリケーションサーバ内のWebサーバに対してのアクセス許可

ファイアウォール1よりも外部のネットワークから，アプリケーションサーバ内のWebサーバに対する通信は，公開ポートへの通信だけを許可します。HTTP/80やHTTPS/443などが該当します。ただし，システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

アクセスを許可するWebクライアントのIPアドレスの限定（任意）

ファイアウォールの機能を使用してアクセスを許可するWebクライアントのIPアドレスを限定することで，そのシステムの利用者を特定できます。この場合は，リバースプロキシサーバのIPアドレスを指定してください。

ファイアウォール3の設定

Web／アプリケーションサーバとアプリケーションサーバ間のアクセスを制御するためのファイアウォールです。次の項目を設定します。

Web／アプリケーションサーバからアプリケーションサーバに対してのアクセス許可

Web／アプリケーションサーバからアプリケーションサーバ上のJ2EEサーバを利用するために，次のポート番号に通信できるように設定してください。

・CORBAネーミングサービス

ポート番号は，通常固定されています（デフォルトのポート番号：900）。

・EJBコンテナ

ポート番号が固定されていないため，EJBコンテナが利用するポート番号を明示的に指定（固定）する必要があります。

指定個所については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.15　アプリケーションサーバのプロセスが使用するTCP/UDPのポート番号」を参照してください。

トランザクション関連の双方向アクセスの許可（グローバルトランザクションでトランザクションコンテキストプロパゲーションを使用する場合）

Web／アプリケーションサーバとアプリケーションサーバの間で，グローバルトランザクションでトランザクションコンテキストプロパゲーションを使用する場合は，両方のアプリケーションサーバの次に示すポートが双方向で通信できるように設定します。

・J2EEサーバのトランザクションリカバリ用通信ポート（デフォルトのポート番号：20302）

・スマートエージェントの通信ポート（デフォルトのポート番号：14000）

そのほかの設定（任意）

システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

ファイアウォール4の設定

アプリケーションサーバとデータベース間のアクセスを制御するためのファイアウォールです。このファイアウォールが，システムで最も重要な情報を守るための最終防衛ラインになります。

次の項目を設定します。

アプリケーションサーバからデータベースサーバに対してのアクセス許可

アプリケーションサーバからデータベースサーバに対する通信は，データベースサーバの通信用ポートだけを許可するように設定します。データベースサーバの通信用ポートは，使用するデータベースの設定に従ってください。データベースサーバからアプリケーションサーバへのコネクション確立が必要な場合があるので注意してください。また，システム構成によっては，DNSなど，そのほかの通信を必要に応じて許可してください。

(d)　侵入検知システムの設定

外部ネットワークとアプリケーションサーバ内にあるWebサーバの公開ポートの通信内容を監視するために，次の項目を設定します。

通信内容の監視

通信内容に既知の攻撃パターンや，攻撃と疑われるようなパターンが含まれている場合は運用管理者などに警告を通知するように設定します。侵入検知システムとファイアウォールの連携機能を利用して，自動的に疑わしい通信は遮断するように設定することもできます。

SSLコネクションの確立部分への攻撃の監視

HTTPSによるアクセスは，通信内容が暗号化されているため，基本的に通信内容を監視できません。この場合は，HTTPSに関する既知の攻撃パターンとして，SSLコネクションの確立部分への攻撃などを監視対象としてください。

公開ポート以外のポートへの通信の監視

Web／アプリケーションサーバの公開ポート以外のポートへの通信が外部ネットワークから送信されている場合は，設定ミスなどによってファイアウォールが突破されているおそれがあります。この場合，警告を通知するように設定することをお勧めします。

4.11.3　SSLアクセラレータを使用して暗号通信を処理する

ここでは，SSLアクセラレータを使用して暗号通信を処理する方法について説明します。

(1)　SSLアクセラレータを使用する目的

セキュリティ上の脅威のうち，アプリケーションの通信内容の第三者への漏洩または改ざんを防ぐ方法の一つに，通信内容の暗号化があります。暗号化手段としては，通信にHTTPSを使用する方法があります。ただし，HTTPSの基盤となるTLS／SSLによる通信は大変負荷が高い処理です。

SSLアクセラレータは，このような場合に，Webサーバやアプリケーションサーバに負荷を掛けないで，HTTPSによって暗号化された通信内容の処理を実現するための専用ハードウェアです。SSLアクセラレータを適切に配置することで，Webサーバやアプリケーションサーバに負荷を掛けることなく，暗号化された内容の通信を高速化できます。

(2)　SSLアクセラレータの配置

SSLアクセラレータを適用した構成の例を次の図に示します。

図4‒9　SSLアクセラレータを適用した構成

WebクライアントからHTTPSによって送信された通信内容は，SSLアクセラレータによって復号化され，HTTPによってWebサーバまたはアプリケーションサーバに送信されます。また，WebサーバまたはアプリケーションサーバからHTTPによって送信された通信内容は，SSLアクセラレータによって暗号化されて，Webクライアントに送信されます。

SSLアクセラレータを配置する場合は，次の点に留意してください。

SSLアクセラレータは，ファイアウォールとの併用もできます。併用する場合は，SSLアクセラレータをWebサーバまたはアプリケーションサーバと一体として扱ってください。

4.11.4　アプリケーションでユーザを認証する

ここでは，Webクライアント構成の場合に，セキュリティ確保のためにアプリケーションで利用できる認証機能について説明します。

(1)　アプリケーションでユーザを認証する目的

アプリケーションを実行するユーザを認証することで，セキュリティ上の脅威のうち，システム利用者によって，許可した権限の範囲を超えて操作されたり情報を入手されたりすることを防げます。

アプリケーションサーバでは，次の3種類のプロトコルを使用してユーザ認証によるセキュリティ確保ができます。

HTTPS（クライアント認証）

HTTP（Basic認証）

HTTP（Form認証）

これらのプロトコルを目的に応じて使い分けて，セキュリティを確保してください。

(2)　アプリケーションによるユーザ認証方法の比較

通信プロトコルごとの，認証実施個所および認証に使用されるエンジンについて，次の表に示します。

表4‒8　通信プロトコルごとの認証実施個所および認証に使用されるエンジン

使用するプロトコル

認証実施個所

認証に使用されるエンジン

HTTPS(クライアント認証)

HTTP ServerまたはMicrosoft IIS

SSL

SSLアクセラレータ

SSL

HTTP(Basic認証)

HTTP Server

HWSパスワードファイル

LDAPリポジトリ

J2EEサーバ（Webコンテナ）

パスワードファイル

HTTP(Form認証)

J2EEサーバ（Webコンテナ）

パスワードファイル

J2EEサーバ（統合ユーザ管理）

統合ユーザ管理パスワードファイル

データベース

LDAPリポジトリ

それぞれのプロトコルおよび認証に使用されるエンジンには特徴があります。それらの特徴を考慮して，システムの目的に合った認証方法を選択してください。

(a)　プロトコルの特徴

アプリケーションサーバのシステムの認証処理に使用できるプロトコルの特徴について，次の表に示します。

表4‒9　プロトコルの特徴

使用するプロトコル

認証インタフェースの自由度

クライアントでの管理の容易さ

ネットワークの安全性

HTTPS

（クライアント認証）

Webブラウザが提供する機能に制約されます。

クライアント証明書が必要です。

暗号化されているため，盗聴されても認証情報は安全です。

HTTP

（Basic認証）

Webブラウザが提供する機能に制約されます。

一般的なユーザ名称／パスワード形式を使用した認証ができます。

パスワードが平文またはそれと同等の形式で流出します。

このため，通常は，HTTPS（サーバ認証だけ）の暗号機能と併用して使用します。

HTTP

（Form認証）

アプリケーションごとにデザインできます。

一般的なユーザ名称／パスワード形式を使用した認証ができます。

パスワードが平文またはそれと同等の形式で流出します。

このため，通常は，HTTPS（サーバ認証だけ）の暗号機能と併用して使用します。

(b)　認証に使用されるエンジンの特徴

認証に使用されるエンジンの特徴について，次の表に示します。

表4‒10　認証に使用されるエンジンの特徴

エンジンの種類

汎用性

保守性

システム構成への影響

性能影響への影響

パスワードファイル

使用する機能ごとに形式が異なります。

サーバまたはホストごとにユーザ情報が散在します。

特に認証用のプロセスは必要ありません。

認証時にほかのプロセスやホストとの通信が発生しないため，高速です。

データベース

形式によっては，既存のユーザ情報データベースを利用できます。

ユーザ情報の一括管理ができます。

ユーザ情報を格納するデータベースサーバが必要です。

認証時にデータベースアクセスに必要な時間が掛かります。

LDAPリポジトリ

形式によっては，既存のユーザ情報リポジトリを利用できます。

ユーザ情報の一括管理，および分散したユーザ情報の集中管理ができます。

ユーザ情報を格納するLDAP対応のディレクトリサーバが必要です。

認証時にLDAPディレクトリサーバへのアクセスに必要な時間が掛かります。

第3編　機能解説

5　統合ユーザ管理による認証

この章では，アプリケーションサーバで構築したシステムのユーザを統合管理するための統合ユーザ管理フレームワークによる認証について説明します。

5.1　この章の構成

統合ユーザ管理フレームワークとは，Javaの標準ユーザ認証（JAAS）によるアプリケーションユーザ管理および複数のアプリケーションへのシングルサインオンを実現するフレームワークです。ここでは，統合ユーザ管理フレームワークを使用した統合ユーザ管理について説明します。

この章の構成を次の表に示します。

表5‒1　この章の構成（統合ユーザ管理）

分類

タイトル

参照先

解説

統合ユーザ管理の概要

5.2

標準ログインモジュールによるユーザ認証の仕組み

5.3

統合ユーザ管理のセッション管理

5.4

シングルサインオンの利用方法

5.5

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

5.6

ユーザ情報の管理

5.7

統合ユーザ管理フレームワークが提供するAPI

5.8

実装

統合ユーザ管理フレームワークによるユーザ認証の実装

5.9

APIを使用したユーザ認証の実装

5.10

タグライブラリを使用したユーザ認証の実装

5.11

カスタムログインモジュールを使用したユーザ認証の実装

5.12

設定

統合ユーザ管理機能の設定手順

5.13

レルム名の決定

5.14

LDAPディレクトリサーバの設定

5.15

ユーザ情報の登録

5.16

暗号鍵ファイルの作成（シングルサインオンを使用する場合）

5.17

ユーザ情報の登録（シングルサインオンを使用する場合）

5.18

コンフィグレーションファイルの作成

5.19

JavaVMのプロパティの設定

5.20

ファイルのデプロイ

5.21

注　「運用」および「注意事項」について，この章での説明はありません。

5.2　統合ユーザ管理の概要

統合ユーザ管理は，アプリケーションサーバシステムにログインするユーザについての情報を統合管理する機能です。

統合ユーザ管理を実現するために，Application Serverでは次の機能を提供しています。

統合ユーザ管理フレームワーク

統合ユーザ管理でのユーザ認証を実現するフレームワークです。Java標準仕様（JAAS）に従ったアプリケーションプログラムインタフェースを提供します。

5.2.1　統合ユーザ管理の目的

従来，企業内にある各種の業務システムでは，業務の要件によってそれぞれ独自の方法でそのシステムのユーザを管理しています。例えば，勤休管理のシステムでは，社員データベースに登録された社員個人をシステムのユーザとして区別します。また，資材の発注システムでは，原価管理のための各部署をシステムのユーザとして区別します。最近はイントラネット技術の発展によって，システムごとのクライアントプログラムをインストールしなくても，Webブラウザを使ってこれらの業務サービスを受けられるようになってきています。しかし，社内メールサービスを利用するにはメールのIDで，勤休管理サービスでは社員番号で，また資材発注サービスは部署コードでログインをするといったように，それぞれのシステムのユーザ管理に従ったユーザ認証のための操作が必要で，簡単にそれらのシステムのサービスを統合した新たなサービスを提供することは困難でした。

統合ユーザ管理フレームワークは，JavaEEの技術でこれらのサービスを統合するためのユーザ管理のフレームワークです。統合ユーザ管理フレームワークの例を次の図に示します。

図5‒1　統合ユーザ管理フレームワークの例

5.2.2　レルムを使用したユーザ管理とユーザマッピング

ここでは，統合ユーザ管理で使用する概念である，レルムとユーザマッピングについて説明します。

(1)　レルム（Realm）

レルムとは，同一の認証ポリシーを適用する範囲のことです。業務サービスを提供するアプリケーションは，提供するサービスの要件に従って，そのサービスを利用するユーザを区別します。ユーザを区別するための処理は，一般に認証処理と呼ばれます。認証処理は，サービスを利用するユーザを区別するための認証メカニズムと，そのためのユーザ認証データベース（ユーザ認証リポジトリ）によって分類できます。どのような認証メカニズム（群）を利用し，どのようなユーザをユーザ認証データベースに登録するかといった認証ポリシーを決定するのは，システムを管理するシステム管理者の仕事です。

単一のサービスを提供するシステムを構築する場合にはあまり問題になりませんが，多数のサービスを提供するシステムを構築する場合，どの範囲でどのような認証ポリシーを適用してシステムを運用するかという検討が必要です。Webシステムでは，同一の認証ポリシーを適用する範囲をレルムと呼び，それぞれのレルムを識別する名称のことをレルム名と呼びます。あるレルムで認証されたユーザは，該当レルム内でそのユーザを一意に識別する識別子（ユーザID）を持っています。

同じユーザ管理要件を持つ複数のアプリケーションは，一つのレルムで運用できます。新たにすべてのサービスを構築する場合，すべてのサービスを一つのレルムにして，認証されたユーザの持つセキュリティ属性によって各種のサービスに対してコントロールするようにできれば管理しやすいのですが，現実にはなかなかそのようなシステムの構築はされません。社内メールではメールのID，人事システムでは従業員番号，資材システムには部署コードでログインするといったように，企業システムにはすでに多くのレルムがあり，これらは別々に管理運用されています。

管理者は，Application Serverを使用してこれらのサービスの統合をする場合，何のためにそのレルムが必要なのか分析し，運用管理を簡単にするためにできるだけ少ないレルムで運用できるように，レルムの統廃合を検討してください。レルムの運用例を次の図に示します。

図5‒2　レルムの運用例

(2)　レルム間のユーザマッピング

業務サービスを提供するアプリケーションは，ユーザの情報が必要になると，まずエンドユーザにユーザIDとパスワードの入力を求め，それを基にユーザを認証します。一度受けた認証の結果は，ログアウトするまで保持されます。ただし，ユーザIDおよびパスワードが異なるアプリケーションに続けてログインしようとすると，そのたびにアプリケーションからユーザIDとパスワードの入力を求められます。つまり，一度一つのアプリケーションで認証を受けたユーザであっても，異なるレルムで管理されているアプリケーションにアクセスするためには，そのつど認証を受ける必要があります。

これに対して，あるレルムでログインしたユーザが，ほかのレルムでどのユーザとして扱われるのかが分かれば，レルムが異なるJ2EEアプリケーションにログインするたびにユーザIDとパスワードを入力する必要はなくなります。統合ユーザ管理フレームワークでは，この問題を解決するために，あるレルムでログインしたユーザをほかのレルムのユーザにマッピングするユーザマッピングを実現します。

ユーザマッピングとは，元のレルムでの認証が成功したという認証状態が引き継がれていれば，自動的にほかのレルムにマッピングしてユーザ認証をするものです。ユーザマッピングをする場合，Application Serverのシステム管理者が，あるレルムのユーザとほかのレルムのユーザとのマッピング情報をあらかじめシステムに定義しておきます。

次の図に示すようなユーザマッピングの例では，勤休管理サービスで認証されたユーザ「USER3」に対して，資材発注サービスのユーザ「dev_3」のマッピングを定義しておきます。これによって，勤休管理サービスに「USER3」として認証されたユーザは，資材発注サービスへのログイン操作をしなくても自動的に該当サービスに対して「dev_3」として認証されます。

図5‒3　ユーザマッピングの例

5.2.3　Java標準仕様（JAAS）に準拠したユーザ認証の概要

今までの業務システムのWeb化では，従来の業務システムが持っていたユーザ認証機構をWebのサービスから独自のインタフェースで呼び出していました。また，最初からJavaEEの技術技術で構築されるWeb業務サービスも，各社のアプリケーションサーバが提供する独自のユーザ認証機構を使って構築されてきました。これらのインタフェースの違いは，サービスを統合する場合の大きな障害になっていました。しかし，Javaの標準ユーザ認証の仕様としてJAAS（Java Authentication and Authorization Service） 1.0が決まり，現在ではJavaEEの技術で構築されるWeb業務サービスのユーザ認証の標準となっています。

(1)　統合ユーザ管理フレームワークと個別のユーザ管理の関連

JAASでは，アプリケーションが認証を要求する側のインタフェース（API：アプリケーションプログラミングインタフェース）と，その要求を受け認証処理をする側のインタフェース（SPI：サービスプロバイダインタフェース）を規定しています。認証処理をする側のモジュールをログインモジュールといいます。APIとSPIの関係を次の図に示します。

図5‒4　APIとSPIの関係

Application Serverでは，標準でパスワード認証の機能を持つ標準ログインモジュールを提供しています。この標準ログインモジュールを利用して，JAASのAPIを使用するJSP/サーブレットで作成されたJ2EEアプリケーションのユーザ管理ができます。

標準ログインモジュールを使用すれば，アプリケーション開発者は，独自に認証モジュールを開発する必要はありません。また，モジュールはスタック可能なので，標準ログインモジュールと連携する拡張認証モジュールを容易に追加できます。さらに，完全に独自認証機能を必要とするアプリケーションでは，容易に標準ログインモジュールを独自認証モジュールに置き換えて使用できます。これによって，JAASを使用してユーザ認証をしているアプリケーションプログラムを簡単にApplication Serverで統合できるようになります。

これを，JAAS対応ユーザ管理と呼びます。JAAS対応ユーザ管理の概要を次の図に示します。なお，図中のユーザ情報リポジトリとは，認証処理に必要なユーザ情報が格納されているリポジトリです。

図5‒5　JAAS対応ユーザ管理の概要

統合ユーザ管理フレームワークに従って，JAAS対応ユーザ管理を使用すると，ある業務サービスで認証されたユーザを，別の業務サービスのユーザにマッピングして認証要求する，ユーザマッピングの機能を利用できます。また，独自のユーザ情報リポジトリを利用する場合でも，カスタムログインモジュールを作成すれば，その業務サービスも含めたシングルサインオンが実現できます。ユーザマッピングによるシングルサインオンの概要を次の図に示します。なお，図中のシングルサインオン情報リポジトリとは，シングルサインオンに必要なマッピング情報が格納されているリポジトリです。

図5‒6　ユーザマッピング機能の概要

(2)　標準ログインモジュールの概要

標準ログインモジュールは，パッケージjavax.security.auth.spiに含まれるLoginModuleインタフェースの実装クラスです。実現する認証方法に応じて使い分けられます。

標準ログインモジュールの特徴を次に示します。

既存のユーザ情報（LDAP情報またはデータベース情報）を利用したユーザ認証ができます。

標準ログインモジュールでは，ユーザ認証に使用するユーザ情報を格納するリポジトリとしてLDAPディレクトリサーバまたはデータベース（RDB）を使用できます。

LDAPディレクトリサーバを使用する場合，標準のユーザ管理リポジトリのDIT（Directory Information Tree）の構造をApplication Serverが規定しています。また，すでにLDAPを導入しているときには，その情報を利用できるように簡単にカスタマイズできます。なお，DITとは，ユーザや組織の情報をツリー構造で管理するためのLDAPの仕組みです。詳細については，「5.2.4　統合ユーザ管理で使用するユーザ情報の管理方法」を参照してください。

認証方式としては，証明書を使用した認証やパスワード認証ができます。認証方式は，標準ログインモジュールの種類によって異なります。

ユーザ情報を参照できます。

ユーザ認証が成功した場合に，ログインユーザについての情報を参照できます。

JAASでは，認証が成功すると認証したユーザの情報をCredentialとしてSubjectに設定することが規定されています。また，これを要求元のアプリケーションからjava.util.setインタフェースで参照するための一般的なメソッド（getPublicCredentialsメソッドおよびgetPrivateCredentialsメソッド）が規定されています。

標準ログインモジュールでは，ユーザ情報を参照するためのインタフェースを提供しています。このインタフェースでは，コンフィグレーションに従って，ユーザの情報をApplication Serverが提供するUserAttributesインタフェースで扱うオブジェクトとして，Credentialに設定します。アプリケーションでは標準のインタフェースでこのオブジェクトを取り出し，該当オブジェクトのgetAttributeメソッドに属性名を指定して呼び出すことで，必要なユーザ情報を取得できます。また，属性名の別名（エイリアス）を指定して，情報を取得することもできます。

シングルサインオンを実現できます。

標準ログインモジュールは，シングルサインオンに対応できます。

なお，シングルサインオンを実現する場合，ユーザ情報を管理しているリポジトリの種類と関係なく，LDAPディレクトリサーバが必要です。

5.2.4　統合ユーザ管理で使用するユーザ情報の管理方法

ここでは，統合ユーザ管理で使用するユーザ情報の管理方法について説明します。

統合ユーザ管理では，ユーザ情報を格納するリポジトリとして，LDAP，またはデータベースを使用します。LDAPディレクトリサーバでは，ユーザや組織の情報は，DITで管理されます。統合ユーザ管理フレームワークで使用するLDAPディレクトリサーバでは，ユーザおよびレルムをDITのエントリとして管理します。エントリは，DITを構成する情報で，DITの各節に該当する情報です。個々のエントリは，DN（識別名）で区別されます。

Application Serverでは，統合ユーザ管理フレームワークで使用するLDAPディレクトリサーバに格納する標準のユーザ管理リポジトリのDIT構造を規定しています。統合ユーザ管理フレームワークで使用するリポジトリは，2種類あります。

ユーザ情報リポジトリ

ユーザ情報を格納します。

シングルサインオン情報リポジトリ

統合ユーザ管理フレームワークのユーザマッピングを実行して，シングルサインオンでユーザ認証するための各システムの認証情報とマッピング情報を格納します。

これらのリポジトリは，次の図に示すようなディレクトリ構造を持ちます。

図5‒7　統合ユーザ管理フレームワークのリポジトリのDIT構造

各リポジトリについて説明します。

(1)　ユーザ情報リポジトリ（LDAPディレクトリサーバの場合）

ユーザ認証で使用するユーザ情報は，ユーザ情報リポジトリに格納します。統合ユーザ管理フレームワークは，LDAPディレクトリサーバのユーザ情報リポジトリに格納されたユーザ情報を基にユーザを認証して，認証したユーザの情報をアプリケーションに渡します。ユーザ情報リポジトリのユーザ情報の参照には，ユーザ認証ライブラリを使用します。ユーザ情報リポジトリのDIT構造を次の図に示します。

図5‒8　ユーザ情報リポジトリのDIT構造

管理するレルムごとにユーザ情報リポジトリを設定してください。

(a)　レルム

JAAS対応ユーザ管理のレルム名を指定します。レルム名は次の表に示す基準に従って指定してください。

表5‒2　レルム名の基準

情報の種類

意味

文法

レルム名

ユーザ管理の範囲を示す識別子。

英数字列。

大文字と小文字を区別しません。

DN名で使用できる名前を付けてください。

注　英数字列は，英字（A〜Z，a〜z）と数字（0〜9）の文字の並びを意味します。ASCII文字列で指定してください（文法については，プログラムではチェックしていません）。

(b)　アプリケーション固有情報

該当レルムを使用する各アプリケーション固有の情報を格納する場合に使用してください。統合ユーザ管理フレームワークを使用する場合に必須な情報はありません。

(c)　ユーザ認証ライブラリのベースDN

レルムに属するユーザエントリの上位エントリです。レルムに属する各ユーザのエントリは，このエントリの下階層にある必要があります。なお，ユーザエントリがこのエントリの直下にない場合は，ua.conf（統合ユーザ管理のコンフィグレーションファイル）のcom.cosminexus.admin.auth.ldap.search.scopeオプションを変更する必要があります。また，このエントリで指定した情報はjaas.conf（JAASのコンフィグレーションファイル）に指定する必要があります。各コンフィグレーションファイルについては，「14.2.1　jaas.conf（JAASのコンフィグレーションファイル）」を参照してください。

(d)　ユーザエントリ

ユーザ情報を定義します。ユーザ認証ライブラリでは，ユーザ情報として次の表に示す属性が必要です。

表5‒3　ユーザ情報に必要な属性

属性名

説明

必須

ユーザID

ユーザIDを格納します。属性は，文字列（cisなど）である必要があります。デフォルトでは，「uid」属性名を使用します。

必須

パスワード

パスワードを格納します。属性はバイナリです。平文または暗号化した値を格納します。この属性に値が指定されていない場合は，アカウントが無効になります。デフォルトでは，「userPassword」属性名を使用します。

オプション

そのほかの属性

各アプリケーションが定義している属性です。

各アプリケーションの仕様に従ってください。

ユーザIDおよびパスワードの属性名は，jaas.conf（JAASのコンフィグレーションファイル）で変更できます。

(e)　注意事項

ユーザ情報リポジトリのディレクトリ構成は，JAAS対応ユーザ管理で推奨するDIT構成です。別の構成で管理する場合は「ユーザ認証ライブラリのベースDN」以下の次の条件を満たすユーザのエントリが必要です。

ユーザIDとパスワードは，同一オブジェクトクラス内にある必要があります。

パスワードの属性はバイナリである必要があります。また，暗号化した値が格納されていることを推奨します。平文で格納されている場合は，一度ldif形式のファイルに出力してからconvpwコマンドで暗号化して，再登録してください。convpwコマンドの詳細については，「convpw（パスワードの暗号化）」を参照してください。

ユーザIDおよびパスワードは，同じ属性名を使用してマルチバリューで指定できますが，アプリケーションサーバシステムの運用上，一つのオブジェクトクラス内に一つだけ指定してください。もし，複数指定した場合は，最初に見つかったものを使用します。

ユーザIDとして使用する属性のユーザIDは，レルム内（ユーザ情報リポジトリのベースDN下）で一意な値にしてください。

なお，ユーザ情報リポジトリのベースDN，使用するユーザIDおよびパスワードの属性名については，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で指定します。ua.confについては，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

(2)　ユーザ情報リポジトリ（データベースの場合）

統合ユーザ管理フレームワークは，データベースに格納されたユーザ情報を基にユーザを認証できます。データベースでは，ユーザIDからパスワードを取得できるようにしてください。

(3)　シングルサインオン情報リポジトリ

シングルサインオンでユーザ認証するための各システムの認証情報とマッピング情報は，シングルサインオン情報リポジトリに格納します。統合ユーザ管理フレームワークは，LDAPディレクトリサーバのシングルサインオン情報リポジトリに格納されたユーザ情報を基にユーザマッピングをして，シングルサインオンを実現します。シングルサインオン情報リポジトリのユーザ情報は，シングルサインオンライブラリを使用して参照します。シングルサインオン情報リポジトリのDIT構造を次の図に示します。

図5‒9　シングルサインオン情報リポジトリのDIT構造

(a)　シングルサインオン情報リポジトリのベースDN

シングルサインオンを使用するために必要な情報を管理するDITの，最上位のエントリです。このエントリは，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で指定します。ua.confについては，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。なお，ここで指定する名称は，大文字と小文字が区別されません。この値は，標準のオブジェクトクラスである「organizationalUnit」のou属性に設定されます。

(b)　レルム

ユーザ情報はレルムごとに管理されます。シングルサインオン情報リポジトリのレルム名では，大文字と小文字は区別されません。この値は，標準のオブジェクトクラスである「organizationalUnit」のou属性に設定されます。

(c)　ユーザエントリ

シングルサインオンで接続したいアプリケーションで，ユーザ管理に使用しているユーザの認証情報および接続先を格納するためのエントリです。ユーザエントリの構造を次の図に示します。

図5‒10　ユーザエントリの構造

管理用識別子

シングルサインオンライブラリで登録した際に自動的に設定される識別子です。

ユーザID

各レルムで一意なユーザIDを文字列で指定します。ユーザIDでは，大文字と小文字は区別されます。

暗号化したデータ

登録する際に暗号化が必要なデータを格納します。例えば，パスワードは，この属性に格納することで，暗号化されて保存されます。

暗号化しないデータ

登録する際に暗号化する必要がない，ユーザIDおよび暗号化データ以外に認証に必要な情報を格納します。例えば，ユーザに付くグループIDを保存します。

ユーザ管理を持つアプリケーションのユーザエントリのDN名

ここには，ユーザが接続する，ユーザ管理を持つアプリケーションのユーザ認証情報の格納先（DN名）が格納されます。この値は，複数指定できます。

5.2.5　ユーザ認証の有効期間と認証状態の引き継ぎ

JAASでのユーザ認証の有効期限は，loginメソッドの成功からlogoutメソッドを呼び出すまでです。

J2EEのWebアプリケーションでは，ユーザとの仮想的なセッションをHttpSessionオブジェクトでコントロールします。複数のHTTPプロトコルの通信を一連のセッションとして扱う場合は，WebアプリケーションでCookieまたはURL書き換えなどでHttpSessionオブジェクトと要求ユーザの結び付けをするようにコーディングします。

統合ユーザ管理フレームワークでは，ユーザ認証に成功した状態をHttpSessionオブジェクトで記憶しています。同一HttpSessionオブジェクトを利用した要求で，かつ同一レルムの場合に限り，2回目以降のログインでは，自動的に最初のログインで指定されたユーザの認証情報（ユーザID／パスワード）を使用して認証状態の引き継ぎをするため，エンドユーザからの認証情報の入力を省略できます。

ただし，次の表に示す順序でログインモジュールが使用された場合，エンドユーザから認証情報の入力を省略する機能は働きません。それぞれのログインモジュールの機能については，「5.3　標準ログインモジュールによるユーザ認証の仕組み」を参照してください。

表5‒4　エンドユーザから認証情報の入力を省略する機能が働かない使用順序

使用順序

使用するログインモジュール

1回目のログイン

DelegationLoginModule（カスタムログインモジュールやWebCertificateLoginModuleを呼び出す場合）

WebCertificateLoginModule

WebSSOLoginModule（カスタムログインモジュールやWebCertificateLoginModuleを呼び出す場合）

2回目以降のログイン

WebPasswordLDAPLoginModule

また，次の表に示す順序でログインモジュールを使用する場合，WebPasswordLDAPLoginModuleによる2回目以降のログインで認証情報の入力を省略するためには，最初のログインで使用するログインモジュールでパスワードを統合ユーザ管理のセッションに保持する必要があります。さらに，WebPasswordLDAPLoginModuleでの2回目以降のログインに使用するパスワードが最初のログインで保持したパスワードと同じでなければなりません。パスワードを保持するかどうか，および保持する場合に暗号化をするかどうかは，jaas.conf（JAASのコンフィグレーションファイル）およびua.conf（統合ユーザ管理のコンフィグレーションファイル）で指定できます。jaas.conf（JAASのコンフィグレーションファイル）の指定方法については，「14.2.1　jaas.conf（JAASのコンフィグレーションファイル）」を参照してください。ua.conf（統合ユーザ管理のコンフィグレーションファイル）の指定方法については，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

表5‒5　2回目以降のログインで認証情報の入力を省略するために条件がある使用順序

使用順序

使用するログインモジュール

1回目のログイン

WebPasswordLoginModule

WebPasswordJDBCLoginModule

WebPasswordLDAPLoginModule

2回目以降のログイン

WebPasswordLDAPLoginModule

保持するパスワードを暗号化しない場合，J2EEサーバが使用するメモリの内容を何らかの方法で参照されるとパスワードが漏洩する可能性があります。また，セッションフェイルオーバ機能を使用する場合，パスワードを含むセッション情報がネットワークを流れるため，パスワードが盗聴されるおそれがあります。暗号化をすることで，パスワードが漏洩するおそれは少なくなりますが，性能は劣化します。暗号化をするかどうかは，必要とするセキュリティや性能に応じて決定してください。なお，暗号化する場合，暗号アルゴリズムにはトリプルDESが使用されます。

5.2.6　統合ユーザ管理の処理の流れ

統合ユーザ管理を使用する場合の処理の流れを次の図に示します。

図5‒11　統合ユーザ管理を使用する場合の処理の流れ

図の流れについて説明します。

Webブラウザからログインを要求するリクエストを送信します。

Webアプリケーションから，認証処理をするためのログインモジュールの呼び出し処理が実行されます。

標準ログインモジュールを使用して，ユーザ認証処理が実行されます。使用するログインモジュールおよびそのコンフィグレーションは，jaas.conf（JAASのコンフィグレーションファイル）またはua.conf（統合ユーザ管理のコンフィグレーションファイル）に定義されています。また，認証に必要な情報は，ユーザ情報リポジトリであるLDAPディレクトリサーバまたはデータベースから取得します。

認証結果がWebアプリケーションに返却されます。

この処理を実現するためには，システムを構築するユーザとアプリケーション開発者によるシステムの設定およびアプリケーションの開発が必要です。

システムを構築するユーザの作業の概要

jaas.conf（JAASのコンフィグレーションファイル）およびua.conf（統合ユーザ管理のコンフィグレーションファイル）に，使用するログインモジュール，使用するリポジトリ，およびそれらのコンフィグレーション情報を定義します。シングルサインオンを使用する場合には，ua.conf（統合ユーザ管理のコンフィグレーションファイル）にシングルサインオン用のパラメタも定義します。

シングルサインオンを使用する場合には，暗号鍵ファイルを作成します。

ユーザ情報リポジトリにユーザ情報を登録しておきます。

UNIXの場合，Component Container管理者および統合ユーザ管理グループに設定したユーザが，<Application Serverのインストールディレクトリ>/manager/config以下に格納されているjaas.conf（JAASのコンフィグレーションファイル）およびua.conf（統合ユーザ管理のコンフィグレーションファイル）を使用するときは，それぞれのコンフィグレーションファイルにあらかじめ適切なアクセス権を設定しておいてください。

なお，jaas.confおよびua.confはテキストエディタなどで編集してください。

統合ユーザ管理機能の設定については，「5.19　コンフィグレーションファイルの作成」を参照してください。

アプリケーション開発者の作業の概要

JAASのAPIおよびApplication Serverが提供している統合ユーザ管理API，JSPタグライブラリを使用して，ログインモジュールを呼び出す認証処理プログラムを作成します。

それぞれのアプリケーションで独自の認証処理をする場合は，カスタムログインモジュールを作成します。

パスワード認証時のパスワード拡張をする場合は，実装クラスを作成します。

統合ユーザ管理フレームワークを使用したユーザ認証の実装については，「5.9　統合ユーザ管理フレームワークによるユーザ認証の実装」を参照してください。

5.3　標準ログインモジュールによるユーザ認証の仕組み

統合ユーザ管理フレームワークでは，JAASに準拠した標準ログインモジュールを提供します。標準ログインモジュールを使用することで，独自に認証モジュールを作成しなくても，アプリケーションサーバシステムのユーザの統合管理が実現できます。

5.3.1　標準ログインモジュールの種類と機能

統合ユーザ管理フレームワークが提供する標準ログインモジュールは，次の2種類に分類できます。

ユーザを認証するために使用するログインモジュール

次の四つのログインモジュールが該当します。

WebPasswordLoginModule

パスワードを使用してユーザ認証するログインモジュールです。

WebCertificateLoginModule

クライアント証明書を使用してユーザ認証するログインモジュールです。

WebPasswordLDAPLoginModule

LDAPディレクトリサーバの認証機能を使用してユーザ認証するログインモジュールです。

WebPasswordJDBCLoginModule

ユーザ情報リポジトリとして，すでにデータベースを使用している場合に使用するログインモジュールです。

各アプリケーションのカスタムログインモジュールを呼び出すためのログインモジュール

次の二つのログインモジュールが該当します。

DelegationLoginModule

カスタムログインモジュールを呼び出す場合に使用するログインモジュールです。シングルサインオンには対応しません。

WebSSOLoginModule

シングルサインオンで使用するログインモジュールです。標準ログインモジュールやカスタムログインモジュールなど，ほかのログインモジュールを呼び出します。

DelegationLoginModuleは，シングルサインオンの機能を使用しない場合にカスタムログインモジュールを呼び出すときに使用します。WebSSOLoginModuleは，シングルサインオンの機能を利用する場合に，ほかの標準ログインモジュールまたはカスタムログインモジュールを呼び出すときに使用します。例えば，パスワードを使用してユーザ認証をしたいアプリケーションを，シングルサインオンの対象にしたい場合は，WebSSOLoginModuleからWebPasswordLoginModuleを呼び出して使用します。

それぞれのログインモジュールの機能一覧を次の表に示します。

表5‒6　ログインモジュールの機能一覧

機能

種類

P

C

L

J

D

S

使用するリポジトリ

LDAPディレクトリサーバ

○

○

○

−

−

○

データベース（JDBCでのアクセス）

−

−

−

○

−

−

認証方式

X509証明書

−

○

−

−

−

−

パスワード認証

○

−

○※1

○

−

−

格納できる型

バイナリ（byte[]）

○

−

−

○※2

−

−

文字列（String）

−

−

−

○※3

−

−

比較／格納するときに利用できる暗号アルゴリズム

平文

○

−

−

○

−

−

SHA-1形式

○

−

−

○

−

−

SHA-224形式

○

−

−

○

−

−

SHA-256形式

○

−

−

○

−

−

SHA-384形式

○

−

−

○

−

−

SHA-512形式

○

−

−

○

−

−

MD5形式

○

−

−

○

−

−

暗号化形式の拡張

○

−

−

○

−

−

トリプルDES形式

−

−

−

−

−

○

そのほか

Principalオブジェクトの設定

○

○

○

○

−

−

ユーザ属性の取得

○

○

○

−

−

−

ログイン時，統合ユーザ管理のセッションにログインしたユーザのユーザID／レルム名の登録（ログアウト時に削除）

○

○

○

○

○※4

○※4

カスタムログインモジュールの呼び出し

−

−

−

−

○

○

（凡例）

P：WebPasswordLoginModule

C：WebCertificateLoginModule

L：WebPasswordLDAPLoginModule

J：WebPasswordJDBCLoginModule

D：DelegationLoginModule

S：WebSSOLoginModule

○：その機能を持ちます。

−：その機能を持ちません。

注※1　パスワードを格納できる型および暗号アルゴリズムの種類は，使用するLDAPディレクトリサーバに依存します。

注※2　byte[]型にマッピングできるSQLのデータ型を指定できます（VARBINARY/LONGVARBINARY）。

注※3　String[]型にマッピングできるSQLのデータ型を指定できます（CHAR/VARCHAR/LONGVARCHAR）。

注※4　条件を満たしている場合に登録されます。

5.3.2　WebPasswordLoginModule

WebPasswordLoginModuleは，LDAPディレクトリサーバにユーザ情報リポジトリがある場合に，パスワード認証をするログインモジュールです。

入力されたユーザID/パスワードを使って，LDAPディレクトリサーバに格納されているユーザ情報からパスワードを取得して認証します。

ua.conf（統合ユーザ管理のコンフィグレーションファイル）には，LDAPディレクトリサーバに接続するための定義やエントリを検索する際に使用する属性名（uidおよびuserPassword）を指定しておきます。

WebPasswordLoginModuleではその内容を読み取り，HttpServletRequestからユーザIDを取得してLDAPディレクトリサーバを検索し，パスワードを取得してパスワード認証をします。認証に問題がなければユーザ属性を返却します。WebPasswordLoginModuleの概要を次の図に示します。

図5‒12　WebPasswordLoginModuleの概要

5.3.3　WebCertificateLoginModule

WebCertificateLoginModuleは，Webサーバで認証されたクライアント証明書を使用して認証をするログインモジュールです。

注意事項

統合ユーザ管理フレームワークのWebCertificateLoginModuleを使用する場合は，SSL機能を持つWebサーバが必要になります。

WebサーバがSSL認証した際にブラウザに要求したクライアント証明書の被認証者識別名と，ユーザ情報リポジトリとでマッピングします。

ua.conf（統合ユーザ管理のコンフィグレーションファイル）には，クライアント証明書の被認証者の識別名内からユーザIDに該当する属性名（cn）とLDAPディレクトリサーバを検索する際に使用する属性名（uid）を指定しておきます。

WebCertificateLoginModuleではその内容を読み取り，クライアント証明書を使用して認証処理をします。クライアント証明書からユーザIDに該当するIDを取得してLDAPディレクトリサーバにアクセスした結果，認証に問題がなく，該当エントリがあればユーザ属性を返却します。なお，証明書内のユーザIDに対応したエントリがない場合は，FailedLoginException例外が発生します。

WebCertificateLoginModuleの概要を次の図に示します。

図5‒13　WebCertificateLoginModuleの概要

5.3.4　WebPasswordLDAPLoginModule

WebPasswordLDAPLoginModuleは，LDAPディレクトリサーバの認証機能を利用したログインモジュールです。

入力されたユーザID，パスワードを使ってLDAPディレクトリサーバにバインドし，バインドが成功すると認証が成功します。WebPasswordLDAPLoginModuleの概要を次の図に示します。

図5‒14　WebPasswordLDAPLoginModuleの概要

ua.conf（統合ユーザ管理のコンフィグレーションファイル）では，LDAPディレクトリサーバに接続するための定義と，エントリを検索するときに使用する属性名を指定します。

WebPasswordLDAPLoginModuleではその内容を読み取り，HttpServletRequestからユーザIDを取得して，ユーザIDからユーザエントリのDNを求めます。次に，このDNとHttpServletRequestから取得したパスワードでLDAPディレクトリサーバにバインドし，成功するとユーザ属性を返却します。

ユーザエントリ検索とユーザ属性の取得に使用するユーザID／パスワードについて

認証時にユーザエントリの検索をする場合，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で設定されたバインドDNとバインドDNのパスワードを使用します。一方，ユーザ属性の取得に使用するバインドDNとパスワードには，ユーザエントリのDNとそのパスワードを使用します。ユーザエントリの検索については，「5.3.8(1)　ユーザエントリの検索」を参照してください。

LDAP接続プールを利用する場合の注意

LDAP接続プールはユーザエントリの検索処理だけに使用されます。認証時およびユーザ属性取得時にLDAP接続プールは使用されません。したがって，検索をしない設定の場合はLDAP接続プールを使用しない設定にしてください。LDAP接続プールについては，「5.3.8(2)　接続プール」を参照してください。

5.3.5　WebPasswordJDBCLoginModule

WebPasswordJDBCLoginModuleは，すでにデータベースを用いてユーザ管理をしている場合に使用するログインモジュールです。

入力されたユーザIDとパスワードを使って，データベース内に格納されているユーザ情報からパスワードを取得して認証します。

ua.conf（統合ユーザ管理のコンフィグレーションファイル）では，データベースに接続するための情報定義やエントリを検索する際に使用するSQL（SELECT文）を指定します。

WebPasswordJDBCLoginModuleではその内容を読み取り，HttpServletRequestからユーザIDを取得してJDBCを使ってデータベースにアクセスし，パスワードを取得してパスワード認証をします。WebPasswordJDBCLoginModuleの概要を次の図に示します。

図5‒15　WebPasswordJDBCLoginModuleの概要

また，WebPasswordJDBCLoginModuleでは，JDBCドライバのクラスをログインモジュール内で参照します。使用できるJDBCドライバとJDBCドライバの設定手順を次に示します。

(1)　使用できるJDBCドライバ

WebPasswordJDBCLoginModuleで使用できるデータベースとJDBCドライバを次の表に示します。

表5‒7　WebPasswordJDBCLoginModuleで使用できるデータベースとJDBCドライバ

データベース

JDBCドライバ

HiRDB※

HiRDB Type4 JDBC Driver

Oracle

Oracle 11g

Oracle JDBC Thin Driver

SQL Server

SQL Server JDBC Driver

注※　HiRDB Run Timeを含みます。

(2)　JDBCドライバの設定手順

JDBCドライバのクラスをua.conf（統合ユーザ管理のコンフィグレーションファイル）に設定します。また，JDBCドライバを任意のディレクトリに格納し，その場所をJ2EEサーバのクラスパスに追加してください。設定手順を次に示します。

ua.conf（統合ユーザ管理のコンフィグレーションファイル）に，次の内容を設定します。

使用するJDBCドライバに対応するJDBCドライバのクラス名

データベースと接続するためのURL

代理で接続するデータベースユーザとそのユーザのパスワード

データベースごとに設定例を次に示します。なお，太字部分はデータベースの環境に合わせて設定してください。

HiRDBの場合

com.cosminexus.admin.auth.jdbc.driver.0=JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver

com.cosminexus.admin.auth.jdbc.conn.url.0=jdbc:hitachi:hirdb://DBID=22200,DBHOST=hostA

com.cosminexus.admin.auth.jdbc.conn.user.0=system

com.cosminexus.admin.auth.jdbc.conn.password.0=userpass

Oracleの場合

com.cosminexus.admin.auth.jdbc.driver.0=oracle.jdbc.OracleDriver

com.cosminexus.admin.auth.jdbc.conn.url.0=jdbc:oracle:thin:@localhost:1521:orcl

com.cosminexus.admin.auth.jdbc.conn.user.0=system

com.cosminexus.admin.auth.jdbc.conn.password.0=userpass

SQL Serverの場合

com.cosminexus.admin.auth.jdbc.driver.0=com.microsoft.sqlserver.jdbc.SQLServerDriver

com.cosminexus.admin.auth.jdbc.conn.url.0=jdbc:sqlserver://localhost:1433;DatabaseName=sqlserver

com.cosminexus.admin.auth.jdbc.conn.user.0=system

com.cosminexus.admin.auth.jdbc.conn.password.0=userpass

J2EEサーバが稼働するマシンの任意のディレクトリにJDBCドライバのJARファイルを格納します。

J2EEサーバのusrconf.cfg（オプション定義ファイル）に，手順2.で格納したJARファイルのパスを設定します。

設定例を次に示します。

add.class.path=<手順2.で格納したディレクトリ>/<JARファイル名>

なお，JARファイル名は接続するデータベースで異なります。

(3)　注意事項

Oracleの場合，データベース側で作成するユーザ情報用のテーブルのカラム（USERIDなど）にVARCHAR2型などの可変長文字列を指定してください。CHAR型などの固定長文字列にした場合は，パスワード認証に失敗することがあります。

SQL Serverへの認証モードのうち，Windows認証は使用できません。

5.3.6　DelegationLoginModule

カスタムログインモジュールを呼び出す場合に使用するログインモジュールです。

指定されたカスタムログインモジュールに認証処理を委譲します。DelegationLoginModuleの概要を次の図に示します。

図5‒16　DelegationLoginModuleの概要

jaas.conf（JAASのコンフィグレーションファイル）では，使用するカスタムログインモジュールのクラス名を指定します。DelegationLoginModuleはその内容を読み取り，カスタムログインモジュールをインスタンス化します。このとき，DelegationLoginModuleのinitializeメソッドに与えられた引数はそのままカスタムログインモジュールに渡されます。

認証処理はカスタムログインモジュールに委譲されます。

5.3.7　WebSSOLoginModule

シングルサインオンをする場合に使用するログインモジュールです。標準ログインモジュールまたはカスタムログインモジュールを呼び出します。

一つのセッションですでにログインしているユーザが存在する場合，別のレルムで認証するための情報（ユーザID，SecretData，PublicData）をカスタムログインモジュールに渡します。WebSSOLoginModuleの概要を次の図に示します。

図5‒17　WebSSOLoginModuleの概要

WebSSOLoginModuleは，jaas.conf（JAASのコンフィグレーションファイル）で指定されたログインモジュールの識別子に対応するカスタムログインモジュールのクラス名をua.conf（統合ユーザ管理のコンフィグレーションファイル）から読み込み，カスタムログインモジュールをインスタンス化します。このとき，WebSSOLoginModuleのinitializeメソッドに与えられた引数はそのままカスタムログインモジュールに渡されます。

該当するセッションでログインしているユーザが存在する場合，ua.confで指定されたLDAPディレクトリサーバからログインしているユーザのシングルサインオン情報が取得されます。このシングルサインオン情報に，これからログインしようとしているレルムのユーザへのマッピング情報が存在する場合，マッピング先ユーザのシングルサインオン情報が取得されます。シングルサインオン情報のうち，SecretDataはua.confで指定された方法で復号化されます。WebSSOLoginModuleは，マッピング先ユーザのユーザID，復号化したSecretData，およびPublicDataをsharedState（カスタムログインモジュールにinitializeメソッドによって渡されるMapオブジェクト）に設定します。設定に使用するパラメタ名は，ua.confに指定します。

該当するセッションでログインしているユーザが存在しない場合，WebSSOLoginModuleはsharedStateを変更しません。

認証処理はカスタムログインモジュールに委譲されます。

5.3.8　標準ログインモジュールによるリポジトリへのアクセス

ここでは，標準ログインモジュールによるユーザ情報リポジトリへのアクセス方法について説明します。

(1)　ユーザエントリの検索

LDAPディレクトリサーバをユーザ情報リポジトリとして使用する次のログインモジュールは，認証時にユーザエントリの検索ができます。

WebPasswordLoginModule

WebCertificateLoginModule

WebPasswordLDAPLoginModule

検索するかどうか，および検索範囲は，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で設定します。なお，検索する必要があるかどうかは，LDAPディレクトリサーバのDITの構成によって決まります。

検索する必要がない場合

ユーザの認証およびユーザ属性を取得するためには，ユーザから入力されたユーザIDを基に，LDAPディレクトリサーバ上のユーザエントリを特定する必要があります。

次の図に示すように，ユーザエントリがベースDNの直下に存在し，かつユーザIDがユーザエントリのRDN（相対識別名）に含まれていれば，ユーザエントリのDNは，ベースDN，ユーザIDを表す属性名，およびユーザIDから組み立てられるため，検索は不要です。統合ユーザ管理では，このように検索が不要となるDIT構造にすることを推奨します。

図5‒18　ユーザエントリがベースDNの直下に存在する場合

検索する必要がある場合

ユーザエントリのRDNにユーザIDが含まれない場合，またはユーザエントリがベースDNの直下よりも下の階層に存在する場合は，検索しないとユーザエントリを特定できません。次の図に示すようにユーザエントリがベースDNの2階層以上下層に存在する場合，検索範囲はsubtree（ベースDN以下すべての下層の検索）にする必要があります。

図5‒19　ユーザエントリがベースDNの2階層以上下層に存在する場合

(2)　接続プール

標準ログインモジュールでは，ユーザ情報リポジトリへのアクセスを高速化するために接続プールを使用できます。

接続プールについては，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で設定します。

LDAP接続プールを使用できるログインモジュールを次に示します。

WebPasswordLoginModule

WebCertificateLoginModule

WebPasswordLDAPLoginModule

WebSSOLoginModule

JDBC接続プールを使用できるログインモジュールを次に示します。

WebPasswordJDBCLoginModule

5.3.9　パスワード認証時の暗号拡張

リポジトリに格納されているパスワードの暗号の形式が標準で用意されているもの（SHA-2/SHA-1/MD5/平文）以外の場合でも，暗号拡張ができます。この機能が利用できるのは，WebPasswordLoginModuleとWebPasswordJDBCLoginModuleです。

パスワード認証の暗号拡張をすると，リポジトリに格納されているパスワードの暗号の形式が標準で用意されている形式以外の場合でもパスワード認証をできるようにします。この機能を使うためには，あらかじめアプリケーション開発者が実装クラスを作成する必要があります。

ログインモジュールでは，データベースから取得したパスワードと比較するためにHttpServletRequestから入力したパスワードを変換します。com.cosminexus.admin.auth.jdbc.password.encrypt.exがua.conf（統合ユーザ管理のコンフィグレーションファイル）に指定されていた場合，そのクラスの実装をインスタンス化して，HttpServletRequestから入力したパスワードを変換します。

変換したものとデータベースのパスワードを単純にbyte[]で比較し，すべての文字が一致することで認証が成功します。パスワード認証時の暗号拡張の概要を次の図に示します。

図5‒20　パスワード認証時の暗号拡張の概要

実装クラスの作成方法については，「5.10　APIを使用したユーザ認証の実装」を参照してください。

5.3.10　ログインモジュールが使用するコンフィグレーションファイルのパラメタ

使用する標準ログインモジュールの種類によって，ua.conf（統合ユーザ管理のコンフィグレーションファイル）に指定する必要があるパラメタが異なります。

(1)　LDAPディレクトリサーバを使用するログインモジュール

LDAPディレクトリサーバを使用する各ログインモジュールが使用するパラメタの一覧を次の表に示します。各パラメタの意味については，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

表5‒8　LDAPディレクトリサーバを使用する各ログインモジュールが使用するパラメタの一覧

パラメタ

種類

P

C

S

L

java.naming.provider.url

○

○

○

○

java.naming.security.principal

○

○

○

○※1

java.naming.security.credentials

○

○

○

○※1

com.cosminexus.admin.auth.ldap.basedn

○

○

○

○

com.cosminexus.admin.auth.ldap.attr.userid

○

○

×

○

com.cosminexus.admin.auth.ldap.search.userrdn

○

○

×

○※2

com.cosminexus.admin.auth.ldap.search.scope

○

○

×

○※3

com.cosminexus.admin.auth.ldap.attr.password

○

×

×

○※4

com.cosminexus.admin.auth.ldap.pool.enable

○

○

○

○※5

com.cosminexus.admin.auth.ldap.pool.max

○

○

○

○

com.cosminexus.admin.auth.ldap.pool.max_spare

○

○

○

○

com.cosminexus.admin.auth.ldap.pool.min_spare

○

○

○

○

com.cosminexus.admin.auth.ldap.pool.gc_interval

○

○

○

○

com.cosminexus.admin.auth.ldap.conn.retry.count

○

○

○

○

com.cosminexus.admin.auth.ldap.conn.retry.wait

○

○

○

○

com.cosminexus.admin.auth.ldap.certificate.attr.userid

×

○

×

×

com.cosminexus.admin.auth.ldap.password.encrypt

○

×

×

×

com.cosminexus.admin.auth.ldap.password.encrypt.ex

○

×

×

×

com.cosminexus.admin.auth.ldap.directory.kind

×

×

×

○

（凡例）

P：WebPasswordLoginModule

C：WebCertificateLoginModule

S：WebSSOLoginModule

L：WebPasswordLDAPLoginModule

○：使用できる　×：使用できない

注※1

ユーザエントリを検索する場合だけ必要です。このバインドDNとパスワードを使用して検索します。

注※2　

ユーザエントリを検索する場合（ユーザエントリがベースDNの直下にない場合），trueを設定してください。

注※3　

ユーザエントリを検索する場合，subtreeを指定してください。

注※4　

ユーザのパスワードを変更する場合だけ必要です。使用するLDAPディレクトリサーバがActive Directoryの場合，unicodePwdを指定してください。Active Directory以外の場合はuserPasswordを指定してください。

注※5　

LDAP接続プールはユーザエントリを検索する場合だけ使用されます。検索しない場合はfalseを指定してください。なお，ユーザエントリを検索する場合もしない場合も，ユーザ認証をするためにLDAPディレクトリサーバに接続するとき，LDAP接続プールは使用されません。

(2)　データベースを使用するログインモジュール

データベースを使用する各ログインモジュールが使用するパラメタの一覧を次の表に示します。各パラメタの意味については，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

表5‒9　データベースを使用する各ログインモジュールが使用するパラメタの一覧

パラメタ

種類

J

com.cosminexus.admin.auth.jdbc.driver

○

com.cosminexus.admin.auth.jdbc.conn.url

○

com.cosminexus.admin.auth.jdbc.conn.user

○

com.cosminexus.admin.auth.jdbc.conn.password

○

com.cosminexus.admin.auth.jdbc.pool.enable

○

com.cosminexus.admin.auth.jdbc.pool.max

○

com.cosminexus.admin.auth.jdbc.pool.max_spare

○

com.cosminexus.admin.auth.jdbc.pool.min_spare

○

com.cosminexus.admin.auth.jdbc.pool.gc_interval

○

com.cosminexus.admin.auth.jdbc.conn.retry.count

○

com.cosminexus.admin.auth.jdbc.conn.retry.wait

○

com.cosminexus.admin.auth.jdbc.sql

○

com.cosminexus.admin.auth.jdbc.password.type

○

com.cosminexus.admin.auth.jdbc.password.encrypt

○

com.cosminexus.admin.auth.jdbc.password.encrypt.ex

○

（凡例）

J：WebPasswordJDBCLoginModule

○：使用できる

5.4　統合ユーザ管理のセッション管理

この節では，統合ユーザ管理で管理するセッションについて説明します。

5.4.1　セッションの種類

統合ユーザ管理の機能を使う上で存在するセッションとして考えられるものには次の種類があります。

Webコンテナが管理するセッション（HttpSession）

HttpSessionオブジェクトのことを示します。

統合ユーザ管理のセッション

標準ログインモジュールを使用してログインしてからログアウトするまでの期間を示します。

一つのセッション内には複数のユーザがログインできるため，ログインしているすべてのユーザがログアウトしないとセッションは無効になりません。また，このセッションはWebコンテナが管理しているセッションであるHttpSessionと同期しています。そのため，HttpSessionが無効になった場合は，ログインの有無に関係なくセッションは無効になります。

統合ユーザ管理のセッションを制御する機能としては，次の2種類の機能があります。

標準ログインモジュールでは，ログインしたユーザIDとレルム名をセッションに自動で登録および削除できます。

統合ユーザ管理はセッションフェイルオーバ機能に対応しています。統合ユーザ管理のセッションフェイルオーバ機能を有効にすることで，ログイン状態をセッションフェイルオーバ先に引き継げます。なお，セッションフェイルオーバ機能を使用しているときに，ログイン状態を引き継ぐかどうかは選択できます。

カスタムログインモジュールのセッション

各アプリケーションが個々に持つログインしているユーザのセッションを示します。このセッションの概念は，カスタムログインモジュールの仕様に依存します（通常はログインしてからログアウトまでの期間を示します）。

なお，カスタムログインモジュールでは，ログインしたユーザIDとレルム名をセッションに自動で登録および削除できます。

5.4.2　ログインしたユーザIDの登録

ここでは，統合ユーザ管理のセッションにログインしたユーザIDの登録について説明します。

(1)　ログインしているユーザIDを登録する目的

統合ユーザ管理のセッションにログインしているユーザIDを登録することで，次のようなことができます。

JSPタグライブラリの<ua:notLogin>タグで，統合ユーザ管理のセッションでユーザがログインしているかどうかを判断できます。この指定は，任意のレルム名を指定することで，そのレルム内でのログインの有無も判断できます。

(2)　ログインしているユーザIDの登録条件

認証手段を持つ標準ログインモジュールでは，自動的に統合ユーザ管理のセッションにログインしたユーザIDを登録します。

カスタムログインモジュールの場合，次の条件を満たしたログインモジュールでログインしたユーザIDが，統合ユーザ管理のセッションに登録されます。

カスタムログインモジュールの実装で，commitメソッドによってPrincipalオブジェクトがSubjectに関連づけられていること

統合ユーザ管理フレームワークによって提供されているWebSSOHandlerが，LoginContextクラスのコンストラクタの引数に指定されていること

もし，1回の呼び出しで複数のログインモジュールを呼び出していた場合，認証手段を持つ標準ログインモジュールまたは上記の条件を満たしたログインモジュールでログインされるまでユーザIDは登録されません。最後まで見つからなかった場合は，統合ユーザ管理のセッションにはログインしたユーザIDは登録されません。

(3)　統合ユーザ管理のセッションに登録される内容

統合ユーザ管理のセッションに登録される内容は，レルム名，ユーザIDおよびログイン時刻の3種類です。

レルム名

jaas.conf（JAASコンフィグレーションファイル）のcom.cosminexus.admin.auth.realmで指定した値が設定されます。このオプションが省略されていた場合は空文字が仮定されます。なお，DelegationLoginModule以外の場合，com.cosminexus.admin.auth.realmの指定は省略できません。

ユーザID

各ログインモジュールのcommitメソッドを呼び出したあと，Subjectから最初に求められたPrincipalオブジェクトのユーザID（getNameメソッドの結果）が設定されます。

ログイン時刻

統合ユーザ管理のセッションにユーザIDを登録時，最初にログインした時刻がユーザ単位に設定されます。

5.4.3　統合ユーザ管理のセッションに登録したユーザIDの削除

認証したSubjectを持つLoginContextクラスのlogoutメソッドが呼ばれたとき，自動的に統合ユーザ管理のセッションに登録されたユーザIDとレルム名が削除されます。

5.4.4　JAASのコンフィグレーションファイルの定義例

jaas.conf（JAASのコンフィグレーションファイル）の定義例を示します。

(1)　Application Serverの標準ログインモジュールを使った定義例

JAASのコンフィグレーションファイルで次のように定義されていた場合は，最初に実行したWebPasswordLoginModuleが認証した際のユーザIDおよびレルム名「RealmA」で統合ユーザ管理のセッションに登録します。

Example03 {
  com.cosminexus.admin.auth.login.WebPasswordLoginModule required
                                               //セッションに参加します
    com.cosminexus.admin.auth.realm="RealmA"
    com.cosminexus.admin.auth.ldap.r="0"
    com.cosminexus.admin.auth.ldap.w="1"
    ;
  com.cosminexus.admin.auth.login.DelegationLoginModule required
    com.cosminexus.admin.auth.custom.lm="my.login.MyLoginModule"
    my.login.useracctterm="acctTerm"
    ;
};

(2)　カスタムログインモジュールだけを使用した場合の定義例

JAASのコンフィグレーションファイルで次のように定義されていた場合，最初に実行したMyLoginModule1のcommitメソッドで設定したPrincipalオブジェクトのユーザID（getNameメソッドの値）を使って統合ユーザ管理のセッションにユーザIDを登録します（DelegationLoginModuleがユーザIDを登録します）。

なお，「com.cosminexus.admin.auth.realm」については指定がないため，レルム名として空文字（””）を仮定します。

Example99 {
  com.cosminexus.admin.auth.login.DelegationLoginModule required
                                              //セッションに参加します
    com.cosminexus.admin.auth.custom.lm="my.login.MyLoginModule1"
    ;
  com.cosminexus.admin.auth.login.DelegationLoginModule required
    com.cosminexus.admin.auth.custom.lm="my.login.MyLoginModule2"
    ;
};

ただし，MyLoginModule1がPrincipalオブジェクトをSubjectに設定していない場合は，MyLoginModule2が統合ユーザ管理のセッションにユーザIDを登録する対象になります。もし，MyLoginModule2もPrincipalオブジェクトを設定しない場合は，統合ユーザ管理のセッションにユーザIDを登録しません。

jaas.confの詳細については，「14.2.1　jaas.conf（JAASのコンフィグレーションファイル）」を参照してください。

5.5　シングルサインオンの利用方法

この節では，シングルサインオンの利用方法について説明します。シングルサインオンとは，一度のログイン処理で，ユーザIDが異なる複数のシステムをシームレスに使用できるようにするための機能です。

5.5.1　シングルサインオンをするために必要な手順

シングルサインオンを利用するためには，シングルサインオンを使用するすべてのカスタムログインモジュールおよび標準ログインモジュール（ユーザ認証をするログインモジュール）をWebSSOLoginModuleで呼び出す必要があります。

シングルサインオンへの切り替えはjaas.conf（JAASのコンフィグレーションファイル）で定義します。

例えば，シングルサインオンを適用する前は次のようにWebPasswordLoginModuleを使ってユーザ認証をしていたとします。

AP1 {
  com.cosminexus.admin.auth.login.WebPasswordLoginModule Requisite
    com.cosminexus.admin.auth.ldap.r="3"
    com.cosminexus.admin.auth.ldap.w="2"
    com.cosminexus.admin.auth.realm=XXXcompany;
};

シングルサインオンを適用するには次の背景色付きの太字に示す修正をします。

AP1 {
  com.cosminexus.admin.auth.sso.login.WebSSOLoginModule Requisite
    com.cosminexus.admin.auth.ldap.r="3"
    com.cosminexus.admin.auth.ldap.w="2"
    com.cosminexus.admin.auth.realm=XXXcompany;
};

シングルサインオンをするすべてのログインモジュールの定義は，この例で示すような修正で変更したあとにJ2EEサーバを起動することで利用できます。

5.5.2　既存アプリケーションで行っているユーザ管理の適用

利用しているアプリケーションがすでにユーザ管理を行っている場合に，統合ユーザ管理のシングルサインオンを適用するには，次の表に示す条件を満たしている必要があります。

表5‒10　統合ユーザ管理のシングルサインオンの適用に必要な条件

LoginModuleの有無

条件1

条件2

適用

適用方法

ある

改造できる。

−

○

sharedStateで認証情報が渡せるようにして呼び出します。

改造できない。

sharedStateで認証情報が渡せる。

○

jaas.conf（JAASのコンフィグレーションファイル）をシングルサインオンライブラリ用に変更します。

sharedStateで認証情報が渡せない。

×

−

ない

login用APIが公開されている。

−

○

ログインモジュールを作成します。

login用APIが公開されていない。

−

×

−

（凡例）　○：適用できる　　×：適用できない　　−：該当しない

なお，標準ログインモジュールのWebPasswordLoginModule，WebCertificateLoginModule，WebPasswordLDAPLoginModuleおよびWebPasswordJDBCLoginModule（ユーザ認証を行うログインモジュール）は，すべてシングルサインオンを適用できます。

5.6　カスタムログインモジュールの利用

標準ログインモジュール以外を使用して各アプリケーションのユーザ認証をする場合，カスタムログインモジュールを作成して，標準ログインモジュールと組み合わせて使用できます。

カスタムログインモジュールは，アプリケーション開発者が実装します。

5.6.1　カスタムログインモジュールの概要

カスタムログインモジュールは，標準ログインモジュール以外を使用してアプリケーションのユーザ認証をしたい場合に作成するクラスです。このクラスは，JAASのSPIであるLoginModuleインタフェースを継承して作成します。

カスタムログインモジュールは，次に示すディレクトリに格納します。

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥modules

UNIXの場合

/opt/Cosminexus/manager/modules

なお，カスタムログインモジュールの格納先ディレクトリは，ua.conf（統合ユーザ管理のコンフィグレーションファイル）の，com.cosminexus.admin.auth.custom.modulesで変更できます。

カスタムログインモジュールを格納するときの注意事項を次に示します。

カスタムログインモジュールを格納するディレクトリ内のクラスは，カスタムログインモジュール専用のクラスローダで呼び出されます。そのため，このクラスはアプリケーションで使用できません。アプリケーションで使用する場合は，カスタムログインモジュールを格納するディレクトリをusrconf.cfg（J2EEサーバ用オプション定義ファイル）のadd.class.pathキーに指定してください

カスタムログインモジュールは必ず.classファイルのまま格納してください。JARファイル形式にまとめて格納しないでください。また，クラス階層がある場合は，クラス階層構造を保ったままで，カスタムログインモジュールの格納ディレクトリに格納してください。

例を次に示します。

（例）カスタムログインモジュールのクラスが「my.login.MyLoginModule」の場合

<Application Serverのインストールディレクトリ>
　　└manager
　　　└modules
　　　　└my
　　　　　└login
　　　　　　└MyLoginModule.class

統合ユーザ管理フレームワークでカスタムログインモジュールを使用する場合，カスタムログインモジュール，およびカスタムログインモジュールに関連するクラスを実行環境に配置しておく必要があります。このときのファイル形式はJARファイルには対応していません。バイトコードクラスファイルを配置してください。

5.6.2　カスタムログインモジュールの呼び出し

カスタムログインモジュールは，標準ログインモジュールであるDelegationLoginModuleまたはWebSSOLoginModuleのどちらかで呼び出します。

DelegationLoginModule

シングルサインオンの機能を利用しない場合に使用します。

WebSSOLoginModule

シングルサインオンの機能を利用する場合に使用します。

また，カスタムログインモジュールを標準ログインモジュールから呼び出すことで，統合ユーザ管理が管理しているログインセッション管理に参加できます。このセッションはWebコンテナのセッション管理とは別です。統合ユーザ管理のセッションについては，「5.4　統合ユーザ管理のセッション管理」を参照してください。

カスタムログインモジュールは，DelegationLoginModuleまたはWebSSOLoginModuleのどちらかのログインモジュールから呼びされます。これらのログインモジュールは，呼び出したカスタムログインモジュールで認証が成功すると自動的に統合ユーザ管理のセッションに参加します。統合ユーザ管理のセッション登録時に必要なユーザIDは，Subjectに関連づけられているPrincipalオブジェクトから取得します。

シングルサインオン機能を使用する場合は，WebSSOLoginModuleを使用します。この場合，2回目のカスタムログインモジュールの呼び出しでは，最初に統合ユーザ管理のセッションに参加したユーザIDをキーにシングルサインオン情報リポジトリから必要な認証情報が取得されてから，カスタムログインモジュールに渡されます。リポジトリで暗号化して保存していたものは，復号化してから渡されます。

カスタムログインモジュールの実装方法については，「5.12　カスタムログインモジュールを使用したユーザ認証の実装」を参照してください。

5.7　ユーザ情報の管理

統合ユーザ管理では，ユーザ情報を管理するリポジトリとして，LDAPディレクトリサーバまたはデータベースを使用できます。この節では，LDAPディレクトリサーバでのユーザ情報の管理について説明します。

5.7.1　 LDAPディレクトリサーバへのユーザ情報の登録

LDAPディレクトリサーバを使用する場合，ユーザ情報は次に示す方法で登録できます。

LDAPディレクトリサーバが提供するコマンドによって登録する

ご使用のLDAPディレクトリサーバで提供されているコマンドを使用してください。コマンドによって，ldifファイルで定義した内容に基づいた一括登録などができます。

統合ユーザ管理APIを使用して開発したアプリケーションから登録する

ユーザ認証ライブラリおよびシングルサインオンライブラリを使用してユーザ認証を実行するアプリケーションを開発してください。統合ユーザ管理フレームワークを使用したユーザ認証の実装については，「5.9　統合ユーザ管理フレームワークによるユーザ認証の実装」を参照してください。

5.7.2　 LDAPディレクトリサーバの多重化による接続フェイルオーバ

LDAPディレクトリサーバをレプリケーションによって多重化することで，一つのLDAPディレクトリサーバへのアクセスに失敗した場合，統合ユーザ管理が提供する標準ログインモジュールはあらかじめ設定した別のLDAPディレクトリサーバにユーザ情報，シングルサインオン情報の参照先の切り替えを自動的にできます。

例えば，次の図に示す構成では，J2EEサーバ1が使用しているLDAPディレクトリサーバslave1がダウンした場合，使用するLDAPディレクトリサーバを自動的にslave2に切り替えて認証処理ができます（slave2もダウンしている場合はslave3へ切り替えます）。

図5‒21　LDAPディレクトリサーバの多重化の構成例

設定されているLDAPディレクトリサーバに順番にアクセスし，すべてのサーバでアクセスが失敗した場合，認証が失敗します。

LDAPディレクトリサーバがダウンしているかどうかの判断方法を次に示します。

javax.naming.CommunicationException例外が発生します。

この例外の原因としては，接続先ホストから接続を拒否された場合などが考えられます。詳細については，JDKのドキュメントを参照してください。

リトライを実行します。

リトライは，あらかじめ設定した回数分実行されます。

リトライしてもLDAPディレクトリサーバにアクセスできない場合，ダウンしていると見なされます。

設定されているすべてのLDAPディレクトリサーバがダウンしている場合，認証は失敗し，LoginContextクラスのloginメソッドの呼び出し元にLoginException例外が発生します。

各LDAPディレクトリサーバへの接続情報は，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で設定して，JAASアプリケーションごとにjaas.conf（JAASのコンフィグレーションファイル）で使用するLDAPの設定を一つ以上指定します。ua.confおよびコンフィグレーションファイルの内容の詳細については，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

また，PasswordUtilクラスによるパスワードの変更も接続フェイルオーバに対応しています。マスタサーバに対してパスワードの変更をします。次の図に示すようなマルチマスタ構成の場合に使用できます。

図5‒22　LDAPディレクトリサーバの多重化の構成例（マルチマスタ構成）

なお，接続フェイルオーバをする場合，LDAPディレクトリサーバのエントリのツリー構造およびエントリの内容を同一にしてください。

5.8　統合ユーザ管理フレームワークが提供するAPI

統合ユーザ管理フレームワークでは，認証処理の呼び出し処理をするアプリケーションを開発するために，JSPのタグライブラリおよび統合ユーザ管理フレームワークのライブラリが提供されています。必要に応じて使用してください。

統合ユーザ管理フレームワークで使用するAPIの詳細については，「15.　統合ユーザ管理フレームワークで使用するAPI」を参照してください。

5.8.1　JSPタグライブラリ

統合ユーザ管理フレームワークでは，JSPで統合ユーザ管理フレームワークの機能を容易に利用するためのJSPタグライブラリを提供します。アプリケーション開発者（またはWebデザイナ）は，Javaプログラムによる認証処理の詳細を気にすることなく，容易にJSPを開発できます。

統合ユーザ管理フレームワークのログインモジュールとして標準ログインモジュールを使用する場合，JSPタグライブラリを使用して，ユーザ情報を参照できます。

5.8.2　統合ユーザ管理フレームワークのライブラリ

統合ユーザ管理フレームワークは，次の2種類で構成されています。

ユーザ認証ライブラリ

LDAPディレクトリサーバで構築されたユーザ情報リポジトリの情報を基にユーザ認証をして，認証したユーザの情報をアプリケーションに提供するJAAS対応ユーザ管理用ライブラリです。

シングルサインオンライブラリ

ユーザマッピング情報の入ったシングルサインオン情報リポジトリの情報を基にユーザマッピングをして，シングルサインオンを実現するライブラリです。

ユーザ認証ライブラリおよびシングルサインオンライブラリの位置づけを次に示します。

次の図に示すように，ユーザ認証ライブラリは単体でアプリケーションの認証に使用できます。また，シングルサインオンライブラリと協調動作し，マッピングされたユーザの認証をすることもあります。

図5‒23　ユーザ認証ライブラリおよびシングルサインオンライブラリの位置づけ

5.9　統合ユーザ管理フレームワークによるユーザ認証の実装

統合ユーザ管理フレームワークとは，統合ユーザ管理でのユーザ認証を実現するフレームワークです。JAASに準拠したユーザ認証を，標準ログインモジュールとして提供します。統合ユーザ管理フレームワークを使用することで，独自に認証モジュールを開発しなくても，ユーザ認証を容易に実装できます。

統合ユーザ管理フレームワークによるユーザ認証は，APIを使用して実装します。また，ユーザ認証を容易に実装するためのタグライブラリを使用することもできます。APIまたはタグライブラリを使用してユーザ認証を実装する場合，最初に，サーブレットやJSPでユーザ認証を行うログインモジュールを呼び出します。呼び出したログインモジュールによって認証を行い，処理が終わったところでログアウトします。

標準ログインモジュール以外の認証モジュールを使用する場合は，カスタムログインモジュールとして作成します。ログインモジュールの種類およびログイン処理の流れについては，「5.2.3　Java標準仕様（JAAS）に準拠したユーザ認証の概要」，および「5.2.6　統合ユーザ管理の処理の流れ」を参照してください。

ここでは，APIとタグライブラリを使用したユーザ認証の実装方法，およびカスタムログインモジュールの作成方法について説明します。

参考

Application Serverでは，統合ユーザ管理フレームワークの動作確認用のサンプルプログラムを提供します。次に示すファイルに実行手順が記述されていますので，その手順に従って実行してください。

<Application Serverのインストールディレクトリ>¥manager¥examples¥ua¥index.html

5.10　APIを使用したユーザ認証の実装

APIを使用した場合のログインからログアウトまでの実装方法について説明します。また，次の内容についても説明します。

ログイン状態のチェック

パスワード認証時の暗号拡張の実装

なお，統合ユーザ管理フレームワークで提供するAPIの機能や文法については，マニュアル「アプリケーションサーバ リファレンス API編」を参照してください。

5.10.1　ログインの実装（APIを使用する場合）

統合ユーザ管理フレームワークを使用してユーザ認証をする場合，ログイン時にサーブレットやJSPなどでログインモジュールを呼び出す処理を実装します。ログインモジュールを使用するには，JAASのコンフィグレーションファイルの設定が必要です。JAASのコンフィグレーションファイルの設定内容については，「14.2.1　jaas.conf（JAASのコンフィグレーションファイル）」を参照してください。

次に，APIを使用した場合の，ログインの実装例を示します。

<%@ page import="com.cosminexus.admin.auth.callback.WebPasswordHandler" %>
<%@ page import="javax.security.auth.login.LoginContext" %>
...
<%LoginContext lc = new LoginContext("Portal",
    new WebPasswordHandler(request, response, null, "login.html", true));
  try { lc.login(); } catch (LoginException e) { ... }
%>
...

例では，LoginContextクラスからインスタンスを生成し，その引数として，JAASのコンフィグレーションファイルのPortalエントリに記述された認証モジュールを使用するように指定しています。requestにcom.cosminexus.admin.auth.nameパラメタおよびcom.cosminexus.admin.auth.passwordパラメタが設定されている場合には，これらのパラメタを使用して認証します。そうでない場合は，login.htmlを呼び出し，ユーザから認証情報（ユーザIDとパスワード）を取得します。

5.10.2　ユーザIDの取得の実装（APIを使用する場合）

認証が完了したあと，認証したユーザIDは，Principalオブジェクト（java.security.Principal）としてSubjectに格納されています。ユーザIDを取得する場合の実装例を次に示します。

<%@ page import="javax.security.auth.Subject" %>
<%@ page import="java.security.Principal" %>
...
<%
  ...
  Subject subject = lc.getSubject();
  Principal principal = (Principal)subject.getPrincipals().iterator().next();
  String userid = principal.getName();
%>
...

SubjectからPrincipalが格納されているiteratorを取り出し，その1番目に格納されている値をPrincipalオブジェクトに型変換してから，PrincipalオブジェクトのgetNameメソッドでユーザIDを取得しています。

5.10.3　ユーザ属性の取得の実装（APIを使用する場合）

ユーザ属性を取得するには，ログイン時に取得したい属性の一覧を指定する必要があります。ユーザ属性の一覧を指定する場合のログイン処理の実装例を，次に示します。

<%@ page import="com.cosminexus.admin.auth.callback.WebPasswordHandler" %>
<%@ page import="com.cosminexus.admin.auth.AttributeEntry" %>
<%@ page import="javax.security.auth.login.LoginContext" %>
...
<%
  AttributeEntry[] attributes = new AttributeEntry[2];
  attributes[0] = new AttributeEntry("cn", "full name", null);
  attributes[1] = new AttributeEntry("employeeNumber", "employee ID", null);
  LoginContext lc = new LoginContext("Portal",
    new WebPasswordHandler(request, response, attributes, "login.html", true));
  try { lc.login(); } catch (LoginException e) { ... }
%>
...

属性の一覧に従って属性をリポジトリから取得し，UserAttributesオブジェクトに設定します。取得した属性は，java.lang.Object型として管理されています。リポジトリから取得した属性をUserAttributesオブジェクトに設定する実装例を次に示します。

LoginContext lc = new ...              // LoginContextクラスのインスタンス化
...
Subject subject  = lc.getSubject();
Iterator it = subject.getPublicCredentials().iterator();
UserAttributes ua= (UserAttributes)it.next();   // uaにUserAttributesの
...                                             // リファレンスが格納される。

UserAttributesオブジェクト属性の値を参照するには，次のようにUserAttributesオブジェクトに対してgetAttributeメソッドを使用してString型で取得します。

String role = (String)ua.getAttribute("Portal Role");

getAttributeメソッドでユーザ属性を取得する場合の実装例を次に示します。

<%@ page import="com.cosminexus.admin.auth.UserAttributes" %>
<%@ page import="javax.security.auth.Subject" %>
...
<%
  ...
  Subject subject = lc.getSubject();
  UserAttributes attrs = (UserAttributes)subject.getPublicCredentials().iterator().next();
  String fullname = (String)attrs.getAttribute("full name");
  String eid = (String)attrs.getAttribute("employee ID");
%>
...

5.10.4　認証に成功したSubjectをHttpSessionに登録する実装

HttpSessionに設定するオブジェクトは，java.io.Serializableインタフェースを継承したオブジェクトになります。そのため，HttpSessionにはログイン時に生成したLoginContextインスタンスではなく，java.io.Serializableインタフェースを継承しているSubjectを格納してください。格納したSubjectは，ログアウトの実装で必要になります。SubjectをHttpSessionに格納する実装例（背景色付きの太字部分）を次に示します。

<%
  LoginContext lc = new LoginContext("Portal",
    new WebPasswordHandler(request, response, null, "login.html", true));
  try {
    lc.login();
    session.setAttribute("ExampleSubject", lc.getSubject());
  } catch (LoginException e) { ... }
%>
...

なお，ログイン後にSubjectに関連づけられるユーザ属性（UserAttributes）をセッションフェイルオーバで引き継がせる場合は，Subjectとユーザ属性をHttpSessionに格納する必要があります。Subjectとユーザ属性をHttpSessionに格納する実装例（背景色付きの太字部分）を次に示します。

<%
  LoginContext lc = new LoginContext("Portal",
    new WebPasswordHandler(request, response, null, "login.html", true));
  try {
    lc.login();
     session.setAttribute("ExampleSubject", lc.getSubject());
     session.setAttribute("ExampleCredential", lc.getSubject().getPublicCredentials().iterator().next());
  } catch (LoginException e) { ... }
%>
...

5.10.5　ログアウトの実装（APIを使用する場合）

ログアウトは「5.10.4　認証に成功したSubjectをHttpSessionに登録する実装」でHttpSessionに登録されているSubjectを使用してLoginContextを再生成し，ログアウト処理を実行します。HttpSessionに登録されているSubjectは削除します。さらに，ユーザ属性をHttpSessionに登録している場合はその削除処理も実行します。ユーザ属性がある場合のログアウトの実装例を次に示します。

<%
  try {
    Subject subject = (Subject)session.getAttribute("ExampleSubject");
    LoginContext lc = new LoginContext("Example", subject);
    session.removeAttribute("ExampleCredential");
    session.removeAttribute("ExampleSubject");
    lc.logout();
  } catch (LoginException e) { ... }
%>
...

セッションタイムアウト時は，HttpSessionが無効になるためHttpSessionに登録したSubjectやユーザ属性などは無効になります。

また，統合ユーザ管理のセッションは，HttpSessionと同期しているため無効になります。

5.10.6　ログイン状態のチェック（APIを使用する場合）

ログイン状態（ユーザがログインしているかどうかの状態）をチェックするには，SubjectオブジェクトがHttpSessionに登録されていることと統合ユーザ管理のセッション内でログインしているユーザの有無を調べます。

<%
  Subject subject = (Subject)session.getAttribute("mySubject");
  if(subject != null && LoginUtil.check(request, response, realm)){
    // ログインしている場合の処理
  } else {
    // ログインしていない場合の処理
  }
%>

5.10.7　パスワード認証時の暗号拡張の実装

統合ユーザ管理フレームワークで標準提供されている，パスワードの暗号の形式（SHA-2，SHA-1，MD5および平文）以外でも，パスワード認証ができます。この暗号拡張の機能を利用するには，あらかじめ実装クラスを作成する必要があります。

ここでは，暗号拡張できるログインモジュールと，暗号拡張で使用するクラスの実装方法について説明します。暗号拡張の概要については，「5.3.9　パスワード認証時の暗号拡張」を参照してください。

(1)　暗号拡張を利用できるログインモジュール

WebPasswordLoginModuleまたはWebPasswordJDBCLoginModuleを使用する場合に，暗号拡張を利用できます。

(2)　暗号拡張で使用するクラスの実装方法

暗号拡張を実装する場合，com.cosminexus.admin.auth.security.PasswordCryptographyクラスを継承して処理を実装します。作成したクラスは，次に示すディレクトリの下にクラスファイルで格納します。

Windowsの場合：

<Application Serverのインストールディレクトリ>¥manager¥modules

UNIXの場合：

/opt/Cosminexus/manager/modules

なお，格納先ディレクトリは，統合ユーザ管理フレームワークのコンフィグレーションファイル（ua.conf）の，com.cosminexus.admin.auth.custom.modulesオプションで変更できます。

SHA-1形式でbyte型の配列で比較する場合の実装例を次に示します。

package my;

import com.cosminexus.admin.auth.security.PasswordCryptography;
import java.security.*;

public class CustomCryptography implements PasswordCryptography
{
  public byte[] encrypt (byte[] plain) {
    byte[] encryptedPassword = null;
    try{
      MessageDigest md = MessageDigest.getInstance("SHA");
      md.update(plain);
      encryptedPassword = md.digest();
    } catch (NoSuchAlgorithmException e) {
      encryptedPassword = plain;
    }
    return encryptedPassword;
  }
}

5.10.8　APIによる実装時の注意事項

ここでは，APIを使用したユーザー認証を実装するときの注意事項について説明します。

(1)　ログインおよびログアウトを実装するときの注意事項

ログインおよびログアウトを実装するときに，Subjectを使用しないで，ログイン時に生成したLoginContextのインスタンスをログアウト時に使用すると，ログインモジュールの設定内容によってはログアウトに失敗するおそれがあります。

ログインおよびログアウトは，Subjectを使用する実装にしてください。設定してはいけない実装の例を次に示します。

ログインおよびログアウトで設定してはいけない実装

<%
  LoginContext lc = new LoginContext("Portal",
    new WebPasswordHandler(request, response, null, "login.html", true));
  try { lc.login(); } catch (LoginException e) { ... }
  session.setAttribute("loginContext", lc);
%>
...
<%
  LoginContext lc = (LoginContext)session.getSession().getAttribute("loginContext");
  try { lc.logout(); } catch (LoginException e) { ... }
%>
...

注　背景色付きの太字部分は，設定してはいけない実装を示します。

(2)　ユーザ情報参照および取得を実装するときの注意事項

ユーザ情報参照および取得を実装するときには，次の点に注意してください。

UserAttributesオブジェクトの値を変更しても，リポジトリには反映されません。また，ユーザ認証ライブラリでは，取得した属性について何も加工しません。

UserAttributesオブジェクトに登録されている属性は，String型だけです。

属性の一覧で指定された属性がない場合は，nullが設定されます。

5.11　タグライブラリを使用したユーザ認証の実装

タグライブラリを使用した場合のログインからログアウトまでの実装方法について説明します。また，必要なファイルのコピーおよびDDでの定義についても説明します。タグライブラリのタグの説明と，タグ属性については，「16.　統合ユーザ管理フレームワークで使用するタグライブラリ」を参照してください。

5.11.1　ログインの実装（タグライブラリを使用する場合）

統合ユーザ管理フレームワークを使用したユーザ認証を行う場合，ログイン時にサーブレットやJSPなどでログインモジュールを呼び出す処理を実装します。ログインモジュールを使用するには，JAASのコンフィグレーションファイルの設定が必要です。JAASのコンフィグレーションファイルの設定については，「14.2.1　jaas.conf（JAASのコンフィグレーションファイル）」を参照してください。

JSPの<ua:login/>タグを使用してログインするには，HTTPリクエストオブジェクトに，com.cosminexus.admin.auth.nameパラメタ，およびcom.cosminexus.admin.auth.passwordパラメタが設定されている必要があります。したがって，まず，次に示すようなログイン用のフォームを準備して，パラメタを設定できるようにします。

<html>
<body>
<form action="auth.jsp" method="post">
<table>
<tr>
  <td>username</td>
  <td><input type="text" name="com.cosminexus.admin.auth.name" /></td>
</tr>
<tr>
  <td>password</td>
  <td><input type="password" name="com.cosminexus.admin.auth.password" />
</td>
</tr>
</table>
<br />
<input type="submit" value="Login" />
<input type="reset" value="Reset" />
</form>
</body>
</html>

次に，<ua:login/>タグを使用して，JAASコンフィグレーションファイルのPortalエントリに記述された認証モジュールを使用してログインします。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>
<%@ page errorPage="error.jsp" %>

<ua:login id="lc" entry="Portal" />
...

タグライブラリの仕様によって，タグの処理中に発生した例外は，すべてJspExceptionとなります。<ua:login/>タグの処理中に発生した例外をより細かく検出する場合は，<ua:exception>Body </ua:exception>タグを使用します。次の例では，発生した例外を，検出するJSP（loginError.jsp）に転送しています。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>

<ua:login id="lc" entry="Portal" excepId="ex" excepScope="session" />
<ua:exception name="ex" ><jsp:forward page="loginError.jsp" /></ua:exception>
...

例外を検出するJSP（loginError.jsp）では，例外の内容に応じて返すメッセージを選択しています。

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>

<html>
<body>
<ua:exception name="ex" type="javax.security.auth.login.FailedLoginException">
ユーザIDかパスワードが間違っています。<br />
</ua:exception>
<ua:exception name="ex" type="javax.security.auth.login.AccountExpiredException">
アカウントの有効期限が切れています。<br />
</ua:exception>
<ua:exception name="ex" type="javax.security.auth.login.CredentialExpiredException">
パスワードの有効期限が切れています。<br />
</ua:exception>
<ua:exception name="ex" >
例外が発生しました。<br />
<%= ex.toString() %><br />
</ua:exception>
</body>
</html>

ポイント

ログインしているかどうかを確認する方法

各JSPページの先頭に<ua:notLogin>Body</ua:notLogin>タグを記述することで，そのJSPページを処理する前にログインしているかどうかを確認できます。

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>
...
<ua:notLogin>
<a href="login.html">ログインしてください。</a>
</ua:notLogin>
...

5.11.2　ユーザIDの取得の実装（タグライブラリを使用する場合）

認証が完了したあと，認証したユーザIDは<ua:getPrincipalName>タグを使用して，表示したり，取得したりできます。次に，ユーザIDを表示する例を示します。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>
...
User ID: <ua:getPrincipalName name="lc" />
...

<ua:getPrincipalName>タグのname属性に，ログイン時に指定したLoginContextの識別子（lc）を指定します。

次に，ユーザIDを取得する例を示します。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>
...
<ua:getPrincipalName name="lc" id="userid" />User ID: <%= userid %>
...

<ua:getPrincipalName>タグのname属性に加え，id属性を指定します。id属性では，ユーザIDを参照するインスタンスを識別する識別子を指定します。

5.11.3　ユーザ属性の取得の実装（タグライブラリを使用する場合）

ユーザ属性を取得するには，<ua:attributeEntries>タグを使用して取得したい属性の一覧を指定する必要があります。次に，ユーザ属性の一覧を指定する場合の実装例を示します。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>

<ua:attributeEntries id="ae">
  <ua:attributeEntry attrName="cn" alias="full name" />
  ...
</ua:attributeEntries>
<ua:login id="lc" entry="Portal" attrEntName="ae" />
...
Full Name: <ua:getAttribute name="lc" attrName="full name" />
...

ユーザ属性の一覧を指定したあとに，<ua:getAttribute>タグを使用して，ユーザ属性を取得します。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>

<ua:login id="lc" entry="Portal" attrFile="MyAttrs.csv" />
...
<ua:getAttribute name="lc" attrName="full name" id="fullname" />
Full Name: <%= fullname %>
...

ユーザ情報参照，取得時の注意事項

UserAttributesの値は参照専用です。内容を変更してもリポジトリには反映されません。また，ユーザ認証ライブラリでは，取得した属性について何も加工しません。

登録されている属性は，String型だけです。

属性の一覧で指定された属性がない場合は，nullが設定されます。

5.11.4　ログアウトの実装（タグライブラリを使用する場合）

ログアウトの実装例を次に示します。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>

<ua:logout name="lc" />
...

<ua:login/>タグに対応する<ua:logout/>タグを明示的に記述しなかった場合は，セッション切断時に暗黙的にログアウトされます。

5.11.5　uatags.jarおよびuatags.tldのコピーとDDでの定義

JSPタグライブラリを使用する場合には，ファイルのコピーや編集が必要です。

JSPタグライブラリ用のJARファイル（uatags.jar）とタグライブラリ記述子ファイル（uatags.tld）をコピーして，WebアプリケーションのDD（web.xml）を編集してください。手順を次に示します。

uatags.jarを作成するWebアプリケーションのWEB-INF¥lib（Windowsの場合），またはWEB-INF/lib（UNIXの場合）にコピーします。

uatags.tldを作成するWebアプリケーションのWEB-INFにコピーします。

web.xmlの適切な位置に次の記述を追加します。

<taglib>
  <taglib-uri>http://cosminexus.com/admin/auth/uatags</taglib-uri>
  <taglib-location>/WEB-INF/uatags.tld</taglib-location>
</taglib>

5.12　カスタムログインモジュールを使用したユーザ認証の実装

標準ログインモジュール以外の手段でユーザ認証する場合は，カスタムログインモジュールとして作成して，標準ログインモジュールと連携して使用します。

5.12.1　標準ログインモジュールと連携するための実装

JAASでは，一度の認証で複数の認証モジュールを順次呼び出せます。これらの認証モジュールでは，LoginModuleインタフェースのinitializeメソッドの第3パラメタに渡されるMapオブジェクト（sharedState）を利用して情報を渡します。ここでは，標準ログインモジュール別に，追加する情報を示します。なお，DelegationLoginModuleおよびWebPasswordJDBCLoginModuleでは，情報は追加しません。

(1)　WebPasswordLoginModule，WebCertificateLoginModule，およびWebPasswordLDAPLoginModule

WebPasswordLoginModule，WebCertificateLoginModule，およびWebPasswordLDAPLoginModuleでは，次のLoginModuleを呼び出す前にsharedStateに次に示す情報を追加します。

キー：com.cosminexus.admin.auth.userattributes

値の型：UserAttributes

説明：Subjectに関連づけたユーザ属性を格納したUserAttributesオブジェクトを参照します。

設定されるタイミング：commitメソッド終了直前

(2)　WebSSOLoginModule

同一セッション内で認証済みであれば，そのユーザに対応するユーザマッピングから該当レルムのユーザの認証情報を取得して，カスタムログインモジュールを呼び出す前に次に示す情報をsharedStateに追加します。該当セッションで初めて認証する場合や，ユーザマッピング上に認証情報がない場合は，情報を追加しません。

キー：com.cosminexus.admin.auth.sso.userid

値の型：String

説明：ユーザマッピングのUSERIDで定義した値です。

設定されるタイミング：カスタムログインモジュールのloginメソッドを呼び出す直前

キー：com.cosminexus.admin.auth.sso.secdat

値の型：String

説明：ユーザマッピングのSECRETDATAで定義した値です。sharedStateに格納される場合は，復号化されて格納されます。

設定されるタイミング：カスタムログインモジュールのloginメソッドを呼び出す直前

キー：com.cosminexus.admin.auth.sso.pubdat

値の型：String

説明：ユーザマッピングのPUBLICDATAで定義した値です。

設定されるタイミング：カスタムログインモジュールのloginメソッドを呼び出す直前

また，各キーについては，統合ユーザ管理フレームワークのコンフィグレーションファイルで変更できます。すでにカスタムログインモジュールがあり，sharedStateから認証情報を取得できる場合，そのカスタムログインモジュールの仕様に合わせたキーにできます。コンフィグレーションファイルの設定内容については，「14.2.1　jaas.conf（JAASのコンフィグレーションファイル）」を参照してください。

5.12.2　カスタムログインモジュールの実装時の留意点

カスタムログインモジュールを作成するには，JAASのSPIであるLoginModuleインタフェースを継承して必要な処理を実装します。カスタムログインモジュールを実装する場合の，LoginModuleインタフェースの実装時の留意点を示します。また，ユーザIDを管理するPrincipalオブジェクトの実装時の留意点を示します。

(1)　LoginModuleインタフェースの実装時の留意点

loginメソッド

シングルサインオンに対応するには，最初にsharedState内にユーザIDとパスワードが指定されていないか判断してください。なお，sharedStateからユーザIDとパスワードを取得するための名前については，統合ユーザ管理フレームワークのコンフィグレーションファイルで指定できます。

commitメソッド

PrincipalオブジェクトをSubjectに設定してください。Principalオブジェクトが複数ある場合，WebSSOLoginModuleおよびDelegationLoginModuleでは最初に見つかったPrincipalオブジェクトを使用して統合ユーザ管理のセッションへユーザIDの登録をします。シングルサインオンの場合は，最初にログインしたユーザIDを認識するために使用します。

logoutメソッド

logoutメソッドは，commitメソッドでSubjectに関連づけたPrincipalオブジェクトやCredential（ユーザ属性など）を削除します。また，ログインで確保したリソースがあれば，確保したリソースを解放します。

logoutメソッド使用時に次の現象が発生することがあります。

logoutメソッドが呼ばれたとき，SubjectにCredentialが設定されない

ログアウト時にカスタムログインモジュールのcommitメソッドまたはloginメソッドで設定したメンバ属性の値が参照できない

Credentialが設定されない現象は，シリアライズ化できるSubjectオブジェクトのシリアライズ対象に，Credentialが含まれていないために発生することがあります。

ログアウト時にメンバ属性の値が参照できない現象は，JAASのLoginContext（LoginModuleを含む）がシリアライズ化されたオブジェクトではないために発生します。LoginContextはHttpSessionにSubjectオブジェクトを格納し，ログアウトするためにSubjectオブジェクトから新たなログインモジュールのインスタンスを生成するため，commitメソッドやloginメソッドで設定したメンバ属性の値が参照できなくなります。

(2)　Principalオブジェクトの実装時の留意点

Principalオブジェクトは，java.security.Principalとjava.io.Serializableのインタフェースを継承して実装してください。

5.12.3　カスタムログインモジュールの実装例

カスタムログインモジュールおよびPrincipalオブジェクトの実装例を示します。

カスタムログインモジュールの実装例では，最初にセッションフェイルオーバ機能を使用しない場合の例を示します。セッションフェイルオーバ機能を使用する場合の例は，セッションフェイルオーバ機能を使用しない場合と異なる部分だけ示します。

(1)　セッションフェイルオーバ機能を使用しない場合の実装例

セッションフェイルオーバ機能を使用しない場合のカスタムログインモジュールの実装例を示します。

/**
* LoginModuleの実装クラスは，LoginModuleインタフェースを継承して作成します。
*
*/
public class ExampleLoginModule implements LoginModule
{
    // initialize()メソッドに渡ってきたパラメタの値を各メソッドで参照するために使用されます。
    private Subject subject;
    private CallbackHandler callbackHandler;
    private Map sharedState;
    private Map options;

    // sharedStateからユーザIDおよびパスワードの値を取り出すときの名称を定義します。
    // “simple.login.username”， "simple.login.password";は，統合ユーザ管理のコンフィグレーションファイルで
    // 指定できます。
    private static final String USERNAME = "simple.login.username";
    private static final String PASSWORD = "simple.login.password";

    // 認証の判定をするユーザIDを格納します。この値は，login()で設定され，commit()で参照されます。
    private String username;

    // login()の正否を格納します。trueなら，login()が成功しており，falseならlogin()が失敗しています。
    // この値は，login()で設定されcommit()で参照されます。
    private boolean succeeded;

    // commit()の正否を格納します。trueなら，commit()が成功しており，falseならcommit()が失敗しています。
    // この値は，commit ()で設定されabort ()で参照されます。
    private boolean commitSucceeded;

    /**
    * initialize()メソッドでは，引数に渡ってきたパラメタをメンバ変数に覚えます。
    * また，これ以外に初期化が必要な処理があればそれを行います。
    * (このクラスインスタンス化時に1回だけ呼ばれる)
    *
    */
    public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options)
    {
        this.subject = subject;
        this.callbackHandler = callbackHandler;
        this.sharedState = sharedState;
        this.options = options;
    }

    /**
    * login ()メソッドでは，認証に必要なユーザIDの取得と認証処理を行います。
    * 本例では，認証に成功した場合succeededにtrueを設定します。また，usernameに認証したユーザID
    * を格納します。
    *
    */
    public boolean login()
        throws LoginException
    {
        // SSOに対応するには，最初にsharedState内にユーザID・パスワードを取り出します。
        this.username = (String)this.sharedState.get(USERNAME);
        String password = (String)this.sharedState.get(PASSWORD);

        // sharedState内にユーザIDがない場合，CallbackHandlerを使ってユーザID/パスワードの
        // 取り出しを行います。(この例では，WebPasswordCallbackに値を設定してくれる，WebPasswordHandlerが
        // 前提になります)
        if (this.username == null || this.username.length() == 0) {
            WebPasswordCallback webpc = new WebPasswordCallback();
            webpc.setOption(WebPasswordCallback.GETPW);
            Callback callbacks[] = new Callback[] { webpc };
            try {
                this.callbackHandler.handle(callbacks);
            }
            catch (Exception ex) {
                // 例外処理を行います。
            }
            // CallbackからユーザIDとパスワードを取り出します。
            this.username = webpc.getName();
            password = webpc.getPassword();
        }

        // 認証で使用するユーザIDの有無を調べます。もし，ユーザIDがない場合は，例外を上げます。
        if (this.username == null || this.username.length() == 0) {
            throw new FailedLoginException();
        }

        // 各アプリケーションの認証処理を行います。
        // 認証した結果，問題がなければsucceededにtrueを設定します。

        /* ここに認証処理を入れる。 */

        if (!succeeded) {
            throw new FailedLoginException();
        }
        return succeeded;
    }

    /**
    * commit ()メソッドでは，認証したことを示すために，PrincipalオブジェクトをSubjectに関連づけます。
    * (SimplePrincipalは，PrincipalとSerializableのインタフェースを継承して作成されたクラスです。
    *
    */
    public boolean commit()
        throws LoginException
    {
        // PrincipalオブジェクトをSubjectに関連づけます。これにより，統合ユーザ管理で管理している
        // ログインセッション管理に参加したり，SSOの機能に対応することができます。
        this.subject.getPrincipals().add( new SimplePrincipal(this.username) );

        /* ユーザ属性があるなら，それもSubjectに関連づける処理を入れる。 */

        return this.commitSucceeded = true;
    }

    /**
    * abort ()メソッドでは，login()メソッドcommit()メソッドで障害があった場合にリカバリするために
    * 呼び出されます。
    *
    */
    public boolean abort()
        throws LoginException
    {
        if (this.commitSucceeded) {
            // Subjectに関連づけているPrincipalやユーザ属性を解放します。
            // この例ではlogout()メソッドを呼び出して解放します。
            logout();
        }
        return true;
    }

    /**
    * logout ()メソッドでは，ログアウトする場合に呼び出されます。
    * このメソッドでは，Subjectに関連づけられているPrincipalやユーザ属性を解放するために使用されます。
    *
    *
    */
    public boolean logout()
        throws LoginException
    {
        // SubjectからPrincipalやユーザ属性を削除する処理を入れます。
        // また，login()メソッドで確保したリソースがあれば，それを解放する処理を追加します。
        return true;
    }
}

(2)　セッションフェイルオーバ機能を使用する場合の実装例

loginメソッドとcommitメソッドについては，セッションフェイルオーバ機能を使用しない場合と同じです。ここでは，違いのあるlogoutメソッドの実装方法を示します。

/**
 * LoginModuleの実装クラスは，LoginModuleインタフェースを継承して作成します。
 */
public class ExampleLoginModule implements LoginModule
{
  /**
   * logout ()メソッドでは，ログアウトする場合に呼び出されます。
   * このメソッドでは，ログイン時に取得したリソースを解放するために使用されます。
   */
  public boolean logout() throws LoginException
  {
    if (callbackHandler != null) {
        WebLogoutCallback callback = new WebLogoutCallback();
        try {
            callbackHandler.handle(new Callback[]{callback});
        } catch (Exception e) { ... }
        String uid = callback.getUserID();
        HttpSession session = callback.getSession();
        // login()メソッドで確保したリソースがあれば，それを解放する処理を追加します。
        //例えば，グローバルセッションに登録した情報を削除するなど。
    }
    return true;
  }
}

logoutメソッドでは，ログイン時に取得したリソースを解放します。セッションフェイルオーバ機能を使用する場合，SubjectやPrincipalはフェイルオーバされないことに注意してください。

(3)　Principalオブジェクトの実装例

Principalオブジェクトは，java.security.Principalとjava.io.Serializableのインタフェースを継承して作成してください。Principalオブジェクトの実装例を示します。

import java.security.Principal;
import java.io.Serializable;

/**
* Principalの実装クラスは，PrincipalとSerializableインタフェースを継承して作成します。
*
*/
public class SimplePrincipal implements Principal, Serializable
{
  private String name;

  public SimplePrincipal(String name) {
    if (name == null) throw new NullPointerException();
    this.name = name;
  }
  public String getName() { return name; }
  public String toString() { return getName(); }
  public boolean equals(Object o) {
    if (o == null) return false;
    if (this == o) return true;
    if (!(o instanceof SimplePrincipal)) return false;
    SimplePrincipal rhs = (SimplePrincipal)o;
    if (getName().equals(rhs.getName())) return true;
    return false;
  }
  public int hashCode() { return getName().hashCode(); }
}

5.13　統合ユーザ管理機能の設定手順

この節では，統合ユーザ管理機能の設定手順について説明します。

Application Serverでは，Application Serverで構築したシステムにログインするユーザを統合管理できます。統合ユーザ管理では，それぞれのJ2EEアプリケーションが管理しているユーザの情報が関連づけて管理され，一度のログイン処理でさまざまなJ2EEアプリケーションにログインできるようになります。統合ユーザ管理機能を使用する場合は，ユーザ認証情報を格納するLDAPディレクトリサーバや，統合ユーザ管理のコンフィグレーションファイルを設定する必要があります。

なお，統合ユーザ管理機能を使用するためには，J2EEアプリケーションの開発時に，JAASのAPIおよびApplication Serverが提供している統合ユーザ管理API，ならびにJSPタグライブラリを使用して，標準ログインモジュールを呼び出す認証処理プログラムを作成しておく必要があります。また，それぞれのアプリケーションで独自の認証処理をする場合は，カスタムログインモジュールを作成する必要があります。作成方法については，「5.12　カスタムログインモジュールを使用したユーザ認証の実装」を参照してください。

統合ユーザ管理機能の設定手順を次の図に示します。

図5‒24　統合ユーザ管理機能の設定手順

図中の1.〜9.について説明します。

ユーザ管理方法を検討し，同一の認証ポリシーを適用する範囲（レルム）を決定します。

ユーザを管理する単位を検討し，対応するレルム名を決定します。レルム名の決定については，「5.14　レルム名の決定」を参照してください。

LDAPディレクトリサーバを設定します。

シングルサインオンを使用する場合には，シングルサインオン用のユーザ情報をLDAPディレクトリサーバで管理しますので，LDAPディレクトリサーバが必要です。LDAPディレクトリサーバの設定については，「5.15　LDAPディレクトリサーバの設定」を参照してください。

シングルサインオンを使用しないでRDB（HiRDBやOracleなど）の提供するユーザ認証だけを使用する場合は，この手順は不要です。

ユーザ認証に使用するユーザ情報をLDAPディレクトリサーバ，またはRDBに登録します。

LDAPディレクトリサーバへのユーザ情報の登録については，「5.16　ユーザ情報の登録」を参照してください。なお，Application Serverでは，LDAPディレクトリサーバに格納するユーザ管理リポジトリの標準的なDIT構造を規定しています。リポジトリの構造については，「5.2.4　統合ユーザ管理で使用するユーザ情報の管理方法」を参照してください。

RDBへのユーザ情報の登録については，使用しているRDBのマニュアルを参照してください。

シングルサインオンを使用する場合で，シングルサインオン用のユーザ情報を暗号化したいときは，ユーザ情報を暗号化または復号化するための暗号鍵ファイルを作成します。

暗号鍵ファイルの作成については，「5.17　暗号鍵ファイルの作成（シングルサインオンを使用する場合）」を参照してください。

シングルサインオンを使用しない場合，またはユーザ情報を暗号化しない場合，この手順は不要です。

シングルサインオンを使用する場合は，シングルサインオン用のユーザ情報をLDAPディレクトリサーバに登録します。

LDAPディレクトリサーバへのシングルサインオン用のユーザ情報の登録については，「5.18　ユーザ情報の登録（シングルサインオンを使用する場合）」を参照してください。なお，Application Serverでは，LDAPディレクトリサーバに格納するシングルサインオン用のユーザ管理リポジトリの標準的なDIT構造を規定しています。リポジトリの構造については，「5.2.4　統合ユーザ管理で使用するユーザ情報の管理方法」を参照してください。

シングルサインオンを使用しない場合，この手順は不要です。

コンフィグレーションファイルを作成します。

作成するファイルは，次の2種類です。

jaas.conf（JAASのコンフィグレーションファイル）

ua.conf（統合ユーザ管理のコンフィグレーションファイル）

コンフィグレーションファイルの作成については，「5.19　コンフィグレーションファイルの作成」を参照してください。

JavaVMのプロパティを設定します。

JavaVMのプロパティの設定については，「5.20　JavaVMのプロパティの設定」を参照してください。

統合ユーザ管理で使用するEARファイルをデプロイします。

ファイルのデプロイについては，「5.21　ファイルのデプロイ」を参照してください。

必要に応じて，統合ユーザ管理で使用する情報のバックアップを取ります。

LDAPディレクトリサーバのリポジトリのバックアップとリストアは，LDAPディレクトリサービスが提供するコマンド，またはディレクトリゲートウェイで操作します。詳細については，LDAPディレクトリサーバのマニュアルを参照してください。

jaas.conf，ua.conf，および暗号鍵ファイルのバックアップも取るようにしてください。

なお，J2EEサーバ実行中にua.confを設定しても反映されません。設定を反映するには，J2EEサーバを再起動する必要があります。

5.14　レルム名の決定

ユーザを管理する単位を検討し，対応するレルム名を決定してください。この名称は，JAAS対応ユーザ管理の認証時に使用します。jaas.conf（JAASのコンフィグレーションファイル）内の該当するログインモジュールのオプションとして指定します。通常は，「SoumuSystem」のような，ユーザ管理を共有しているアプリケーション群を表すわかりやすい名称を使用します。

5.15　LDAPディレクトリサーバの設定

この節では，LDAPディレクトリサーバの設定について説明します。

LDAPディレクトリサーバの設定手順を次に示します。

LDAPディレクトリサーバを設置します。

詳細については，「5.15.1　LDAPディレクトリサーバの設置」を参照してください。

LDAPディレクトリサーバにユーザを登録して，アクセス権を設定します。

詳細については，「5.15.2　ユーザの登録とアクセス権の設定」を参照してください。

シングルサインオンを使用する場合は，シングルサインオンライブラリ固有のオブジェクトクラスとユーザ定義属性をLDAPディレクトリサーバに登録して，オブジェクトクラスとユーザ属性定義を拡張します。

詳細については，「5.15.3　オブジェクトクラスとユーザ定義属性の拡張」を参照してください。

5.15.1　LDAPディレクトリサーバの設置

Application Serverでは，ユーザ情報を管理するリポジトリとして，LDAPディレクトリサーバを使用できます。LDAPディレクトリサーバをインストールして初期設定をしてください。インストールと初期設定については，使用しているLDAPディレクトリサーバのマニュアルを参照してください。

使用できるLDAPディレクトリサーバの例を次に示します。なお，使用できるLDAPディレクトリサーバの詳細については「リリースノート」でご確認ください。

使用できるLDAPディレクトリサーバの例

Sun Java System Directory Server

IBM SecureWay Directory（またはIBM Directory Server）

Active Directory

すでにLDAPディレクトリサーバを使用している場合には，LDAPディレクトリサーバで使用中のスキーマを参照して，シングルサインオン固有のスキーマが使用されていないことを確認してください。詳細については，「5.15.3　オブジェクトクラスとユーザ定義属性の拡張」を参照してください。

5.15.2　ユーザの登録とアクセス権の設定

統合ユーザ管理でLDAPディレクトリに接続（バインド）するために，管理用および参照用のユーザを登録してアクセス権を設定してください。

管理用ユーザのDNのことを管理用のバインドDN，参照用ユーザのDNのことを参照用のバインドDNといいます。

管理用のバインドDNは，統合ユーザ管理フレームワークで使用するベースエントリ以下すべてのエントリ，およびエントリに設定されたすべての属性に対して，すべてのアクセス権（Read，Write，Add，Delete，Search，Compare，Selfwrite）を持つバインドDNです。管理用のバインドDNは，LDAPディレクトリサーバ上のユーザ管理情報を登録，参照，変更，および削除するときに使用します。

参照用のバインドDNは，統合ユーザ管理フレームワークで参照するベースエントリ以下すべてのエントリ，およびエントリに設定されたすべての属性に対して，ReadとSearchのアクセス権を持つバインドDNです。参照用のバインドDNは，LDAPディレクトリサーバからユーザ情報などを取得するときに使用します。

5.15.3　オブジェクトクラスとユーザ定義属性の拡張

シングルサインオンを使用する場合は，シングルサインオンライブラリ固有のオブジェクトクラスとユーザ定義属性をLDAPディレクトリサーバに登録して，オブジェクトクラスとユーザ定義属性を拡張してください。

なお，拡張するオブジェクトクラスとユーザ定義属性の属性はシングルサインオンライブラリ固有のスキーマで，ほかのシステムとは共有できません。すでにLDAPディレクトリサーバを使用している場合は，LDAPディレクトリサーバで使用中のスキーマを参照し，シングルサインオン固有のスキーマが使用されていないことを確認してください。

(1)　シングルサインオンライブラリで拡張するオブジェクトクラス

シングルサインオンライブラリ固有のオブジェクトクラスを次の表に示します。

表5‒11　シングルサインオンライブラリ固有のオブジェクトクラス

オブジェクトクラス

OID

必須属性

任意属性

CosminexusSSOEntry

1.2.392.200010.7.6.21

objectClass,

CosminexusSSOEntryID,

CosminexusSSOUID

CosminexusSSOSecretdata,

CosminexusSSOPublicdata,

CosminexusSSOMapping

(2)　シングルサインオンライブラリで拡張するユーザ定義属性

シングルサインオンライブラリ固有の属性を次の表に示します。

表5‒12　シングルサインオンライブラリ固有の属性

属性

OID

シンタックス

マルチバリュー／シングルバリュー

CosminexusSSOEntryID

1.2.392.200010.7.4.71

cis

シングルバリュー

CosminexusSSOUID

1.2.392.200010.7.4.72

ces

シングルバリュー

CosminexusSSOSecretdata

1.2.392.200010.7.4.73

bin

シングルバリュー

CosminexusSSOPublicdata

1.2.392.200010.7.4.74

ces

シングルバリュー

CosminexusSSOMapping

1.2.392.200010.7.4.75

dn

マルチバリュー

(3)　拡張するオブジェクトクラスおよびユーザ定義属性の追加手順

拡張するオブジェクトクラスおよびユーザ定義属性の追加手順について，LDAPディレクトリサーバの種類ごとに説明します。

Sun Java System Directory ServerまたはOracle Directory Server Enterprise Editionの場合

LDAPディレクトリサーバが起動していることを確認し，uaschema.slapd.ldifを次のコマンドでLDAPディレクトリサーバに登録してください。

ldapmodify -h <ホスト名> -p <ポート番号> -D <管理用のバインドDN> -w <パスワード> -c -f uaschema.slapd.ldif

IBM SecureWay DirectoryまたはIBM Directory Serverの場合

LDAPディレクトリサーバが起動していることを確認し，uaschema.ldifを次のコマンドでLDAPディレクトリサーバに登録してください。

ldapmodify -h <ホスト名> -p <ポート番号> -D <バインドDN> -w <パスワード> -c -f uaschema.ldif

ここで，指定するバインドDNは管理者権限を持っている必要があります。

Active Directoryの場合

Active Directoryでスキーマ修正ができるように設定を変更します。Microsoft管理コンソール（mmc.exe）を起動して，「スナップインの追加と削除」でActive Directoryスキーマを追加してください。「Active Directoryスキーマ」を右クリックして「操作マスタ」を選択し，「このドメインコントローラでスキーマの修正が可能」をチェックして［OK］ボタンをクリックしてください。

次のコマンドでuaschema.ad.ldifをActive Directoryに登録してください（ログオン先のドメインのドメインコントローラに現在ログオンしているユーザとして接続する場合です）。

　　 ldifde -i -c "dc=domain" "<ToDN>" -f uaschema.ad.ldif

ここで，ToDNにはドメインによって異なる適切なDNを指定してください。例えば，ドメインが「xxx.co.jp」の場合，ToDNは「dc=xxx,dc=co,dc=jp」となります。

5.16　ユーザ情報の登録

この節では，LDAPディレクトリサーバへのユーザ情報の登録方法と，登録するユーザ情報の文法について説明します。RDBへのユーザ情報の登録方法については，使用しているRDBのマニュアルを参照してください。

なお，Application Serverでは，LDAPディレクトリサーバに格納するユーザ管理リポジトリの標準的なDIT構造を規定しています。リポジトリの構造については，「5.2.4　統合ユーザ管理で使用するユーザ情報の管理方法」を参照してください。

ユーザ情報をユーザ情報リポジトリに登録する方法には，次の2種類があります。

コマンドによる登録

統合ユーザ管理フレームワークのライブラリによる登録

それぞれの登録方法について説明します。また，登録するユーザ情報の文法，およびActive Directoryを使用する場合の設定についても説明します。

5.16.1　コマンドによる登録

Application Serverが提供するコマンドとLDAPディレクトリサーバが提供するコマンドを使用してユーザ情報を登録する場合の手順を次に示します。

ユーザ情報を，LDIFファイルに記述します。

convpwコマンドでLDIFファイル中のパスワードを暗号化します。

LDIFファイル中に指定されたパスワードが暗号化されます。convpwコマンドについては，「convpw（パスワードの暗号化）」を参照してください。

暗号化したLDIFファイルを，LDAPディレクトリサーバが提供するldapmodifyコマンドでユーザ情報リポジトリに登録します。

また，LDAPディレクトリサーバが提供するGUIでユーザ情報を登録できる場合もあります。詳細については，使用しているLDAPディレクトリサーバのマニュアルを参照してください。

統合ユーザ管理のLDAPサーバにIBM Tivoli Directory Serverを使用する場合，サフィックスDNを登録しただけではユーザが登録できません。ユーザ登録で使用するLDIFファイルの先頭に，例のようなコードを追加してldapmodifyコマンドを実行してください。

（例）サフィックスDNに「o=apsm.com」を追加した場合

dn: o=apsm.com
objectclass: top
objectclass: organization
o: apsm.com

5.16.2　統合ユーザ管理フレームワークのライブラリによる登録

ユーザ認証ライブラリが提供するAPIを使用してアプリケーションを作成し，そのアプリケーションを使用してユーザ情報を登録します。

APIを利用するアプリケーションは，最初にLdapUserDataManagerオブジェクトを生成します。このクラスのコンストラクタにはLDAPディレクトリサーバの定義識別子を指定します。定義識別子は，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で指定します。定義識別子にはLDAPディレクトリサーバのURL，バインドDN，バインドDNのパスワード，ベースDNなどが関連づけられています。なお，LdapUserDataManagerオブジェクトは定義ごとに一つ生成するようにしてください。

なお，LDAPディレクトリサーバとしてActive Directoryを使用して，ユーザの登録，ユーザ情報の更新，およびリポジトリ情報のパスワードの変更をする場合の方法については，「5.16.4　Active Directoryを使用する場合の設定」を参照してください。

ユーザ認証の実装については，「5.10　APIを使用したユーザ認証の実装」を参照してください。また，統合ユーザ管理フレームワークで使用するAPIについては，「15.　統合ユーザ管理フレームワークで使用するAPI」を参照してください。

5.16.3　登録するユーザ情報の文法

ユーザ情報は，次の表に示す文法に従って登録してください。

表5‒13　ユーザ情報の文法

情報の種類

意味

文法

ユーザID

ユーザの識別子。

英数字列。

長さは1〜512（単位：文字）。

パスワード

ユーザに対応するパスワード。

英数字列および特殊文字。

長さは0〜512（単位：文字）。

注1　英数字列は，英字（A〜Z，a〜z）と数字（0〜9）の文字の並びを意味します。

注2　特殊文字は，次の記号を意味します。

（空白）｜!｜"｜#｜$｜%｜&｜'｜(｜)｜*｜+｜,｜-｜.｜/｜:｜;｜<｜=｜>｜?｜@｜[｜¥｜]｜^｜_（アンダースコア）｜`｜{｜}｜|（垂直バー）｜~

注3　「文法」欄で明記されていない場合は，英字の大文字と小文字の区別をします。

注4　ASCII文字列で指定してください（文法については，プログラムではチェックしていません）。

注5　パスワードを平文でリポジトリに格納する場合，空文字（""）をパスワードとして使用しないでください。使用した場合，そのユーザはログインできなくなることがあります。パスワードとして空文字を使用したい場合は，SHA-1などによる暗号化をしてください。

5.16.4　Active Directoryを使用する場合の設定

LDAPディレクトリサーバとしてActive Directoryを使用する場合の設定方法について説明します。

統合ユーザ管理フレームワークのライブラリを使用して，ユーザ情報リポジトリへのユーザの登録，ユーザ情報の更新（ユーザのパスワード変更を含む）を行う場合，Active Directory固有の環境設定，およびSSLを使用して接続するための証明書の登録が必要です。

LDAPディレクトリサーバとしてActive Directoryを使用する場合の設定項目を，次の表に示します。なお，使用するユーザ認証方式によって設定する項目が異なります。

表5‒14　Active Directoryを使用する場合の設定項目一覧

設定項目

パスワード認証

パスワード変更およびユーザの追加・変更

クライアント認証（X509証明書）

jaas.confの設定

必要なログインモジュールの指定

○

○

○

ログインモジュールのオプションの指定

△

○

−

ua.confの設定

ユーザ識別属性の指定

○

○

○

DNでユーザIDとして使用する属性名の指定

−

−

○

パスワード属性の指定

○

○

−

LDAPディレクトリサーバの種類の指定

○

○

−

日本語など2バイト文字を含むDNの変換

△

△

△

URLプロトコルの変更

△

○

△

SSL接続の設定

△

○

△

（凡例）

○：必ず設定する

△：必要に応じて設定する

−：設定しない（設定しても無視される）

注※　パスワードの設定やユーザの追加・変更を実施する場合を示します。

Active Directory固有の環境設定の方法，およびSSLを使用して接続するための証明書の登録を次に示します。

ポイント

Active Directoryで管理するユーザは，ほかのLDAPディレクトリサーバで管理するユーザと，オブジェクトクラス，属性が大きく異なります。統合ユーザ管理フレームワークのライブラリを使用する場合には，オブジェクトクラスに「user」を使用します，その「user」を作成する場合には，「cn」，「unicodePwd」，「sAMAccountName」，および「userAccountControl」の属性を指定します。

「sAMAccountName」には，セキュリティアカウントマネージャ（SAM）のアカウント名を指定します。なお，通常，アカウント名はユーザIDと同じ値を指定します。

「userAccountControl」には，ユーザアカウントのプロパティフラグを指定します。一般ユーザのユーザエントリを作成する場合は「512」を指定します。ただし，Active Directoryがインストールされているサーバのセキュリティポリシーで，パスワードの長さが1文字以上に設定されている場合，「userAccountControl」に「512」を指定すると，ユーザを作成できません。この場合は，次のどちらかの対処をして，ユーザエントリを作成してください。

セキュリティポリシーのパスワードの長さを0文字以上に変更して，「userAccountControl」に「512」を指定する。

セキュリティポリシーのパスワードの長さの設定を変更しないで，「userAccountControl」に「544」を指定する。

(1)　jaas.confの設定

jaas.confに設定する内容について説明します。

(a)　ログインモジュールの設定

認証方式にパスワード認証を使用する場合はWebPasswordLDAPLoginModule，クライアント証明を使用する場合はWebCertificateLoginModuleを設定します。

(b)　ログインモジュールのオプションの指定（パスワード認証を使用する場合）

WebPasswordLDAPLoginModuleのオプションに「ldap.w」を設定します。なお，SSOを使用する場合は「sso.ldap.w」を設定します。

(2)　ua.confの設定

ua.confに設定する内容について説明します。

(a)　ユーザ識別属性の指定

ユーザ識別属性に，「cn」（フルネームに該当）または「sAMAccountName」を設定します。

設定例を次に示します。

（例1）「cn」をユーザ識別属性に使用する場合

com.cosminexus.admin.auth.ldap.attr.userid.0=cn

（例2）「sAMAccountName」をユーザ識別属性に使用する場合

com.cosminexus.admin.auth.ldap.attr.userid.0=sAMAccountName

ユーザ識別属性を「sAMAccountName」に設定した場合リポジトリのユーザエントリ（RDN）の検索が必要となります。検索に必要なプロパティとその設定例を次に示します。

（例）

java.naming.security.principal.0=cn=Administrator,cn=Users,dc=cosminexus,dc=com
java.naming.security.credentials.0=adminpassword
com.cosminexus.admin.auth.ldap.search.userrdn.0=true
com.cosminexus.admin.auth.ldap.search.scope.0=onelevel

なお，「sAMAccountName」をユーザ識別属性に使用する場合は，LdapUserDataManagerクラスのaddUserData(String uid, UserData userData)メソッドは使用できません。ユーザを追加する場合は addUserData(String uid, UserData userData, String name, String value)メソッドを使用してください。また，属性名の引数（String name）には，「cn」を設定してください。

(b)　DNでユーザIDとして使用する属性名の指定（クライアント証明書を使用する場合）

クライアント証明書を使用する場合は，クライアント証明書に格納されているDN（クライアント証明書の被認証者識別名）を分解したあと，ユーザIDとして使用する属性名を設定します。設定例を次に示します。

（例）

com.cosminexus.admin.auth.ldap.certificate.attr.userid.0=cn

ここで指定する属性名は，「(a)　ユーザ識別属性の指定」で指定するユーザ識別属性とは異なります。

(c)　パスワード属性の指定（パスワード認証を使用する場合）

パスワード属性に「unicodePwd」を設定します。設定例を次に示します。

（例）

com.cosminexus.admin.auth.ldap.attr.password.0=unicodePwd

(d)　LDAPディレクトリサーバの種類の指定（パスワード認証を使用する場合）

接続先のLDAPディレクトリサーバの種類に「AD」を指定した行を追加します。LDAP設定番号が「0」の場合の設定例を次に示します。

（例）

com.cosminexus.admin.auth.ldap.directory.kind.0=AD

(e)　URLプロトコルの変更

接続先のLDAPディレクトリサーバのURLのプロトコルに「ldaps」を設定します。設定例を次に示します。なお，ポート番号は省略できます。

（例）

変更前：java.naming.provider.url.0=ldap://localhost:389

変更後：java.naming.provider.url.0=ldaps://localhost.example.com:636

(f)　URLホスト名の注意事項

Active DirectoryのドメインコントローラのFQDN（完全修飾ドメイン名）を指定してください。そのとき，hostsファイルなどでホスト名を解決できるようにする必要があります。

(3)　SSL接続の設定

J2EEサーバとActive Directory間の通信でSSLを使用するための証明書を登録します。証明書の登録方法を次に示します。

作成したデジタル証明書を，Active Directoryがインストールされているサーバ（LDAPサーバ）に登録します。

デジタル証明書の作成，登録方法については，Active Directoryのドキュメントを参照してください。

認証局（CA）の証明書を，J2EEサーバに登録します。

認証局の証明書のJ2EEサーバへの登録は，Developer's Kit for Javaに付属するkeytoolを使用して実行できます。keytoolの詳細については，Java 2 SDK, Standard Editionのドキュメントを参照してください。keytoolの実行例を次に示します。なお，表記の都合上，複数行にわたっていますが，実際は一行で記述します。

Windowsの場合

keytool -import -alias cakey -file C:¥temp¥cacer.cer -trustcacerts -keystore
"<Application Serverのインストールディレクトリ>¥jdk¥lib¥security¥cacerts"

UNIXの場合

/opt/Cosminexus/jdk/bin/keytool -import -alias cakey -file /tmp/cacer.cer
-trustcacerts -keystore /opt/Cosminexus/jdk/lib/security/cacerts

なお，keytoolで証明書を登録する際にJ2EEサーバを起動していた場合は，J2EEサーバを再起動してください。

(4)　注意事項

注意事項を次に示します。

ua.confでユーザのパスワードを表す属性値として「unicodePwd」を指定した場合，パスワード形式オプション「password.encrypt」および「password.encrypt.ex」の設定は無効になります。

Active Directoryでは，既存ユーザエントリのオブジェクトクラスの変更はサポートしていません。ua.confに「com.cosminexus.admin.auth.ldap.directory.kind.0=AD」を指定した場合，LdapUserDataManagerクラスのコンストラクタで新規にオブジェクトを追加したあとで，既存のユーザエントリを更新しても，ユーザエントリ作成時のオブジェクトクラスが適用されます。

5.17　暗号鍵ファイルの作成（シングルサインオンを使用する場合）

この節では，シングルサインオン用のユーザ情報を暗号化または復号化するための暗号鍵ファイルの作成と変更について説明します。ユーザ情報を暗号化しない場合，暗号鍵ファイルの作成は不要です。

シングルサインオン用のユーザ情報を暗号化する場合は，暗号鍵ファイルで暗号化してLDAPディレクトリサーバに格納します。また，ユーザ情報を参照するためには，暗号鍵ファイルで復号化して参照します。ユーザ情報を暗号化する場合は，LDAPディレクトリサーバに登録する前に，暗号鍵ファイルを作成してください。

5.17.1　暗号鍵ファイルの作成

シングルサインオン用のユーザ情報を暗号化または復号化するための暗号鍵ファイルは，ssogenkeyコマンドで作成します。なお，作成した暗号鍵ファイルは，システム管理者が安全な場所に保管してください。

また，シングルサインオン用のユーザ情報を暗号化または復号化するためには，ua.conf（統合ユーザ管理のコンフィグレーションファイル）で，使用する暗号エンジンに「JCE」を指定する必要があります。

ssogenkeyコマンドについては，「ssogenkey（暗号鍵ファイルの作成）」を参照してください。ua.confについては，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

5.17.2　暗号鍵ファイルの変更

シングルサインオン用のユーザ情報は登録済みで，暗号鍵ファイルを変更する場合は，次の手順で変更してください。暗号鍵ファイルを変更する手順を次に示します。

ssoexportコマンドでシングルサインオン情報リポジトリの内容をすべて取り出します。

ssogenkeyコマンドを実行して，暗号鍵ファイルを作成します。

ssoimportコマンドで，1.で取り出した内容を登録します。

ssoexportコマンドについては，「ssoexport（シングルサインオン情報リポジトリの参照）」を参照してください。ssogenkeyコマンドについては，「ssogenkey（暗号鍵ファイルの作成）」を参照してください。ssoimportコマンドについては，「ssoimport（シングルサインオン情報リポジトリの登録）」を参照してください。

5.18　ユーザ情報の登録（シングルサインオンを使用する場合）

この節では，LDAPディレクトリサーバへのシングルサインオン用のユーザ情報の登録方法と，登録するユーザ情報の文法について説明します。

なお，Application Serverでは，LDAPディレクトリサーバに格納するシングルサインオン用のユーザ管理リポジトリの標準的なDIT構造を規定しています。リポジトリの構造については，「5.2.4　統合ユーザ管理で使用するユーザ情報の管理方法」を参照してください。

シングルサインオン用のユーザ情報をシングルサインオン情報リポジトリに登録する方法には，次の2種類があります。

コマンドによる登録

統合ユーザ管理フレームワークのライブラリによる登録

それぞれの登録方法について説明します。また，登録するユーザ情報の文法についても説明します。

5.18.1　コマンドによる登録

シングルサインオン用のユーザ情報をCSV形式ファイルで作成して，Application Serverが提供するssoimportコマンドを使用してシングルサインオン情報リポジトリに登録します。

ssoimportコマンドについては，「ssoimport（シングルサインオン情報リポジトリの登録）」を参照してください。CSV形式ファイルについては，「14.3　シングルサインオン用認証情報のCSV形式ファイル」を参照してください。

5.18.2　統合ユーザ管理フレームワークのライブラリによる登録

シングルサインオンライブラリが提供するAPIを使用してアプリケーションを作成し，そのアプリケーションを使用してユーザ情報を登録します。

APIを利用するアプリケーションは，最初にLdapSSODataManagerオブジェクトを生成します。このクラスのコンストラクタにはレルム名を指定します。なお，LdapSSODataManagerオブジェクトは定義ごとに一つ生成するようにしてください。

シングルサインオン情報リポジトリの内容をAPIで更新した場合に，それを通知するシングルサインオン用認証情報リスナクラスを実装すれば，シングルサインオン情報リポジトリの更新に同期して接続先システムのリポジトリの更新もできます。

ユーザ認証の実装については，「5.10　APIを使用したユーザ認証の実装」を参照してください。また，統合ユーザ管理フレームワークで使用するAPIについては，「15.　統合ユーザ管理フレームワークで使用するAPI」を参照してください。

5.18.3　登録するユーザ情報の文法

シングルサインオン用のユーザ情報は，次の表に示す文法に従って登録してください。

表5‒15　シングルサインオン用のユーザ情報の文法

情報の種類

意味

文法

レルム名

ユーザ管理の範囲を示す識別子です。

英数字列。

大文字と小文字を区別しません。

DN名で使用できる名前を付けてください。

ユーザID

ユーザ管理機能を持つアプリケーションの使用者を表すユーザの識別子です。

英数字列。

長さは1〜512（単位：文字）。

SecretData

ユーザ管理機能を持つアプリケーションのユーザIDに対応したパスワードなどの暗号化が必要な認証情報のことです。ユーザを認証するために使用する値を指定します。ここに指定された値は，暗号化されて保存されます。

英数字列および特殊文字。

長さは0〜512（単位：文字）。

PublicData

ユーザ管理機能を持つアプリケーションが，ユーザの認証を行う際に，ユーザIDおよびSecretData以外で必要な認証情報のことです。ここに指定された値は，暗号化されません。

英数字列および特殊文字。

長さは0〜512（単位：文字）。

注1　英数字列は，英字（A〜Z，a〜z）と数字（0〜9）の文字の並びを意味します。

注2　特殊文字は，次の記号を意味します。

（空白）｜!｜"｜#｜$｜%｜&｜'｜(｜)｜*｜+｜,｜-｜.｜/｜:｜;｜<｜=｜>｜?｜@｜[｜¥｜]｜^｜_（アンダースコア）｜`｜{｜}｜|（垂直バー）｜~

注3　「文法」欄で明記されていない場合は，英字の大文字と小文字の区別をします。

注4　ASCII文字列で指定してください。文法については，プログラムではチェックしていません。

5.19　コンフィグレーションファイルの作成

この節では，次の二つのコンフィグレーションファイルの作成，およびコンフィグレーションファイルの設定例を説明します。

jaas.conf（JAASのコンフィグレーションファイル）

ua.conf（統合ユーザ管理のコンフィグレーションファイル）

5.19.1　jaas.confの作成

jaas.confには，ユーザ認証ライブラリまたはシングルサインオンライブラリが使用する情報として，アプリケーション単位に，使用するログインモジュール名，ua.confで指定したリポジトリ（LDAPディレクトリサーバまたはRDB）の設定番号などを指定します。

(1)　格納場所

jaas.confの格納場所を次に示します。

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥config¥jaas.conf

UNIXの場合

/opt/Cosminexus/manager/config/jaas.conf

このjaas.confを上書きするか，任意の場所にコピーして使用してください。jaas.confの格納場所は，JavaVM起動時のプロパティで指定してください。JavaVM起動時のプロパティの指定については，「5.20　JavaVMのプロパティの設定」を参照してください。

また，Component Container管理者がファイルを参照できるようにjaas.confのアクセス権を変更してください。Component Container管理者の設定については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.4　Component Container管理者を設定するときの注意事項（UNIXの場合）」を参照してください。

(2)　指定内容

アプリケーション単位に次の情報を指定してください。

ユーザ認証ライブラリを使用してユーザ認証する場合

定義するログインモジュールはWebPasswordLoginModuleにしてください。このWebPasswordLoginModuleのオプションには，ua.confで定義しているリポジトリで定義したLDAP設定番号とレルム名を定義します。

WebPasswordLoginModuleとカスタムログインモジュールの連携をする場合，ログインモジュールの定義はDelegationLoginModuleにしてください。このDelegationLoginModuleのオプションに呼び出すカスタムログインモジュール名を定義します。

シングルサインオンライブラリを使用してユーザ認証する場合

定義するログインモジュールはWebSSOLoginModuleにしてください。このWebSSOLoginModuleのオプションには，ua.confで定義しているカスタムログインモジュールの識別子とレルム名を定義します。

なお，LDAPディレクトリサーバとしてActive Directoryを使用する場合のjaas.confの設定については，「5.16.4　Active Directoryを使用する場合の設定」を参照してください。

jaas.confについては，「14.2.1　jaas.conf（JAASのコンフィグレーションファイル）」を参照してください。

(3)　jaas.confの再読み込み

Management Serverの運用管理コマンドであるmngsvrutilコマンドを使用すると，J2EEサーバを再起動しないで，jaas.confの再読み込みができます。J2EEサーバを再起動しないで，ログインモジュールで使用するLDAP設定番号を変更したい場合などに利用します。

なお，mngsvrutilコマンドを使用するためには，Management Serverが起動されていて，適切に設定済みである必要があります。

jaas.confの再読み込みの流れを次の図に示します。

図5‒25　jaas.confの再読み込みの流れ

mngsvrutilコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngsvrutil（Management Serverの運用管理コマンド）」を参照してください。

5.19.2　ua.confの作成

ua.confには，ユーザ認証ライブラリまたはシングルサインオンライブラリが使用する情報として，リポジトリ（LDAPディレクトリサーバまたはRDB）へのアクセス情報，シングルサインオン用のユーザ情報を暗号化または復号化するための暗号鍵ファイルのパスなどを指定します。

(1)　格納場所

ua.confの格納場所を次に示します。

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥config¥ua.conf

UNIXの場合

/opt/Cosminexus/manager/config/ua.conf

このua.confを上書きするか，任意の場所にコピーして使用してください。ua.confの格納場所は，JavaVM起動時のプロパティで指定します。JavaVM起動時のプロパティの指定については，「5.20　JavaVMのプロパティの設定」を参照してください。

また，Component Container管理者がファイルを参照できるようにua.confのアクセス権を変更してください。Component Container管理者の設定については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.4　Component Container管理者を設定するときの注意事項（UNIXの場合）」を参照してください。

(2)　指定内容

ユーザ認証ライブラリの機能を使用したユーザ認証およびシングルサインオンライブラリの機能を使用したシングルサインオンをするために，LDAPディレクトリサーバのURLやベースDN，アクセス権を設定してください。

シングルサインオンライブラリの機能を使用してシングルサインオンをする場合には，暗号化するための製品の選択，および暗号鍵ファイル名の指定をしてください。また，シングルサインオンの機能から呼び出すログインモジュールがカスタムログインモジュールの場合，カスタムログインモジュール名，およびカスタムログインモジュールと関連するクラスのクラスファイルを格納しているディレクトリを定義してください。

なお，LDAPディレクトリサーバとしてActive Directoryを使用する場合のua.confの設定については，「5.16.4　Active Directoryを使用する場合の設定」を参照してください。

ua.confの詳細については，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

(3)　パスワードの変更とスクランブル化

ua.confに指定したLDAPディレクトリサーバやRDBに接続するためのパスワードを変更したい場合には，ua.confを編集するほかに，uachpwコマンドを使用して変更できます。uachpwコマンドを使用してLDAPディレクトリサーバやRDBに接続するためのパスワードを変更する場合に，-scrambleオプションを指定すると，パスワードのスクランブル化もできます。

なお，uachpwコマンドでパスワードをスクランブル化する場合には，必ず簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内にcom.cosminexus.admin.auth.passwordScramble.enableキーを指定して，スクランブル化されたパスワードの復号化機能を有効にしておいてください。

参考

運用管理ポータルで構築したシステムの場合の説明については，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「3.5　統合ユーザ管理の設定手順」を参照してください。

(4)　ua.confの再読み込み

ua.confの設定を再読み込みさせるには，J2EEサーバを再起動してください。

5.19.3　コンフィグレーションファイルの設定例

ここでは，次の図に示すディレクトリ構成を持つユーザ情報の設定例を示します。

図5‒26　ユーザ情報のディレクトリ構成の例

(1)　jaas.confの設定例

jaas.confには，ユーザを認証するための情報を設定します。使用するログインモジュール名，ua.confで指定したリポジトリ（LDAPディレクトリサーバまたはRDB）の設定番号などを指定します。jaas.confの設定例を次の図に示します。

図5‒27　jaas.confの設定例

(2)　属性の一覧の設定例

属性の一覧には，そのユーザで認証が成功した際に取得するユーザの情報（属性名）と参照に使用する別名（Alias）を指定します。属性の一覧の設定例（c:¥RealmA¥config¥AliasFile.csv（Windowsの場合），または/tmp/RealmA/config/AliasFile.csv（UNIXの場合））を次の図に示します。

図5‒28　属性の一覧の設定例

なお，ファイルを作成しなくても，プログラム中で直接AttributeEntryクラスを使用して指定することもできます。

(3)　ua.confの設定例

ua.confには，リポジトリ（LDAPディレクトリサーバまたはRDB）へのアクセス情報などを設定します。ua.confの設定例を次の図に示します。

図5‒29　ua.confの設定例（Windowsの場合）

図5‒30　ua.confの設定例（UNIXの場合）

認証用プログラムのコーディング例を次の図に示します。

図5‒31　認証用プログラムのコーディング例（Windowsの場合）

図5‒32　認証用プログラムのコーディング例（UNIXの場合）

(4)　シングルサインオンへの対応例（標準ログインモジュールの場合）

ユーザ認証ライブラリのログインモジュールをシングルサインオンに対応させるには，jaas.confを変更する必要があります。シングルサインオンへの対応例（標準ログインモジュールの場合）を次の図に示します。

図5‒33　シングルサインオンへの対応例（標準ログインモジュールの場合）

(5)　シングルサインオンへの対応例（カスタムログインモジュールの場合）

カスタムログインモジュールをシングルサインオンに対応させるには，jaas.conf，および認証用プログラムのコーディングを変更する必要があります。また，あらかじめ，ua.confに，ログインモジュールの識別子（対応例では「Krb5」）に対応するカスタムログインモジュールの定義項目を定義しておく必要があります。シングルサインオンへの対応例（カスタムログインモジュールの場合）を次の図に示します。

図5‒34　シングルサインオンへの対応例（カスタムログインモジュールの場合）

5.20　JavaVMのプロパティの設定

統合ユーザ管理機能を使用する場合は，JavaVMの起動時にJavaVMプロパティの設定が必要です。この設定には簡易構築定義ファイルまたは運用管理ポータルを使用します。この節では，SmartComposer機能を使用してWebシステムを構築する場合の簡易構築定義ファイルでの設定方法について説明します。運用管理ポータルでの設定方法については，マニュアル「アプリケーションサーバ運用管理ポータル操作ガイド」の「3.5　統合ユーザ管理の設定手順」を参照してください。

JavaVMのプロパティは簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内に設定します。

JavaVMのプロパティ内容を，次の表に示します。

表5‒16　簡易構築定義ファイルでのJavaVMのプロパティの設定

指定するパラメタ

設定項目

jaas.ua.enabled

JavaVMのJAASを有効に設定します。

java.security.auth.login.config

jaas.confのファイルパスを指定します。

com.cosminexus.admin.auth.config

ua.confのファイルパスを指定します。

com.cosminexus.admin.auth.passwordScramble.enable

uachpwコマンドでスクランブル化したパスワードの復号化機能の有効または無効を指定します。

詳細については，「5.19.2(3)　パスワードの変更とスクランブル化」を参照してください。

jaas.config.load_exclusively

java.security.auth.login.configパラメタで指定したjaas.conf以外のログイン構成は無視するかどうかを指定します。

簡易構築定義ファイルについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.3　簡易構築定義ファイル」を参照してください。

JavaVMのプロパティ設定例を次に示します。

この例では，パスワードのスクランブル化を有効にし，jaas.conf以外のログイン構成を無視するように設定をしています。

簡易構築定義ファイルの設定例

：
<configuration>
  <logical-server-type>j2ee-server</logical-server-type>
    <param>
      <param-name>jaas.ua.enabled</param-name>
      <param-value>true</param-value>
    </param>
    <param>
      <param-name>java.security.auth.login.config</param-name>
      <param-value><Application Serverのインストールディレクトリ>/manager/config/jaas.conf</param-value>
    </param>
    <param>
      <param-name>com.cosminexus.admin.auth.config</param-name>
      <param-value><Application Serverのインストールディレクトリ>/manager/config/ua.conf</param-value>
    </param>
    <param>
      <param-name>com.cosminexus.admin.auth.passwordScramble.enable</param-name>
      <param-value>true</param-value>
    </param>
    <param>
      <param-name>jaas.config.load_exclusively</param-name>
      <param-value>true</param-value>
    </param>
：
</configuration>

参考

WebアプリケーションでLoginContextクラスを操作するためのアクセス権を変更したい場合は，server.policyの設定を変更してください。

server.policyについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.4　server.policy（J2EEサーバ用セキュリティポリシーファイル）」を参照してください。

5.21　ファイルのデプロイ

この節では，統合ユーザ管理で使用するEARファイルをデプロイ方法について説明します。使用するJ2EEサーバに統合ユーザ管理用のuastartup.earをインポートし，uastartup.earを起動しておいてください。uastartup.earは，次に示すディレクトリにインストールされています。

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥config

UNIXの場合

/opt/Cosminexus/manager/config

uastartup.earは，Management Serverに登録して，J2EEサーバにインポートしてください。J2EEアプリケーションのインポートについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「18.5　J2EEアプリケーションのデプロイとアンデプロイ」を参照してください。

統合ユーザ管理フレームワークの機能を使用する場合は，uastartup.earを必ず稼働させてください。

6　アプリケーションの設定による認証

この章では，EJBコンテナやWebコンテナが提供するWebアプリケーションによる認証について説明します。

6.1　この章の構成

この章では，EJBコンテナやWebコンテナが提供するWebアプリケーションによる認証について説明します。

この章の構成を次の表に示します。

表6‒1　この章の構成（アプリケーションの設定による認証）

タイトル

参照先

DDの設定によるWebコンテナのユーザ認証

6.2

セキュリティアイデンティティを使用した認証

6.3

6.2　DDの設定によるWebコンテナのユーザ認証

Webコンテナは，ロールという仕組みに基づいて認証処理をします。ロールとは，ユーザを管理するための単位で，各ユーザに一つ以上設定されます。ロールは，J2EEアプリケーションに含まれるDD（WEB-INF/web.xml）内の<security-constraint>タグに設定します。J2EEアプリケーションの設定については，「6.2.2　DDでの定義」を参照してください。

一方，Webアプリケーションではコンテキスト内の特定のURLごとに，そのURLへアクセスするのに必要なロールを定義できます。認証処理は，Webクライアントが制限されたURLへリクエストをする場合に，次に示す二つの段階を踏みます。

認証によるリクエストが正当なユーザによるものであるかの判定

ユーザに設定されたロールと，アクセスするのに必要なロールが一致するかの判定

両方の判定で正当と認められたユーザだけが，制限されたURLへアクセスできます。

この節の構成を次の表に示します。

表6‒2　この節の構成（DDの設定によるWebコンテナのユーザ認証）

分類

タイトル

参照先

解説

DDの設定によるWebコンテナのユーザ認証の機能

6.2.1

実装

DDでの定義

6.2.2

設定

実行環境での設定（J2EEアプリケーションの設定）

6.2.3

注意事項

認証機能を併用するときの注意

6.2.4

注　「運用」について，この節での説明はありません。

6.2.1　DDの設定によるWebコンテナのユーザ認証の機能

ここでは，DD（WEB-INF/web.xml）の設定によるWebコンテナのユーザ認証で実現できる機能について説明します。

(1)　ユーザ情報の管理

Webコンテナでは，各ユーザのユーザ名，パスワード，および所属するロールを，J2EEサーバ付属のユーザ管理機能によって定義し，保持・管理します。

(2)　コンテナセキュリティとアクセス権管理

Webコンテナでは，Webクライアントから特定のURLへのアクセスを制限できます。

特定のURLへのアクセスを制限するには，DD（WEB-INF/web.xml）に次に示す情報を記述します。

アクセスの制限対象となるURLパターン

アクセスするのに必要なロールなどのセキュリティ定義情報

ユーザに定義されたロールを取得するための認証方式

Webクライアントが認証に失敗した場合，またはユーザがアクセスするのに必要なロールを持たない場合には，アクセス制限対象となっているURLパターンへのアクセスはエラーになります。なお，認証に成功したクライアントは，セッションの有効期間内には再度認証の対象になることはありません。

セキュリティ定義情報，および認証方式を定義する方法は，Servlet API 2.3で規定されているDD（WEB-INF/web.xml）の仕様に従います。

なお，Webコンテナでの認証方式は，Basic認証とForm認証とがあります。これらは，J2EEアプリケーションに含まれるDD（WEB-INF/web.xml）に<login-config>タグを追加することで定義できます。J2EEアプリケーションの設定については，「6.2.2　DDでの定義」を参照してください。

注意事項

WebサーバにHTTP ServerまたはMicrosoft IISを使用する場合

WebコンテナによるBasic認証を正しく動作させるには，Webサーバ認証機能を解除しておく必要があります。

詳細については，「6.2.4　認証機能を併用するときの注意」を参照してください。

web.xmlでBasic認証を設定する場合

<realm-name>タグでレルム名を指定してください。省略した場合，レルム名として「Authentication required」が使用されます。なお，<realm-name>タグに空文字列，または空白だけを指定した場合も<realm-name>タグを省略した場合と同じ扱いになります。

(3)　プログラムセキュリティ

DD（WEB-INF/web.xml）によってBasic，またはForm認証によるアクセス制限が設定されたサーブレット，JSPでは，HttpServletRequestの次に示すAPIを使用することで，ログインしたユーザのユーザ名やロール名などに応じて処理を切り替えるなど，プログラムレベルでのより細かいセキュリティ処理を行えます。

getRemoteUser()

isUserInRole()

getUserPrincipal()

これらのAPIの詳細については，Java Servlet Specification v2.3を参照してください。

6.2.2　DDでの定義

Webコンテナのユーザ認証の設定は，web.xmlに指定します。DDでの定義を次の表に示します。

表6‒3　DDの設定によるWebコンテナのユーザ認証の設定

指定するタグ

設定内容

<security-constraint>タグ

セキュリティ制約を指定します。

<login-config>−<auth-method>タグ

Webコンテナでの認証方法を指定します。

なお，web.xmlの設定は，J2EEサーバにデプロイする前のWebアプリケーションで実施します。J2EEサーバにデプロイ済みのWebアプリケーションに設定する場合は属性ファイルに設定します。属性ファイルでの設定については，「6.2.3　実行環境での設定（J2EEアプリケーションの設定）」を参照してください。

6.2.3　実行環境での設定（J2EEアプリケーションの設定）

実行環境でのWebコンテナのユーザ認証の設定は，サーバ管理コマンドおよび属性ファイルで実施します。DDの設定によるWebコンテナのユーザ認証の設定は，WAR属性ファイルを使用します。WAR属性ファイルでの定義を次の表に示します。

表6‒4　DDの設定によるWebコンテナのユーザ認証の設定（WAR属性ファイル）

指定するタグ

設定内容

<security-constraint>タグ

セキュリティ制約を指定します。

<login-config>−<auth-method>タグ

Webコンテナでの認証方法を指定します。

なお，WAR属性ファイルの設定は，J2EEサーバにデプロイ済みのWebアプリケーションに設定する場合に設定します。J2EEサーバにデプロイする前のWebアプリケーションで設定する場合は，web.xmlで設定します。web.xmlでの設定については，「6.2.2　DDでの定義」を参照してください。

6.2.4　認証機能を併用するときの注意

ここでは，Webコンテナの認証機能と，Webサーバの認証機能を併用するときの注意について説明します。

(1)　認証の順序

Webコンテナが提供する認証機能とWebサーバの認証機能を併用した場合，次の順序で認証が実施されます。

Webサーバでの認証

Webコンテナでの認証

なお，Webサーバの認証機能とは，Webサーバの基本認証，SSLのサーバ認証，SSLのクライアント認証を指します。Web認証機能の併用とは，Webコンテナが提供する認証機能を使用している場合に，Webサーバの基本認証，SSLのサーバ認証，SSLのクライアント認証のどれか一つ以上を使用していることを指します。

HTTP Serverのユーザ認証機能，およびアクセス制御機能については，マニュアル「HTTP Server」を参照してください。

(2)　Webサーバの基本認証とWebコンテナのBasic認証を併用するときの注意

Webサーバの基本認証とWebコンテナのBasic認証を併用した場合は，Webサーバで認証されたユーザ名とパスワードがWebコンテナに引き継がれます。このため，WebサーバとWebコンテナには，共通のユーザ情報を定義する必要があります。

なお，Webサーバの認証後，Webコンテナでの認証の状況によっては，Webコンテナの動作が異なります。Webコンテナでの動作について次に示します。

Webサーバで認証されたユーザが，Webコンテナで認証されない場合

Webコンテナにユーザ名・パスワード入力のダイアログが表示されるので，そこにWebサーバとWebコンテナ共通のユーザ名・パスワードを入力します。

Webサーバで認証されたユーザが，Webコンテナにアクセスするのに必要なロールを持っていない場合

アクセス制御対象となっているURLパターンへのアクセスはエラーとなります。

Webサーバで認証されたユーザが，Webコンテナにアクセスするのに必要なロールを持っている場合

ユーザ名・パスワードの入力ダイアログが表示されることなく，アクセス制限対象となっているURLパターンへアクセスできます。

(3)　WebサーバにMicrosoft IISを使用している場合の注意

Webコンテナの認証を使用する場合，Microsoft IISで提供する次の認証機能には制限があります。

ダイジェスト認証

Webコンテナでの認証機能の使用の有無にかかわらず，ダイジェスト認証は使用できません。Microsoft IISで，必ずダイジェスト認証の設定を解除してください。

統合Windows認証

WebコンテナのBasic認証を使用する場合は，統合Windows認証は使用できません。Microsoft IISで，統合Windows認証の設定を解除してください。

6.3　セキュリティアイデンティティを使用した認証

この節では，セキュリティアイデンティティを使用した認証について説明します。

この節の構成を次の表に示します。

表6‒5　この節の構成（セキュリティアイデンティティを使用した認証）

分類

タイトル

参照先

解説

セキュリティアイデンティティの機能

6.3.1

実装

EJBクライアントアプリケーションでのセキュリティの実装

6.3.2

設定

セキュリティアイデンティティを使用した認証の設定

6.3.3

注　「運用」および「注意事項」について，この節での説明はありません。

6.3.1　セキュリティアイデンティティの機能

セキュリティ管理機能を使用して，WebコンテナやEJBコンテナへのアクセス時のユーザ認証を実現できます。認証には，ユーザおよびパスワードを使用します。

セキュリティ管理機能での認証に成功した場合は，セキュリティアイデンティティという認証情報が作成され，WebコンテナやEJBコンテナに伝達されます。なお，認証に失敗した場合は例外が発生します。

認証処理でのセキュリティアイデンティティの流れを次の図に示します。

図6‒1　認証処理でのセキュリティアイデンティティの流れ

また，セキュリティ管理では，中間コンポーネントで指定したセキュリティアイデンティティを伝達するRun as機能も使用できます。

Run as機能とは，Enterprise Beanを呼び出す中間コンポーネントで，クライアントでログインしたセキュリティアイデンティティと異なるセキュリティアイデンティティを指定すると，指定したセキュリティアイデンティティでEnterprise Beanの呼び出しができる機能です。Run as機能について次の図に示します。

図6‒2　Run as機能

なお，アプリケーションサーバのセキュリティ管理機能では，コンポーネントへアクセスするときのメッセージを暗号化する機能，メッセージに署名を付ける機能，証明書による認証機能はサポートしていません。

6.3.2　EJBクライアントアプリケーションでのセキュリティの実装

EJBクライアントアプリケーションでは，J2EEサーバで定義されたユーザとパスワードを使用してユーザを認証できます。EJBクライアントアプリケーションからユーザを認証してログインすると，セキュリティロールが設定されたEnterprise Beanのメソッドを呼び出せます。

(1)　実装手順

EJBクライアントアプリケーションでのセキュリティは，Application Serverが提供するAPIを使用して実装します。ここでは，セキュリティを実装する場合の前提条件および実装方法を示します。APIの機能と文法については，マニュアル「アプリケーションサーバリファレンス API編」の「4.　EJBクライアントアプリケーションで使用するAPI」を参照してください。

セキュリティを実装する前に，次の前提条件を満たしているか確認してください。

J2EEサーバ側にユーザが登録されている必要があります。

登録されているユーザにセキュリティロールが設定されている必要があります。

EJBクライアントアプリケーションでセキュリティを実装する手順を次に示します。

セキュリティAPIのパッケージをインポートします。

セキュリティAPIを利用するために，次に示すパッケージをインポートします。

import com.hitachi.software.ejb.security.base.authentication.*

LoginInfoManagerのオブジェクトを取得します。

Enterprise Beanのメソッドを呼び出すプログラム上でLoginInfoManagerオブジェクトを取得します。取得にはLoginInfoManagerオブジェクトに用意されているスタティックメソッドのgetLoginInfoManagerメソッドを使用します。

LoginInfoManager  lm = LoginInfoManager.getLoginInfoManager();

ユーザ名とパスワードでログインします。

LoginInfoManagerオブジェクト取得後，loginメソッドを呼び出します。

lm.login(username, password);

Enterprise Beanのメソッドを呼び出します。

loginメソッド成功後，Enterprise Beanのメソッドを呼び出します。

ログアウトします。

Enterprise Beanのメソッド呼び出しが終了したあと，logoutメソッドでJ2EEサーバからログアウトします。

lm.logout();

注意事項

EJBクライアントアプリケーションでセキュリティを実装する場合，HiEJBClientStatic.jarをクラスパスに追加してコンパイルする必要があります。

(2)　サンプルプログラム

Enterprise Bean名がaccountの場合に，getAccountIDメソッドを呼び出すサンプルプログラムを次に示します。

import com.hitachi.software.ejb.security.base.authentication.*;
    :
  try {
    LoginInfoManager lm = LoginInfoManager.getLoginInfoManager();
    String userName = System.getProperty("username");
    String password = System.getProperty("password");
    if(lm.login(userName , password)) {
      try {
        System.out.println("user:" + userName + "login success");
        Context ctx = new InitialContext();
        java.lang.Object obj = ctx.lookup(appUnitPath + "Account");
        AccountHome aHome =
           (AccountHome)PortableRemoteObject.narrow(obj,AccountHome.class);
        Account account  = aHome.create();
        account.getAccountID();
      } finally {
        lm.logout();
      }
    }
  } catch(NotFoundServerException e) {
    System.out.println("not found server");
  } catch(InvalidUserNameException e) {
    System.out.println("invalid user name");
  } catch(InvalidPasswordException e) {
    System.out.println("invalid password");
  } catch(Exception e) {
    e.printStackTrace();
  }

6.3.3　セキュリティアイデンティティを使用した認証の設定

セキュリティアイデンティティを使用してセキュリティを管理する場合は，サーバ管理コマンドを使用して，ユーザおよびロールの情報を登録します。セキュリティアイデンティティを使用した認証およびRunAs機能を使用するためのJ2EEアプリケーションの設定を次の表に示します。

表6‒6　セキュリティアイデンティティを使用した認証およびRunAs機能を使用するためのJ2EEアプリケーションの設定

機能

項目

設定対象

設定内容

セキュリティアイデンティティを使用した認証

セキュリティアイデンティティを使用した認証をするかどうか

Session Bean，

Entity Bean，

Message-driven Bean

Session Bean属性ファイル，Entity Bean属性ファイル，MessageDrivenBean属性ファイルの<security-identity>タグに，認証するかどうかを指定します。

RunAs機能

RunAs機能を使用するかどうか

Session Bean属性ファイル，Entity Bean属性ファイル，MessageDrivenBean属性ファイルの<run-as>タグに，RunAs機能を使用するかどうかを指定します。

RunAs機能で使用するセキュリティロール名

Session Bean属性ファイル，Entity Bean属性ファイル，MessageDrivenBean属性ファイルの<role-name>タグに，セキュリティロール名を指定します。

RunAs機能で使用するプリンシパル名

Session Bean属性ファイル，Entity Bean属性ファイル，MessageDrivenBean属性ファイルの<user-name>タグに，プリンシパル名を指定します。

セキュリティアイデンティティの設定手順については，「9.5　セキュリティの定義（セキュリティアイデンティティ）」を参照してください。

7　SSL/TLS使用による認証情報とデータの暗号化

この章では，SSL/TLSを使用したWebサーバとWebクライアント間のデータの暗号化，および認証について説明します。

7.1　この章の構成

この章では，SSL/TLS使用によるデータの暗号化と認証の仕組み，および設定方法について説明します。

この章の構成を次の表に示します。

表7‒1　この章の構成（SSL/TLS使用による認証情報とデータの暗号化）

機能

参照先

SSL使用による認証情報とデータの暗号化

7.2

7.2　SSL使用による認証情報とデータの暗号化

SSLをサポートするWebサーバとの連携では，WebサーバとWebクライアント間のSSLによる暗号化が有効になります。

この節の構成を次の表に示します。

表7‒2　この節の構成（SSL使用による認証情報とデータの暗号化）

分類

タイトル

参照先

解説

Webサーバの認証機能

7.2.1

設定

HTTP ServerのSSLの設定

7.2.2

注　「運用」および「注意事項」について，この節での説明はありません。

7.2.1　Webサーバの認証機能

Webサーバの機能には，サーバ認証の機能とクライアント認証の機能があります。

サーバ認証

サーバ認証では，サーバにインストールされた鍵交換用の証書を用いて，ブラウザからサーバあてに共通鍵の基となる乱数情報を暗号化して送ります。

この暗号を解くための秘密鍵は，鍵交換用の証書の持ち主であるサーバだけが知っているので，クライアントから見て正当なサーバの場合だけ，ハンドシェイクが成立します。この過程では，サーバは電子署名をしませんが，ハンドシェイクの成立後にサーバが正当であるかどうかの見直しができます。

クライアント認証

クライアント認証では，サーバからブラウザに乱数データを送ってクライアントで電子署名を付与させて，ブラウザにインストールされた電子署名用の証書とともにサーバに送り返させます。

乱数データにブラウザが電子署名を付けて見せることで，ブラウザ自身が秘密鍵を保有していることをサーバに証明します。これによって，サーバ側では，クライアントが証明書に対応した秘密鍵を所有していることを確認できます。

なお，ここで説明するSSL関連の機能を使用する場合，あらかじめWebサーバであるHTTP ServerまたはMicrosoft IISにSSLの設定をしておく必要があります。HTTP ServerのSSLの設定方法については，次を参照してください。

HTTP Serverを使用する場合

「7.2.2　HTTP ServerのSSLの設定」を参照してください。

7.2.2　HTTP ServerのSSLの設定

HTTP Serverを使用してSSLによる認証やデータの暗号化をする場合，秘密鍵の作成，認証局（CA）が発行した証明書の取得，およびhttpsd.conf（HTTP Server定義ファイル）の設定が必要です。

また，クライアント認証をする場合，クライアント証明書と認証局（CA）の証明書の取得，およびhttpsd.conf（HTTP Server定義ファイル）の設定が必要です。

ここでは，HTTP ServerのSSLによる認証，暗号化の設定，およびクライアント認証の設定について説明します。なお，詳細については，マニュアル「HTTP Server」の「5.　SSLによる認証，暗号化」を参照してください。

8　APIによる直接接続を使用する負荷分散機の運用管理機能からの制御

アプリケーションサーバの運用管理機能から負荷分散機を制御できます。この章では，APIによる直接接続を使用する負荷分散機の設定，および運用管理機能から負荷分散機を制御する場合に必要な設定について説明します。

8.1　この章の構成

負荷分散機を使用すると，一つの仮想IPアドレスで複数のサーバを管理するロードバランシング機能によって，トラフィックを効率的に分散し，処理性能を向上できます。負荷分散機は，アプリケーションサーバの運用管理機能から制御できます。

この章では，APIによる直接接続の負荷分散機を運用管理機能から制御する場合の設定について説明します。

この章の構成を次の表に示します。

表8‒1　この章の構成（APIによる直接接続を使用する負荷分散機の運用管理機能からの制御）

分類

タイトル

参照先

解説

APIによる直接接続を使用する負荷分散機

8.2

運用管理機能が実行する負荷分散機のAPI

8.3

設定

負荷分散機の接続環境の設定

8.4

Management Server（Smart Composer機能）での負荷分散機の接続情報の設定

8.5

仮想サーバマネージャでの負荷分散機の接続情報の設定

8.6

注　「実装」，「運用」および「注意事項」について，この章での説明はありません。

8.2　APIによる直接接続を使用する負荷分散機

アプリケーションサーバで利用できる負荷分散機は，API（SOAPアーキテクチャまたはRESTアーキテクチャ）で直接接続します。この場合，事前に設定する必要があります。使用する接続方式ごとに使用できる負荷分散機を次に示します。

API（SOAPアーキテクチャ）による直接接続

BIG-IP v9

BIG-IP v10.1

BIG-IP v10.2

BIG-IP v11

API（RESTアーキテクチャ）による直接接続

AX2500

8.3　運用管理機能が実行する負荷分散機のAPI

運用管理機能が実行する負荷分散機のAPIについて説明します。

8.3.1　Management Server（Smart Composer機能）が実行する負荷分散機のAPI

Smart Composer機能が実行する負荷分散機のAPIについて説明します。

負荷分散機のAPIシーケンス図の例を次に示します。ここでは，cmx_build_system（Webシステムを構築する場合）で，cookieスイッチングを使用しています。

図8‒1　負荷分散機のAPIシーケンス図の例（cmx_build_system（Webシステムを構築する場合））

VirtualServerは，負荷分散機上で，リクエストの受け口となる仮想的なサーバを表すオブジェクトです。管理ユニットごとに一つ作成されます。ServiceGroupは，負荷分散機上のVirtualServerで受けたリクエストのサービス管理を行うオブジェクトです。VirtualServerごとに一つ作成されます。RealServerは，負荷分散機上で，VirtualServerで受けたリクエストの振り分け先となる実際のサーバを表すオブジェクトです。管理ユニットに属する仮想サーバの数だけ作成されます。

ACOSでcookieパーシステンスを使用したAPIで接続する場合は，事前にCookiePersistence（cookieパーシステンス）を作成する必要があります。CookiePersistenceでは，cookieによるセッションの維持期間を設定します。なお，使用済みのCookiePersistenceは必要に応じて削除してください。CookiePersistenceの作成，削除方法の詳細は，使用する負荷分散機のドキュメントを参照してください。

参考

VirtualServer，ServiceGroup，RealServerおよびCookiePersistenceの名称は，負荷分散機の製品によって異なります。

8.3.2　仮想サーバマネージャが実行する負荷分散機のAPI

仮想サーバマネージャが実行する負荷分散機のAPIについて説明します。

負荷分散機のAPIシーケンス図の例を次に示します。ここでは，vmiunit update（新規に構築する場合）で，cookieスイッチングを使用しています。

図8‒2　負荷分散機のAPIシーケンス図の例（vmiunit update（新規に構築する場合））

VirtualServerは，負荷分散機上で，リクエストの受け口となる仮想的なサーバを表すオブジェクトです。管理ユニットごとに一つ作成されます。ServiceGroupは，負荷分散機上のVirtualServerで受けたリクエストのサービス管理をするオブジェクトです。VirtualServerごとに一つ作成されます。RealServerは，負荷分散機上で，VirtualServerで受けたリクエストの振り分け先となる実際のサーバを表すオブジェクトです。管理ユニットに属する仮想サーバの数だけ作成されます。

ACOSでcookieパーシステンスを使用したAPIで接続する場合は，事前にCookiePersistence（cookieパーシステンス）を作成する必要があります。CookiePersistenceでは，cookieによるセッションの維持期間を設定します。なお，使用済みのCookiePersistenceは必要に応じて削除してください。CookiePersistenceの作成，削除方法の詳細は，使用する負荷分散機のドキュメントを参照してください。

参考

VirtualServer，ServiceGroup，RealServerおよびCookiePersistenceの名称は，負荷分散機の製品によって異なります。

8.4　負荷分散機の接続環境の設定

負荷分散機の接続方式としてAPIによる直接接続を使用する場合は，運用管理機能が稼働するホストで負荷分散機の接続環境を設定します。

8.4.1　アクセスリスト（ACL）の設定内容（ACOSの場合）

ACOSのバージョンが「2.4.3-P7」より前の場合は，運用管理サーバ（Management Server）または仮想サーバマネージャが稼働するサーバマシンで，アクセスリストを作成する必要があります。設定内容を次に示します。作成方法の詳細については，ACOSのドキュメントを参照してください。

ID：「1」

アクション：「許可」※

送信元アドレス：「複数」※

注※

負荷分散機に対して接続制限をする場合は，アクションおよび送信元アドレスに任意の値を設定してください。

注意事項

IDに「1」以外を設定してACLを作成した場合，API（RESTアーキテクチャ）を使用した直接接続が使用できません。

8.4.2　cookieパーシステンステンプレートの作成

cookieを利用してセッションを維持する場合，運用管理機能が稼働するホストでcookieパーシステンステンプレートを作成する必要があります。設定内容を次に示します。なお，作成方法の詳細は，負荷分散機のドキュメントを参照してください。

cookie名：「任意の値」

expire：「0」

expireに0を指定すると，現在のセッションだけが保持されます。

8.4.3　トラストストアの設定

APIによる直接接続を使用すると，負荷分散機とHTTPまたはHTTPSで通信します。HTTPS 通信をする場合には，信頼できる証明書を登録したトラストストアが必要になります。HTTPS通信をする場合は，次のファイルのプロパティでhttpsを指定または省略します。

Management Serverで負荷分散機を制御する場合

lb.propertiesのlb.API.protocol.<負荷分散機の管理IPアドレス>

仮想サーバマネージャで負荷分散機を制御する場合

<LB接続情報の識別名>.propertiesのlb.API.protocol

tierlb.propertiesのlb.API.protocol

HTTPS通信をする場合には，あらかじめ，次の作業を実施してトラストストアを設定しておいてください。

負荷分散機からSSLサーバ証明書を取得します。

取得方法の詳細は，負荷分散機のドキュメントを参照してください。

運用管理機能が稼働するホストでJDKのkeytoolコマンドを実行して，手順1で取得したSSLサーバ証明書をトラストストアに登録します。

JDKのkeytoolコマンドの実行例を次に示します。

<Application Serverのインストールディレクトリ>/jdk/bin/keytool -import -file loadbalancer.cer -alias loadbalancer -keystore C:¥work¥loadbalancer.keystore -storepass keystore_pass

JDKのkeytoolコマンドについては，JDKのドキュメントを参照してください。

注意事項

JDKのデフォルトのトラストストア（cacerts）以外に証明書を登録した場合は，lb.propertiesのjavax.net.ssl.trustStoreパラメタにSSLサーバ証明書の絶対パスを指定してください。デフォルトのトラストストア（cacerts）に登録した場合は指定する必要はありません。

BIG-IPの場合，デフォルトのトラストストア（cacerts）以外は設定できません。

JDKのデフォルトのトラストストア（cacerts）は，<Application Serverのインストールディレクトリ>/jdk/lib/security下にあります。パスワードの初期値は，「changeit」です。

8.4.4　hostsファイルの設定（BIG-IPの場合）

Management Serverまたは仮想サーバマネージャからBIG-IPを制御する場合，hostsファイルにBIG-IPのホスト名とIPアドレスを登録してください。ただし，BIG-IPへの接続方法にsshプロトコルを使用した直接接続を選択した場合は，hostsファイルへ登録する必要はありません。

8.5　Management Server（Smart Composer機能）での負荷分散機の接続情報の設定

Smart Composer機能で負荷分散機の接続情報を定義する場合，Management Serverが稼働するホストで，lb.properties（負荷分散機定義プロパティファイル）に接続情報を設定します。

ここでは，APIによる直接接続を使用する負荷分散機（BIG-IPおよびAX2500）を設定する場合の設定例を示します。

BIG-IP（BIG-IP v9，BIG-IP v10.1，BIG-IP v10.2，またはBIG-IP v11）の場合

lb.list=192.168.100.10

lb.connect_type.192.168.100.10=API
#lb.API.port.192.168.100.10=443
lb.API.user.192.168.100.10=user01
lb.API.passwd.192.168.100.10=user01pw
#lb.API.API.timeout.192.168.100.10=10

AX2500の場合

lb.list=192.168.10.100
lb.enable_passwd.192.168.10.100=adminpw

lb.connect_type.192.168.10.100=API
lb.API.user.192.168.10.100=user01
lb.API.passwd.192.168.10.100=user01pw
#lb.API.port.192.168.10.100=443
#lb.API.cookie_persistence_template.MyWebSystem.192.168.10.100=SC_COOKIE_TEMPNAME
#lb.API.API.timeout.192.168.10.100=10
javax.net.ssl.trustStore=C:¥¥work¥¥ACOS.keystore
javax.net.ssl.trustStorePassword=keystore_pass

lb.properties（負荷分散機定義プロパティファイル）については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.2.4　lb.properties（負荷分散機定義プロパティファイル）」を参照してください。

8.6　仮想サーバマネージャでの負荷分散機の接続情報の設定

管理ユニットの操作時に負荷分散機を利用する場合，使用する負荷分散機の種類，接続方式など，負荷分散機へのアクセスに必要な接続情報を仮想サーバマネージャまたは管理ユニットで定義できます。

8.6.1　負荷分散機の接続情報を仮想サーバマネージャで定義するための設定

仮想サーバマネージャで負荷分散機の接続情報を定義する場合，仮想化システム管理用サーバマシンで，<LB接続情報の識別名>.properties（負荷分散機接続設定プロパティファイル）に接続情報を設定します。ファイル名の<LB接続情報の識別名>は，先頭が半角英字から始まる半角英数字，アンダースコア（_）またはハイフン（-）で指定した31文字以内の文字列で指定します。

ここでは，APIによる直接接続を使用する負荷分散機（BIG-IP v9（lb_BIG-IPv9.properties）およびAX2500（lb_AX2500.properties））を設定する場合の設定例を示します。

BIG-IP v9（lb_BIG-IPv9.properties）の場合

lb.type=BIG-IPv9
lb.host=192.168.2.14
lb.protocol=API
lb.port=443
lb.user=user01
lb.password=user01pw
lb.timeout=10

AX2500（lb_AX2500.properties）の場合

lb.type=ACOS
lb.host=192.168.2.13
lb.protocol=API
lb.port=443
lb.user=user01
lb.password=user01pw
lb.persistence.cookie-insert.templatename=VMI_COOKIE_TEMPNAME
lb.timeout=10
javax.net.ssl.trustStore=C:¥¥work¥¥ACOS.keystore
javax.net.ssl.trustStorePassword=keystore_pass

ここで設定した負荷分散機の接続情報を使用する場合は，tier.properties（ティア別プロパティファイル）のlb.useキーに「<LB接続情報の識別名>」を指定します。設定例の場合，BIG-IP v9利用時は「lb_BIG-IPv9」，AX2500利用時は「lb_AX2500」と指定します。

8.6.2　負荷分散機の接続情報を管理ユニットで定義するための設定

管理ユニットで負荷分散機の接続情報を定義する場合，システム構築者は，管理ユニットで管理するティアごとに，tierlb.properties（負荷分散機接続設定プロパティファイル）で接続情報を設定します。

ここでは，APIによる直接接続を使用する負荷分散機（BIG-IP v9）を設定する場合の設定例を示します。

lb.type=BIG-IPv9
lb.host=192.168.2.14
lb.protocol=API
lb.port=443
lb.user=user01
lb.password=user01pw
lb.timeout=10

ここで設定した負荷分散機の接続情報を使用する場合は，tier.properties（ティア別プロパティファイル）のlb.useキーに「:unit:」を指定します。

第4編　設定操作

9　サーバ管理コマンドによるセキュリティロールとアプリケーションの操作

この章では，サーバ管理コマンドを使用したセキュリティロールの設定，およびJ2EEアプリケーションのセキュリティの設定方法について説明します。

9.1　この章の構成

この章では，サーバ管理コマンドを使用したセキュリティロールの設定，およびJ2EEアプリケーションのセキュリティの設定方法について説明します。

この章の構成を次の表に示します。

表9‒1　この章の構成（サーバ管理コマンドによるセキュリティロールとアプリケーションの操作）

分類

タイトル

参照先

設定

セキュリティロールの設定

9.2

セキュリティロールのリファレンス定義

9.3

セキュリティの定義（メソッドパーミッション）

9.4

セキュリティの定義（セキュリティアイデンティティ）

9.5

注　「解説」，「実装」，「運用」および「注意事項」について，この章での説明はありません。

9.2　セキュリティロールの設定

セキュリティロールを使用したユーザ管理をする場合に必要な設定です。

設定したユーザおよびロールの情報は，J2EEサーバごとに管理されます。

9.2.1　ユーザの設定

ユーザを設定します。

次に示すコマンドを実行して，J2EEサーバにユーザを登録します。

実行形式

cjaddsec ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -type user -name ＜ユーザ名＞ -password ＜パスワード＞

実行例

cjaddsec MyServer -type user -name aps_m -password tiger

cjaddsecコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjaddsec（ユーザとロールの追加）」を参照してください。

9.2.2　ロールの設定

ロールを設定して，ユーザと関連づけます。また，Enterprise BeanおよびサーブレットとJSPに参照するセキュリティロールを設定します。

(1)　ロールの登録

次に示すコマンドを実行して，J2EEサーバにロールを登録します。

実行形式

cjaddsec ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -type role -name ＜ロール名＞

実行例

cjaddsec MyServer -type role -name manage

cjaddsecコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjaddsec（ユーザとロールの追加）」を参照してください。

(2)　ロールにユーザを登録

次に示すコマンドを実行してロールにユーザを追加します。

実行形式

cjmapsec ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -role ＜ロール名＞ -user ＜ユーザ名＞ ［-user ＜ユーザ名＞］

実行例

cjmapsec MyServer -role manager -user aps_m

cjmapsecコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjmapsec（ユーザとロールのマッピング）」を参照してください。

(3)　Enterprise Beanへのセキュリティロールの設定

Enterprise Beanへのセキュリティロールの設定を定義します。

(a)　編集する属性ファイル

EJB-JAR属性ファイル

(b)　編集する属性ファイルの取得と属性の設定

属性ファイルの取得

次に示すコマンドを実行してEJB-JAR属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞ -c ＜EJB-JAR属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type ejb -resname adder -c C:¥home¥adder_ejb.xml

属性の設定

次に示すコマンドを実行して，EJB-JAR属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞ -c ＜EJB-JAR属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type ejb -resname adder -c C:¥home¥adder_ejb.xml

(c)　編集する属性設定項目

Enterprise Beanのセキュリティロール（<security-role>）の設定項目を次に示します。

項目

必須

対応するタグ名

説明

△

<description>

ロール名

○

<role-name>

セキュリティロール名

△

<linked-to>

（凡例）　○：必須　△：任意

プロパティの設定項目については，マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.3.1　EJB-JAR属性ファイルの指定内容」を参照してください。

(4)　サーブレットおよびJSPへのセキュリティロールの設定

サーブレットおよびJSPへのセキュリティロールの設定を定義します。

(a)　編集する属性ファイル

WAR属性ファイル

(b)　編集する属性ファイルの取得と属性の設定

属性ファイルの取得

次に示すコマンドを実行してWAR属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞ -c ＜WAR属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type war -resname adder -c C:¥home¥adder_war.xml

属性の設定

次に示すコマンドを実行して，WAR属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞ -c ＜WAR属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type war -resname adder -c C:¥home¥adder_war.xml

(c)　編集する属性設定項目

Webアプリケーション（サーブレットおよびJSP）のセキュリティロールのリファレンス（<security-role>）の設定項目を次に示します。

項目

必須

対応するタグ名

説明

△

<description>

ロール名

○

<role-name>

セキュリティロール名

△

<linked-to>

（凡例）　○：必須　△：任意

プロパティの設定項目については，マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.7.1　WAR属性ファイルの指定内容」を参照してください。

9.3　セキュリティロールのリファレンス定義

J2EEアプリケーションに含まれるEnterprise BeanおよびWARの，一つまたは複数のメソッドに対するセキュリティロールチェックの参照を定義します。このセキュリティチェックは，コンテナで提供されるセキュリティサービスとは別のものです。

9.3.1　Enterprise Beanのセキュリティロールリファレンスの定義

Enterprise Beanのセキュリティロールのリファレンスを定義します。

(1)　編集する属性ファイル

Enterprise Beanの種類に対応する属性ファイルを編集します。

Session Bean属性ファイル

Entity Bean属性ファイル

(2)　編集する属性ファイルの取得と属性の設定

属性ファイルの取得

次のコマンドを実行して，Enterprise Bean属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞ -c ＜Enterprise Beanの属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type ejb -resname adder/adder_eb -c C:¥home¥adder_ejb.xml

属性の設定

次のコマンドを実行して，Enterprise Bean属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞ -c ＜Enterprise Beanの属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type ejb -resname adder/adder_eb -c C:¥home¥adder_ejb.xml

(3)　編集する属性設定項目

Enterprise Beanのセキュリティロールリファレンス（<security-role-ref>）の設定項目を次に示します。

項目

必須

対応するタグ名

説明

△

<description>

セキュリティロール参照名

○

<role-name>

リンク先のセキュリティロール名※

△

<role-link>

（凡例）　○：必須　△：任意

注※　設定したロール名を指定します。ロール名の設定については，「9.2.2　ロールの設定」を参照してください。また，<role-link>を設定後，EJB-JAR属性ファイルの設定を行うと<role-link>の値がクリアされますので，再度，セキュリティロールリファレンスを設定してください。

プロパティの設定項目については，次の個所を参照してください。

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.4.1　Session Bean属性ファイルの指定内容」

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.5.1　Entity Bean属性ファイルの指定内容」

9.3.2　サーブレットとJSPのセキュリティロールリファレンスの定義

Webアプリケーション（サーブレットおよびJSP）のセキュリティロールのリファレンスを定義します。

(1)　編集する属性ファイル

サーブレット属性ファイル

(2)　編集する属性ファイルの取得と属性の設定

属性ファイルの取得

次に示すコマンドを実行してサーブレット属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞/＜サーブレットおよびJSPの表示名＞ -c ＜サーブレット属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type war -resname adder/adder_sv -c C:¥home¥adder_war.xml

属性の設定

次に示すコマンドを実行して，WAR属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞/＜サーブレットおよびJSPの表示名＞ -c ＜サーブレット属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type war -resname adder/adder_sv -c C:¥home¥adder_war.xml

(3)　編集する属性設定項目

Webアプリケーション（サーブレットおよびJSP）のセキュリティロールのリファレンス（<security-role-ref>）の設定項目を次に示します。

項目

必須

対応するタグ名

説明

△

<description>

セキュリティロール参照名

○

<role-name>

リンク先のセキュリティロール名※

△

<role-link>

（凡例）　○：必須　△：任意

注※　設定したロール名を指定します。ロール名の設定については，「9.2.2　ロールの設定」を参照してください。

プロパティの設定項目については，マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.9.1　サーブレット属性ファイルの指定内容」を参照してください。

9.4　セキュリティの定義（メソッドパーミッション）

9.4.1　Enterprise Beanのメソッドパーミッション

メソッドパーミッションの設定方法について説明します。メソッドパーミッションの定義では，セキュリティロールによるアクセス制御を定義します。すべてのユーザにアクセス権限を与えることや，どのユーザにもアクセス権限を与えないこともできます。

メソッドパーミッションを設定できるメソッドは次のとおりです。

Session Bean

ホームインタフェースのcreateメソッド

コンポーネントインタフェースのビジネスメソッド，removeメソッド

Entity Bean

ホームインタフェースのcreateメソッド，finderメソッド，homeメソッド

コンポーネントインタフェースのビジネスメソッド，removeメソッド

なお，次に示すメソッドにパーミッションを設定しても使用されません。これらのメソッドのアクセス権限チェックには，コンポーネントインタフェースのremoveメソッドに設定したメソッドパーミッションが使用されます。

javax.ejb.EJBHomeのremove(javax.ejb.Handle handle)メソッド

javax.ejb.EJBHomeのremove(Object primaryKey)メソッド

javax.ejb.EJBLocalHomeのremove(Object primaryKey)メソッド

注意事項

CTMを使用するアプリケーションで<Enable Scheduling>プロパティが指定されたStateless Session Beanでは，ホームインタフェースのcreateメソッドにセキュリティロールによるアクセス権限を設定しないでください。設定した場合，デプロイに失敗します。

(1)　編集する属性ファイル

次のEnterprise Beanの種類に対応する属性ファイルを編集します。

Session Bean属性ファイル

Entity Bean属性ファイル

(2)　編集する属性ファイルの取得と属性の設定

属性ファイルの取得

次に示すコマンドを実行してEnterprise Beanの属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞ -c ＜Enterprise Beanの属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type ejb -resname adder/adder-eb -c C:¥home¥adder_ejb.xml

属性の設定

次に示すコマンドを実行して，Enterprise Beanの属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞ -c ＜Enterprise Beanの属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type ejb -resname adder/adder-eb -c C:¥home¥adder_ejb.xml

(3)　編集する属性設定項目

セキュリティの定義（メソッドパーミッション）の設定項目（<method-permission>）を次に示します。

項目

必須

対応するタグ名

説明

△

<description>

ロール名

△※

<role-name>

メソッド認証有無

△※

<unchecked>

メソッドの説明

△

<method> - <description>

インタフェース種別

△

<method> - <intf>

メソッド名

△

<method> - <name>

（凡例）　△：任意

注　セキュリティの定義（メソッドパーミッション）の設定項目（<method-permission>）は，アノテーションで設定している場合，変更できません。

注※　セキュリティ管理をする場合，ロール名とメソッド認証有無は，次のように，どちらか一つ設定します。

セキュリティロールによるアクセス権限を設定する場合

ロール名（<role-name>）を指定します。

すべてのユーザにアクセス権限を与える場合

メソッド認証有無（<unchecked>）を指定します。

どのユーザにもアクセス権限を与えない場合は，<method-permission>で指定するのではなく，<exclude-list>の下の<method>にアクセス権を与えないメソッドの情報を指定します。

プロパティの設定項目については，次の個所を参照してください。

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.4.1　Session Bean属性ファイルの指定内容」

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.5.1　Entity Bean属性ファイルの指定内容」

9.5　セキュリティの定義（セキュリティアイデンティティ）

セキュリティアイデンティティの設定には，次の二つの場合があります。

Enterprise Beanが使用する実行時アイデンティティ情報を設定します。

サーブレットが使用する実行時アイデンティティ情報を設定します。

9.5.1　Enterprise Beanのセキュリティアイデンティティ

Enterprise Beanのセキュリティアイデンティティを定義します。

セキュリティアイデンティティとしては，「UseCallerIdentity」と「RunAs」の二つのタイプを設定できます。

UseCallerIdentity

メソッド実行時に呼び出し元セキュリティアイデンティティを使用し，動作します。

Enterprise Beanのホームインタフェースやコンポーネントインタフェースのメソッド実行時に，その実行スレッドに関連づけるセキュリティアイデンティティを設定します。

RunAs

Role nameで指定したロールのアイデンティティに従い，動作します。

(1)　編集する属性ファイル

次のEnterprise Beanの種類に対応する属性ファイルを編集します。

Session Bean属性ファイル

Entity Bean属性ファイル

Message-driven Bean属性ファイル

(2)　編集する属性ファイルの取得と属性の設定

属性ファイルの取得

次に示すコマンドを実行してEnterprise Beanの属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞-c ＜Enterprise Bean属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type ejb -resname addr/adder_eb -c C:¥home¥adder_ejb.xml

属性の設定

次に示すコマンドを実行して，Enterprise Beanの属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞ -c ＜Enterprise Bean属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type ejb -resname adder/adder_eb -c C:¥home¥adder_ejb.xml

(3)　編集する属性設定項目

Enterprise Beanのセキュリティの定義（セキュリティアイデンティティ）の設定項目（<security-identity>）を次に示します。

項目

必須

対応するタグ名

説明

△

<description>

セキュリティアイデンティティ設定有無

△※

<use-caller-identity>

ロールのアイデンティティの説明

△

<run-as> - <description>

セキュリティロールの名称

△※

<run-as> - <role-name>

セキュリティロールに設定された名称

△

<run-as> - <user-name>

（凡例）　△：任意

注※　セキュリティアイデンティティの設定をする場合，メソッド実行時に呼び出し元セキュリティアイデンティティを使用するかどうかで，次のように，どちらか一つ設定します。

メソッド実行時に呼び出し元セキュリティアイデンティティを使用する場合

セキュリティアイデンティティ設定有無（<use-caller-identity>）を設定します。

メソッド実行時に呼び出し元セキュリティアイデンティティを使用しない場合

ロールのアイデンティティ（<run-as>）情報を設定します。

Message-driven Beanの場合は，ロールのアイデンティティ（<run-as>）情報だけ設定できます。

プロパティの設定項目については，次の個所を参照してください。

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.4.1　Session Bean属性ファイルの指定内容」

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.5.1　Entity Bean属性ファイルの指定内容」

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.6.1　MessageDrivenBean属性ファイルの指定内容」

9.5.2　サーブレットとJSPのセキュリティアイデンティティ

サーブレットとJSPのセキュリティアイデンティティを定義します。

サーブレットがEJB呼び出し時に使用する実行時アイデンティティ情報を設定します。

(1)　編集する属性ファイル

サーブレット属性ファイル

(2)　編集する属性ファイルの取得と属性の設定

属性ファイルの取得

次に示すコマンドを実行してサーブレット属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞/＜サーブレットおよびJSPの表示名＞ -c ＜サーブレット属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type war -resname adder/adder_sv -c C:¥home¥adder_war.xml

属性の設定

次に示すコマンドを実行して，サーブレット属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞/＜サーブレットおよびJSPの表示名＞ -c ＜サーブレット属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type war -resname adder/adder_sv -c C:¥home¥adder_war.xml

(3)　編集する属性設定項目

Webアプリケーション（サーブレットおよびJSP）のセキュリティの定義（セキュリティアイデンティティ）の設定項目を次に示します。

項目

必須

対応するタグ名

ロールのアイデンティティの説明

△

<run-as> - <description>

セキュリティロールの名称

○

<run-as> - <role-name>

セキュリティロールに設定された名称

○

<run-as> - <user-name>

（凡例）　○：必須　△：任意

プロパティの設定項目については，マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.9.1　サーブレット属性ファイルの指定内容」を参照してください。

10　運用管理ポータルによる統合ユーザ管理の運用

この章では，Management Serverの運用管理ポータルを利用した統合ユーザ管理の運用手順について説明します。

なお，運用管理ポータルの画面の操作方法，操作規則，操作時の注意事項などについては，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.　Management Serverの画面と基本操作」を参照してください。

10.1　この章の構成

統合ユーザ管理を設定すれば，統合ユーザ管理で使用しているリソースを監視したり，統合ユーザ管理機能で使用するリポジトリにあるユーザ情報を編集したりできます。この章では，Management Serverの運用管理ポータルを利用した統合ユーザ管理での運用手順について説明します。

この章の構成を次の表に示します。

表10‒1　この章の構成（運用管理ポータルによる統合ユーザ管理の運用）

分類

タイトル

参照先

運用

統合ユーザ管理のリソースの監視

10.2

設定

リポジトリ管理によるユーザ情報の編集

10.3

注意事項

「リポジトリ管理」での注意事項

10.4

注　「解説」および「実装」について，この章での説明はありません。

10.2　統合ユーザ管理のリソースの監視

統合ユーザ管理を設定している場合は，統合ユーザ管理で使用しているリソースの状況や定義情報を確認できます。また，ログイン中のユーザのセッションを停止したり，接続プールの空き待ち監視数をリセットしたりする運用操作ができます。

10.2.1　統合ユーザ管理のリソース監視で確認できる項目

J2EEサーバで稼働している統合ユーザ管理のリソースについて，接続状況，稼働状況，および接続定義情報が確認できます。統合ユーザ管理のリソース監視で確認できる項目を次の表に示します。

表10‒2　統合ユーザ管理のリソース監視で確認できる項目

確認項目

説明

ログインセッションの監視

統合ユーザ管理のセッションの状態が参照できます。

セッションID

レルム名

ユーザID

ログイン時刻

また，指定した統合ユーザ管理のセッションを停止することもできます。

LDAP接続プールの監視

統合ユーザ管理が使用する，LDAP接続プール状態が参照できます。ユーザ情報リポジトリとしてLDAPディレクトリサーバを使用している場合に参照できます。

LDAP設定番号

接続先URL

接続プールの定義数（最大値／最小値）

接続プールの状態（接続数／利用数）

接続プールの空き待ち監視（測定開始時刻／空き待ち最大数）

JDBC接続プールの監視

統合ユーザ管理が使用する，JDBC接続プール状態が参照できます。ユーザ情報リポジトリとしてデータベース（RDB）を使用している場合に参照できます。

JDBC設定番号

接続先URL

接続プールの定義数（最大値／最小値）

接続プールの状態（接続数／利用数）

接続プールの空き待ち監視（測定開始時刻／空き待ち最大数）

障害情報の表示

リソース監視で発生した障害について，その詳細情報が参照できます。

統合ユーザ管理のリソースを監視する手順を次に示します。

運用管理ポータルにログインし，［運用管理ポータル］画面で「リソース監視」をクリックします。

監視したい項目のモニタをクリックします。

ログインセッションモニタ，LDAP接続モニタ，またはJDBC接続モニタが選択できます。

10.2.2　操作する画面（統合ユーザ管理のリソース監視）

統合ユーザ管理のリソース監視で操作できる内容と操作する画面を次の表に示します。

表10‒3　統合ユーザ管理のリソース監視で操作できる内容と操作する画面

操作内容

操作

画面の参照先

ログインセッションモニタの表示

○

12.3.1

統合ユーザ管理のセッションの停止

○

12.3.2

LDAP接続プールモニタの表示とリセット

○

12.4.1

12.4.2

LDAP接続の定義情報の表示

○

12.4.3

LDAP接続の障害情報の表示

○

12.4.4

JDBC接続プールモニタの表示とリセット

○

12.5.1

12.5.2

JDBC接続の定義情報の表示

○

12.5.3

JDBC接続の障害情報の表示

○

12.5.4

（凡例）

○：任意。運用で必要と判断される場合に操作します。

10.3　リポジトリ管理によるユーザ情報の編集

統合ユーザ管理機能では，ユーザ情報を格納するリポジトリとして，ユーザ情報リポジトリ，およびシングルサインオン情報リポジトリを使用します。運用管理ポータルでは，ユーザ情報リポジトリ，およびシングルサインオン情報リポジトリ内のユーザ情報を編集できます。リポジトリごとにユーザ情報の編集手順を説明します。

10.3.1　ユーザ情報リポジトリに対するユーザ情報の編集

運用管理ポータルでは，ユーザ情報リポジトリとして使用するLDAPディレクトリサーバに対して，次の操作ができます。

LDAPディレクトリサーバへの接続情報（バインド情報）の設定

レルムの作成，および削除

ユーザエントリのスキーマ定義

ユーザエントリの作成，検索，削除，および編集

リポジトリ管理での操作は，LDAPディレクトリサーバを使用していることが前提です。そのため，ユーザ管理を構築するために必要なスキーマ定義を含むLDAPディレクトリサーバの設定は事前に行っておいてください。

なお，LDAPディレクトリサーバとしてActive Directoryを使用して，ユーザの登録，ユーザ情報の更新，およびリポジトリ情報のパスワードの変更をする場合の方法については，「(2)　Active Directoryを使用する場合」を参照してください。

(1)　Active Directoryを使用しない場合

運用管理ポータルの「リポジトリ管理」を使用して，ユーザ情報リポジトリへユーザ情報を作成，検索，削除または編集するための手順を次に示します。

運用管理ポータルにログインし，［運用管理ポータル］画面で「リポジトリ管理」をクリックします。

バインド情報を設定します。

リポジトリ管理の［バインド情報の設定］画面で，LDAPディレクトリサーバへ接続するための情報を設定します。

レルムを作成します。

レルム管理の［レルムの作成］画面で，LDAPディレクトリサーバにレルムを作成します。

ユーザエントリのスキーマを定義します。

レルム管理の［ユーザエントリのスキーマ定義］画面で，レルムで管理するユーザエントリの属性と，ユーザのパスワードを保存するときの暗号化形式を設定します。

ユーザエントリを作成，検索，削除または編集します。

レルム管理の次の画面で，レルムにユーザエントリを作成，検索，削除または編集します。ユーザエントリの削除および編集は，ユーザエントリを検索してから実施します。

［ユーザエントリの作成］画面

［ユーザエントリの検索］画面

［ユーザエントリの削除］画面

［ユーザエントリの編集］画面

(2)　Active Directoryを使用する場合

バインド情報の設定，ユーザエントリのスキーマ定義，ユーザエントリの作成については，「(1)　Active Directoryを使用しない場合」の手順を参照してください。

SSLを使用して接続するための証明書の登録，およびActive Directory固有の環境設定の方法を次に示します。

(a)　証明書の登録

Management ServerとActive Directory間の通信でSSLを使用するための証明書を登録します。証明書の登録方法を次に示します。

作成したデジタル証明書を，Active Directoryがインストールされているサーバ（LDAPサーバ）に登録します。

デジタル証明書の作成，登録方法については，Active Directoryのドキュメントを参照してください。

Management Serverに認証局（CA）の証明書を登録します。

認証局の証明書のManagement Serverへの登録は，Developer's Kit for Javaに付属するkeytoolを使用して実行できます。keytoolについては，Java 2 SDK, Standard Editionのドキュメントを参照してください。keytoolの実行例を次に示します。なお，表記の都合上，複数行にわたっていますが，実際は一行で記述します。

Windowsの場合

keytool -import -alias cakey -file C:¥temp¥cacer.cer -trustcacerts -keystore
"＜Application Serverのインストールディレクトリ＞¥jdk¥lib¥security¥cacerts"

UNIXの場合

/opt/Cosminexus/jdk/bin/keytool -import -alias cakey -file /tmp/cacer.cer -trustcacerts -keystore /opt/Cosminexus/jdk/lib/security/cacerts

なお，keytoolで証明書を登録する際にManagement Serverを起動していた場合は，Management Serverを再起動してください。

(b)　バインド情報の設定

リポジトリ管理の［バインド情報の設定］画面で必要な設定を次に示します。

「プロトコル」に「ldaps」を指定します。

「ポート」に「636」を指定します。

［Active Directoryに接続する。］チェックボックスをチェックします。

(c)　ユーザエントリのスキーマ定義

レルム管理の［ユーザエントリのスキーマ定義］画面で必要な設定を次に示します。

デフォルトのオブジェクトクラス「inetorgperson」は削除して，オブジェクトクラスに「user」を追加します。

［必須属性の設定］の「ユーザID」に「cn」，「パスワード」に「unicodePwd」を指定します。

［任意属性の設定］で次の二つの属性を追加します。

sAMAccountName

userAccountControl

注意事項

［必須属性の設定］の「パスワード」に「userPassword」を指定した場合，SSLを使用しないでパスワードを変更できますが，Active Directoryで管理するユーザのパスワードは変更できません。

［必須属性の設定］の「パスワード」に「unicodePwd」を指定した場合，「暗号化形式」の指定は無効になります。

Active Directoryでは，既存ユーザのオブジェクトクラスの変更はサポートしていません。［バインド情報の設定］画面で［Active Directoryに接続する。］チェックボックスにチェックして，［ユーザエントリのスキーマ定義］画面で新規にオブジェクトクラス「user」を追加したあとで，既存のユーザエントリを更新しても，ユーザエントリ作成時のオブジェクトクラスが適用されます。

「リポジトリ管理」の画面では，「ユーザID」に「sAMAccountName」を指定できません。

(d)　ユーザエントリの作成

レルム管理の［ユーザエントリの作成］画面で設定します。

一つのユーザエントリを作成するためには，次に示す二つの設定が必要です。

「属性名」で「sAMAccountName」を選択して，「属性値」にセキュリティアカウントマネージャ（SAM）のアカウント名を指定します。なお，通常，「属性値」にはユーザIDと同じ値を指定します。

「属性名」で「userAccountControl」を選択して，「属性値」にユーザアカウントのプロパティフラグを指定します。一般ユーザのユーザエントリを作成する場合は「512」を指定します。

注意事項

Active Directoryがインストールされているサーバのセキュリティポリシーで，パスワードの長さが1文字以上に設定されている場合，「userAccountControl」の「属性値」に「512」を指定すると，ユーザを作成できません。この場合，次のどちらかの対処をして，ユーザエントリを作成してください。

セキュリティポリシーのパスワードの長さを0文字以上に変更して，「userAccountControl」の「属性値」に「512」を指定する。

セキュリティポリシーのパスワードの長さの設定は変更しないで，「userAccountControl」の「属性値」に「544」を指定する。

10.3.2　シングルサインオン情報リポジトリに対するシングルサインオン用のユーザ情報の編集

運用管理ポータルでは，シングルサインオン情報リポジトリとして使用するLDAPディレクトリサーバに対して，次の操作ができます。

シングルサインオン用の暗号鍵ファイルの設定

シングルサインオン用のレルムの作成，および削除

シングルサインオン用のユーザエントリのスキーマ定義

シングルサインオン用のユーザエントリの作成，検索，削除，および編集

運用管理ポータルの「リポジトリ管理」を使用して，シングルサインオン情報リポジトリへシングルサインオン用のユーザ情報を作成，検索，削除または編集するための手順を次に示します。

暗号鍵ファイルを適用します（任意）。

レルム管理の［暗号鍵ファイルの設定］画面で，シングルサインオン用のユーザ情報を暗号化，復号化するための暗号鍵ファイルを適用します。なお，暗号鍵ファイルはあらかじめ作成し，システム管理者が安全な方法で統合ユーザ管理機能を使用するJ2EEサーバに配布しておいてください。

シングルサインオン用のレルムを作成します。

レルム管理の［レルムの作成］画面で，LDAPディレクトリサーバにレルムを作成します。

シングルサインオン用のユーザエントリのスキーマを定義します。

レルム管理の［ユーザエントリのスキーマ定義（シングルサインオン用）］画面で，レルムで管理するユーザエントリの属性と，ユーザのパスワードを保存するときの暗号化形式を設定します。

シングルサインオン用のユーザエントリを作成，検索，削除または編集します。

レルム管理の次の画面で，レルムにユーザエントリを作成，検索，削除または編集します。ユーザエントリの削除および編集は，ユーザエントリを検索してから実施します。

［ユーザエントリの作成（シングルサインオン用）］画面

［ユーザエントリの検索］画面

［ユーザエントリの削除］画面

［ユーザエントリの編集（シングルサインオン用）］画面

10.3.3　操作する画面（統合ユーザ管理のリポジトリ管理）

運用管理ポータルの「リポジトリ管理」で設定できる内容と操作する画面を次の表に示します。なお，シングルサインオンするかどうかによって，必要な操作が異なります。

表10‒4　統合ユーザ管理のリポジトリ管理で設定できる内容と操作する画面

設定内容

操作

画面の参照先

シングルサインオンする

シングルサインオンしない

バインド情報の設定

◎

◎

11.3.1

レルムの作成

◎

◎

11.4.1

レルムの削除

○

○

11.4.8

暗号鍵ファイルの設定

○

−

11.4.2

ユーザエントリのスキーマ定義

◎

◎

11.4.3

ユーザエントリの作成

◎

◎

11.4.5

ユーザエントリの検索

○

○

11.4.7

ユーザエントリの編集

○

○

11.4.9

ユーザエントリの削除

○

○

11.4.11

ユーザエントリのスキーマ定義（シングルサインオン用）

◎

−

11.4.4

ユーザエントリの作成（シングルサインオン用）

◎

−

11.4.6

ユーザエントリの編集（シングルサインオン用）

◎

−

11.4.10

（凡例）

◎：必要。最低限必要な操作です。

○：任意。運用で必要と判断される場合に操作します。

−：不要。必要な操作はありません。

10.4　「リポジトリ管理」での注意事項

リポジトリ管理での操作に関する注意事項を次に示します。

リポジトリ管理での設定は一つのWebブラウザで操作してください。複数のWebブラウザで同時に操作しないでください。

各画面の値を直接入力できる入力フィールドでは，一部（パスワード/SecretDataを入力するフィールド）を除いて指定した値の前後のスペースおよびタブは削除されます。

11　運用管理ポータルによるリポジトリ管理（統合ユーザ管理）

この章では，運用管理ポータルによるリポジトリ管理について説明します。リポジトリ管理は，統合ユーザ管理機能を使用する場合に必要な設定です。なお，注意事項については，「10.4　「リポジトリ管理」での注意事項」を参照してください。

なお，バッチアプリケーションを実行するシステムの場合，統合ユーザ管理機能は使用できません。

11.1　この章の構成

この章では，運用管理ポータルの「リポジトリ管理」に表示される画面の概要，操作手順および画面詳細について説明します。

この章の構成を次の表に示します。

表11‒1　この章の構成（運用管理ポータルによるリポジトリ管理）

分類

タイトル

参照先

解説

「リポジトリ管理」のツリーペインの構成

11.2

設定

リポジトリ管理

11.3

レルム管理

11.4

注　「実装」，「運用」および「注意事項」について，この章での説明はありません。

11.2　「リポジトリ管理」のツリーペインの構成

この節では，「リポジトリ管理」のツリーペインの構成について説明します。

「リポジトリ管理」のツリーペインの構成を次に示します。

　リポジトリ管理
　│
　└─レルム管理
　　　│
　　　├─＜レルム名＞
　　　│
　　　└─＜レルム名（シングルサインオンだけ）＞

表11‒2　「リポジトリ管理」のツリーペインに表示されるノードの意味

ノード名

説明

ノード上でできる操作と参照先

リポジトリ管理

統合ユーザ管理のリポジトリ管理のルートです。ディレクトリサーバとの接続の設定ができます。

バインド情報の設定（11.3.1参照）

レルム管理

レルムのツリーです。この配下に，同一の認証ポリシーを適用する単位となるレルムが表示されます。

統合ユーザ管理のリポジトリにレルムを追加したり，シングルサインオン用の設定をしたりできます。

レルムの作成（11.4.1参照）

暗号鍵ファイルの設定（11.4.2参照）

＜レルム名＞

レルム名です。選択したレルムおよびそのレルムが管理しているユーザエントリに関する操作ができます。

ユーザエントリのスキーマ定義（11.4.3参照）

ユーザエントリの作成（11.4.5参照）

ユーザエントリの検索（11.4.7参照）

レルムの削除（11.4.8参照）

ユーザエントリの編集（11.4.9参照）

ユーザエントリの削除（11.4.11参照）

＜レルム名（シングルサインオンだけ）＞

レルム名です。このレルムでは，ほかのシステムとシングルサインオンするために必要なシングルサインオン用情報リポジトリだけを管理しています。

選択したレルムおよびそのレルムが管理しているユーザエントリに関する操作ができます。

ユーザエントリのスキーマ定義（シングルサインオン用）（11.4.4参照）

ユーザエントリの作成（シングルサインオン用）（11.4.6参照）

ユーザエントリの検索（11.4.7参照）

レルムの削除（11.4.8参照）

ユーザエントリの編集（シングルサインオン用）（11.4.10参照）

ユーザエントリの削除（11.4.11参照）

11.3　リポジトリ管理

この節では，LDAPディレクトリサーバと接続するための設定で使用する次の画面の機能概要，表示手順，操作手順，画面詳細について説明します。

［バインド情報の設定］画面

11.3.1　バインド情報の設定

［バインド情報の設定］画面を次の図に示します。

図11‒1　［バインド情報の設定］画面

(1)　機能概要

LDAPディレクトリサーバと接続（バインド）するための情報を設定します。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［リポジトリ管理］をクリックします。

［バインド情報の設定］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［ホスト名］，［ポート］などを指定します。

［適用］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

プロトコル（必須）

LDAPディレクトリサーバに接続するときのプロトコルを指定します。

ホスト名（必須）

接続するLDAPディレクトリサーバのホスト名を指定します。

注意事項

LDAPディレクトリサーバとしてActive Directoryを使用してプロトコルにldapsを指定する場合は，Active DirectoryのドメインコントローラのFQDN（完全修飾ドメイン名）を指定してください。そのとき，hostsファイルなどでホスト名を解決できるようにする必要があります。

ポート（必須）

接続するLDAPディレクトリサーバのポート番号を指定します。

バインドDN（必須）

接続するLDAPディレクトリサーバのバインドDNを指定します。

パスワード（必須）

接続するLDAPディレクトリサーバのパスワードを指定します。画面では「*」で表示されます。

ベースDN（必須）

レルムを管理するベースDNを指定します。

Active Directoryに接続する。

LDAPディレクトリサーバとしてActive Directoryを使用する場合は，このチェックボックスをチェックしてください。Active Directory以外を使用する場合，チェックは不要です。

［適用］ボタン

指定した内容を設定します。

11.4　レルム管理

この節では，レルムの作成，ユーザエントリのスキーマ定義，ユーザエントリの作成，編集，削除などで使用する次の画面の機能概要，表示手順，操作手順，画面詳細について説明します。

［レルムの作成］画面

［暗号鍵ファイルの設定］画面

［ユーザエントリのスキーマ定義］画面

［ユーザエントリのスキーマ定義（シングルサインオン用）］画面

［ユーザエントリの作成］画面

［ユーザエントリの作成（シングルサインオン用）］画面

［ユーザエントリの検索］画面

［レルムの削除］画面

［ユーザエントリの編集］画面

［ユーザエントリの編集（シングルサインオン用）］画面

［ユーザエントリの削除］画面

11.4.1　レルムの作成

［レルムの作成］画面を次の図に示します。

図11‒2　［レルムの作成］画面

(1)　機能概要

LDAPディレクトリサーバにレルムを作成します。レルムとは，同一の認証ポリシーを適用する範囲のことです。

作成に成功すると，ツリーペインの［レルム管理］下にレルムが追加されます。追加されたレルムを確認するには，ツリーペインの［ツリーの初期化］アンカーをクリックするか，または［レルム管理］アイコンをダブルクリックします。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］をクリックします。

［レルムの作成］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［レルム名］などを指定します。

［作成］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

レルム総数

統合ユーザ管理が管理するユーザ情報リポジトリのレルムとシングルサインオン情報リポジトリのレルムを合わせた数が表示されます。

Single Sign-Onのみ使用する。

チェックすると，シングルサインオン情報リポジトリだけが操作できるレルムを作成します。

注意事項

［Single Sign-Onのみ使用する。］をチェックしてレルムを作成すると，作成したレルムではシングルサインオンを使用するための情報だけが管理できます。このレルムは，統合ユーザ管理以外でユーザ管理をしているアプリケーションと接続するためのユーザ情報を定義する場合に使用します。

［Single Sign-Onのみ使用する。］をチェックして作成したレルムでは，あとから統合ユーザ管理のユーザ管理をしようとしても追加できません。該当レルムの再作成が必要になります。そのため，将来統合ユーザ管理でユーザ管理をする予定がある場合は，［Single Sign-Onのみ使用する。］のチェックを外して作成することを推奨します。

レルム名（必須）

ユーザ情報リポジトリまたはシングルサインオン情報リポジトリに作成するレルム名を指定します。指定は必須です。

レルム名は，英数字で指定します。大文字と小文字は区別されません。DN名で使用できる名前を付けてください。また，「mappings」は予約語のため指定しないでください。

［作成］ボタン

指定した内容でレルムを作成します。

11.4.2　暗号鍵ファイルの設定

［暗号鍵ファイルの設定］画面を次の図に示します。

図11‒3　［暗号鍵ファイルの設定］画面

(1)　機能概要

シングルサインオン用認証情報の暗号化データ（SecretData）を暗号化するための暗号鍵ファイルを指定します。暗号鍵ファイルの設定は，シングルサインオン用認証情報を定義する場合だけ行います。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］をクリックします。

［暗号鍵ファイルの設定］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［暗号化形式］，［ファイル名］などを指定します。

［適用］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

暗号化形式

シングルサインオン用認証情報を暗号化する方法を指定します。

JCE：JCEを使用して暗号化します。

None：暗号化しません。

ファイル名（必須）

作成または適用する暗号鍵ファイルのファイル名を絶対パスで指定します。

（指定例）

Windowsの場合

C:¥APS¥config¥DESKeyfile.key

UNIXの場合

/opt/APS/config/DESKeyfile.key

指定したファイルがない場合は作成し，ある場合はそのファイルを適用します。なおUNIXの場合，作成される暗号鍵ファイルのパーミッションはManagement Server起動時のumaskの設定に依存します。このため，一般ユーザに暗号鍵ファイルを参照されないように，作成後に適切なパーミッションに変更するか，または適切なパーミッションが設定されたディレクトリに作成してください。

［適用］ボタン

指定した内容で暗号鍵ファイルを作成または適用します。

11.4.3　ユーザエントリのスキーマ定義

［ユーザエントリのスキーマ定義］画面を次の図に示します。

図11‒4　［ユーザエントリのスキーマ定義］画面

(1)　機能概要

レルムで管理するユーザエントリの属性と，ユーザのパスワードを保存するときの暗号化形式を設定します。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

［ユーザエントリのスキーマ定義］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［ユーザID］，［パスワード］などを指定します。

オブジェクトクラスや任意属性を追加する場合，［オブジェクトクラスの設定］や［任意属性の設定］に項目を指定したあとに［追加］ボタンをクリックします。

［更新］ボタンをクリックします。

［オブジェクトクラスの設定］や［任意属性の設定］で追加または削除した情報は，［更新］ボタンをクリックしないと有効になりません。必ず［更新］ボタンをクリックしてください。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

レルム名

レルム名が表示されます。

ベースDN

レルムのベースDNが表示されます。

オブジェクトクラスの設定

ユーザエントリに追加する属性のオブジェクトクラスの一覧が表示されます。デフォルトは「inetorgperson」です。「inetorgperson」には，属性「cn」と「sn」が必須属性として割り当てられています。必須属性または任意属性の属性名に「cn」または「sn」を指定しない場合は，ユーザIDが仮定されます。

オブジェクトクラスを追加する場合は，入力フィールドにオブジェクトクラス名を指定し，［追加］ボタンをクリックします。また，追加したオブジェクトクラスに必須属性として割り当てられている属性名を，必須属性または任意属性の属性名に指定してください。

オブジェクトクラスを削除する場合は，削除するオブジェクトクラスの［削除］ボタンをクリックします。

［追加］ボタン

［オブジェクトクラスの設定］で指定した内容を有効にします。

［削除］ボタン

［オブジェクトクラスの設定］に指定されている内容を削除します。

必須属性の設定

ユーザエントリに必ず追加する属性を指定します。

ユーザID（必須）

ユーザIDの属性名を指定します。デフォルトは「uid」です。パスワードおよび任意属性と同一の属性名は指定できません。

パスワード（必須）

パスワードの属性名を指定します。デフォルトは「userpassword」です。ユーザIDおよび任意属性と同一の属性名は指定できません。

暗号化形式

［必須属性の設定］のパスワードに設定した属性の暗号化の形式を指定します。

SHA-1：SHA-1形式で暗号化します。

SHA-224：SHA-224形式で暗号化します。

SHA-256：SHA-256形式で暗号化します。

SHA-384：SHA-384形式で暗号化します。

SHA-512：SHA-512形式で暗号化します。

MD5：MD5形式で暗号化します。

None：暗号化しません。

デフォルトは「SHA-1」です。

任意属性の設定

ユーザエントリに属性を追加する場合，追加する属性名と表示名を指定して［追加］ボタンをクリックします。属性名を指定して表示名を省略した場合，表示名には属性名が仮定されます。ユーザIDおよびパスワードと同一の属性名は指定できません。指定した属性を削除する場合は，削除する属性の［削除］ボタンをクリックします。

ここで設定した属性には，ユーザエントリの追加時に属性値を指定できます。ただし，リポジトリ管理ではサブコンテキストの属性は作成できません。また，バイナリを扱う属性も作成できません。

［更新］ボタン

指定した内容で定義します。

11.4.4　ユーザエントリのスキーマ定義（シングルサインオン用）

［ユーザエントリのスキーマ定義（シングルサインオン用）］画面を次の図に示します。

図11‒5　［ユーザエントリのスキーマ定義（シングルサインオン用）］画面

(1)　機能概要

ユーザエントリを追加または削除，および暗号化データ（SecretData）を変更した場合に，他システムと同期を取るためのリスナクラスを設定します。

注意事項

リポジトリ管理では，イベントリスナクラスのインスタンスを取得する際，デフォルトコンストラクタを呼び出します。そのため，リポジトリ管理で使用するイベントリスナクラスでは，オーバーライドされたコンストラクタで初期化処理などをしないでください。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

このとき，レルム作成時に［Single Sign-Onのみ使用する。］をチェックしたレルム名をクリックしてください。

［ユーザエントリのスキーマ定義］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［リスナクラス名］を指定して，［追加］ボタンをクリックします。

［更新］ボタンをクリックします。

［リスナクラスの登録］で追加または削除した情報は，［更新］ボタンをクリックしないと有効になりません。必ず［更新］ボタンをクリックしてください。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

レルム名

レルム名が表示されます。

ベースDN

レルムのベースDNが表示されます。

リスナクラスの登録

イベントリスナクラスのクラス名を完全限定名で指定し，［追加］ボタンをクリックします。イベントリスナクラスは複数登録できます。削除する場合は，削除するリスナクラスの［削除］ボタンをクリックします。

指定するイベントリスナクラスは，統合ユーザ管理フレームワークが提供するSSODataListenerインタフェースを実装し，次のディレクトリに格納しておいてください。

Windowsの場合

＜Application Serverのインストールディレクトリ＞¥manager¥containers¥m¥j2eeapps¥mngsvr¥WEB-INF¥classes

UNIXの場合

/opt/Cosminexus/manager/containers/m/j2eeapps/mngsvr/WEB-INF/classes

［更新］ボタン

指定した内容で定義します。

11.4.5　ユーザエントリの作成

［ユーザエントリの作成］画面を次の図に示します。

図11‒6　［ユーザエントリの作成］画面

(1)　機能概要

ツリーペインで選択されているレルムにユーザエントリを作成します。指定できる文字列および長さについては，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.5.3　「リポジトリ管理」での規則」を参照してください。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

［ユーザエントリの作成］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［ユーザID］，［パスワード］などを指定します。

属性値やユーザIDを指定する場合，項目を指定したあとに［追加］ボタンをクリックします。

［作成］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

ユーザID（必須）

ユーザIDを指定します。ユーザIDには，各レルムで一意な文字列を指定してください。指定は必須です。

パスワード

パスワードを指定します。画面では「*」で表示されます。

パスワード（再入力）

指定したパスワードを確認するために，パスワードを再度指定します。

属性名

「11.4.3　ユーザエントリのスキーマ定義」の［任意属性の設定］で定義した属性の表示名が表示されます。

属性値

属性名に対応する属性値を指定します。

属性値を追加する場合は，メニューから属性名を選択し，属性値を指定して［追加］ボタンをクリックします。一つの属性名に複数の属性値が設定できます。属性値を削除する場合は，削除する属性値の［削除］ボタンをクリックします。属性値を変更する場合は，該当属性を一度削除し，変更後の属性を追加してください。

［追加］ボタン

［属性名］および［属性値］で指定した内容を有効にします。

［削除］ボタン

［属性名］および［属性値］に指定されている内容を削除します。

Single Sign-Onを使用する。

このチェックボックスをチェックした場合，該当ユーザのシングルサインオンの情報が更新されます。チェックしない場合は，シングルサインオンの情報が指定されていても更新されません。

publicData

シングルサインオン用認証情報の非暗号化データを指定します。指定は任意です。

secretData

シングルサインオン用認証情報の暗号化データが「*」で表示されます。このフィールドは，自動的にパスワードと同期するため，指定はできません。

マッピング

シングルサインオンを使用する場合に，接続先のレルム名とユーザIDを指定します。選択できるレルムは，シングルサインオン情報リポジトリにある，統合ユーザ管理フレームワークが推奨するDIT構成に準拠したレルムです。指定は任意です。指定する場合は，接続先レルム名とユーザIDを指定して，［追加］ボタンをクリックします。削除する場合は，削除するユーザIDの［削除］ボタンをクリックします。

接続先レルム名

接続先のレルム名をメニューから選択します。

ユーザID

接続先のレルムのユーザIDを指定します。

［追加］ボタン

［接続先レルム名］および［ユーザID］で指定した内容を有効にします。

［削除］ボタン

［接続先レルム名］および［ユーザID］に指定されている内容を削除します。

［作成］ボタン

指定した内容でユーザエントリを作成します。

11.4.6　ユーザエントリの作成（シングルサインオン用）

［ユーザエントリの作成（シングルサインオン用）］画面を次の図に示します。

図11‒7　［ユーザエントリの作成（シングルサインオン用）］画面

(1)　機能概要

シングルサインオン情報リポジトリにユーザエントリを作成します。指定できる文字列および長さについては，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.5.3　「リポジトリ管理」での規則」を参照してください。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

このとき，レルム作成時に［Single Sign-Onのみ使用する。］をチェックしたレルム名をクリックしてください。

［ユーザエントリの作成］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［ユーザID］，［publicData］などを指定します。

マッピングを指定する場合，項目を指定したあとに［追加］ボタンをクリックします。

［作成］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

ユーザID（必須）

ユーザIDを指定します。ユーザIDには，各レルムで一意な文字列を指定してください。指定は必須です。

publicData

シングルサインオン用認証情報の非暗号化データを指定します。指定は任意です。

secretData

シングルサインオン用認証情報の暗号化データを指定します。画面では「*」で表示されます。

secretData（再入力）

secretDataに指定した内容を再度指定します。

マッピング

接続先のレルム名とユーザIDを指定します。選択できるレルムは，シングルサインオン情報リポジトリにある，統合ユーザ管理フレームワークが推奨するDIT構成に準拠したレルムです。指定は任意です。指定する場合は，接続先レルム名とユーザIDを指定して，［追加］ボタンをクリックします。削除する場合は，削除する情報の［削除］ボタンをクリックします。

接続先レルム名

接続先のレルム名をメニューから選択します。

ユーザID

接続先のレルムのユーザIDを指定します。

［追加］ボタン

［接続先レルム名］および［ユーザID］で指定した内容を有効にします。

［削除］ボタン

［接続先レルム名］および［ユーザID］に指定されている内容を削除します。

［作成］ボタン

指定した内容でユーザエントリを作成します。

11.4.7　ユーザエントリの検索

［ユーザエントリの検索］画面を次の図に示します。

図11‒8　［ユーザエントリの検索］画面

(1)　機能概要

ユーザエントリを検索します。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

［ユーザエントリの検索］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［検索条件］を指定します。

［検索］ボタンをクリックします。

検索結果が［ユーザエントリの検索］画面の下部に表示されます。検索結果にはリンクが設定され，クリックすると［ユーザエントリの編集］画面が表示されます。エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

検索結果が表示された［ユーザエントリの検索］画面を次の図に示します。

図11‒9　検索結果が表示された［ユーザエントリの検索］画面

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

検索条件（必須）

検索するユーザIDを指定します。検索対象は，ツリーペインで選択されているレルムが管理するユーザエントリのユーザIDです。検索条件には「*」（ワイルドカード）が使用できます。

（指定例）taro*：「taro」で始まるユーザIDを検索します。

検索条件によっては，対象となるユーザエントリ数が多くなり表示に時間が掛かる場合があります。

［検索］ボタン

指定した内容で検索します。

11.4.8　レルムの削除

［レルムの削除］画面を次の図に示します。

図11‒10　［レルムの削除］画面

(1)　機能概要

LDAPディレクトリサーバのレルムを削除します。該当レルムが管理するユーザエントリはすべて削除されます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

［レルムの削除］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

表示内容を確認して，［削除］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

［削除］ボタン

該当レルムが管理するすべてのユーザエントリ，およびLDAPディレクトリサーバのレルムを削除します。

11.4.9　ユーザエントリの編集

［ユーザエントリの編集］画面を次の図に示します。

図11‒11　［ユーザエントリの編集］画面

(1)　機能概要

ユーザエントリを編集します。指定できる文字列および長さについては，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.5.3　「リポジトリ管理」での規則」を参照してください。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

［ユーザエントリの検索］タブをクリックします。

編集するユーザIDを［検索条件］に指定して，［検索］ボタンをクリックします。

検索結果として表示されたユーザIDをクリックします。

［ユーザエントリの編集］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［パスワード］などを指定します。

設定内容を追加する場合，項目を指定したあとに［追加］ボタンをクリックします。設定内容を削除する場合，［削除］ボタンをクリックします。

［更新］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

ユーザID

ユーザIDは変更できません。変更したい場合は，ユーザエントリをLDAPディレクトリサーバから削除し，再度作成してください。

パスワード

パスワードを変更する場合，変更後のパスワードを指定します。

パスワード（再入力）

指定したパスワードを確認するために，パスワードを再度指定します。

パスワードを上書きする

指定したパスワードで既存のエントリのパスワードを上書きする場合は，このチェックボックスをチェックしてください。チェックしない状態では，指定したパスワードは有効になりません。

属性名

属性名が表示されます。「11.4.3　ユーザエントリのスキーマ定義」の［任意属性の設定］で定義していない属性の場合，［属性名］にはLDAPディレクトリサーバの属性名（cnなど）が表示されます。

属性値

属性名に対応する属性値が表示されます。一つの属性名に複数の属性値が設定できます。

属性値を追加するには，メニューから属性名を選択し，属性値を指定して［追加］ボタンをクリックします。属性値を削除するには，削除する属性値の［削除］ボタンをクリックします。属性値を変更する場合は，該当属性を一度削除し，変更後の属性を追加してください。

［追加］ボタン

［属性名］および［属性値］で指定した内容を有効にします。

［削除］ボタン

［属性名］および［属性値］に指定されている内容を削除します。

Single Sign-Onを使用する。

シングルサインオン情報リポジトリにユーザエントリがある場合は，このチェックボックスは自動的にチェックされます。シングルサインオンの情報を変更する場合は，チェックした状態で変更してください。

publicData

シングルサインオン用認証情報の非暗号化データを変更する場合，変更後のデータを指定します。

secretData

シングルサインオン用認証情報の暗号化データが「*」で表示されます。

このフィールドは，自動的にパスワードと同期するため，指定はできません。

マッピング

接続先のレルム名とユーザIDを変更する場合，変更後の情報を指定します。追加する場合は，接続先レルム名とユーザIDを指定して［追加］ボタンをクリックします。削除する場合は，削除するユーザIDの［削除］ボタンをクリックします。

接続先レルム名

接続先のレルム名をメニューから選択します。

ユーザID

接続先のレルムのユーザIDを指定します。指定は任意です。

［更新］ボタン

指定した内容でユーザエントリを更新します。

11.4.10　ユーザエントリの編集（シングルサインオン用）

［ユーザエントリの編集（シングルサインオン用）］画面を次の図に示します。

図11‒12　［ユーザエントリの編集（シングルサインオン用）］画面

(1)　機能概要

ユーザエントリを編集します。指定できる文字列および長さについては，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.5.3　「リポジトリ管理」での規則」を参照してください。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

このとき，レルム作成時に［Single Sign-Onのみ使用する。］をチェックしたレルム名をクリックしてください。

［ユーザエントリの検索］タブをクリックします。

編集するユーザIDを［検索条件］に指定して，［検索］ボタンをクリックします。

検索結果として表示されたユーザIDをクリックします。

［ユーザエントリの編集］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［publicData］などを指定します。

設定内容を追加する場合，項目を指定したあとに［追加］ボタンをクリックします。設定内容を削除する場合，［削除］ボタンをクリックします。

［更新］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

ユーザID

ユーザIDは変更できません。変更したい場合は，ユーザエントリをLDAPディレクトリサーバから削除し，再度作成してください。

publicData

シングルサインオン用認証情報の非暗号化データを変更する場合，変更後のデータを指定します。

secretData

シングルサインオン用認証情報の暗号化データを変更する場合，変更後のデータを指定します。画面では「*」で表示されます。

secretData（再入力）

secretDataを変更した場合，指定した内容を再度指定します。

secretDataを上書きする

指定したsecretDataで既存のエントリのパスワードを上書きする場合は，このチェックボックスをチェックしてください。チェックしない状態では，指定したsecretDataは有効になりません。

マッピング

接続先のレルム名とユーザIDが表示されます。変更する場合は，変更後の情報を指定します。選択できるレルムは，シングルサインオン情報リポジトリにある，統合ユーザ管理フレームワークが推奨するDIT構成に準拠したレルムです。追加する場合は，接続先レルム名とユーザIDを指定して，［追加］ボタンをクリックします。削除する場合は，削除する情報の［削除］ボタンをクリックします。

接続先レルム名

接続先のレルム名をメニューから選択します。

ユーザID

接続先のレルムのユーザIDを指定します。指定は任意です。

［追加］ボタン

［接続先レルム名］および［ユーザID］で指定した内容を有効にします。

［削除］ボタン

［接続先レルム名］および［ユーザID］に指定されている内容を削除します。

［更新］ボタン

指定した内容でユーザエントリを更新します。

11.4.11　ユーザエントリの削除

［ユーザエントリの削除］画面を次の図に示します。

図11‒13　［ユーザエントリの削除］画面

(1)　機能概要

ユーザエントリを削除します。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［リポジトリ管理］アンカーをクリックします。

ツリーペインで［レルム管理］−［＜レルム名＞］をクリックします。

［ユーザエントリの検索］タブをクリックします。

削除するユーザIDを［検索条件］に指定して，［検索］ボタンをクリックします。

検索結果として表示されたユーザIDをクリックします。

［ユーザエントリの削除］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

表示内容を確認して，［削除］ボタンをクリックします。

エラーが表示された場合は，［戻る］アンカーをクリックして原因を取り除き，再度実行します。

(4)　画面詳細

画面に表示される項目およびボタンについて説明します。

［削除］ボタン

ユーザエントリを削除します。

12　リソース監視（統合ユーザ管理）

この章では，運用管理ポータルの「リソース監視」に関する操作方法について説明します。［リソース監視］画面は，稼働中のJ2EEサーバで実行されている統合ユーザ管理のリソースを監視するための画面です。

なお，バッチアプリケーションを実行するシステムの場合，統合ユーザ管理機能は使用できません。

12.1　この章の構成

この章では，運用管理ポータルの「リソース監視」に関する操作方法について説明します。

この章の構成を次の表に示します。

表12‒1　この章の構成（リソース監視（統合ユーザ管理））

分類

タイトル

参照先

解説

「リソース監視」のツリーペインの構成

12.2

設定

ログインセッションの監視

12.3

LDAP接続モニタの監視

12.4

JDBC接続モニタの監視

12.5

注意事項

LDAP接続の障害情報の表示

12.4.4

JDBC接続の障害情報の表示

12.5.4

注　「実装」および「運用」について，この章での説明はありません。

12.2　「リソース監視」のツリーペインの構成

この節では，「リソース監視」のツリーペインの構成について説明します。

ツリーペインは，次に示すビューで構成されています。

ホストビュー

サーバビュー

12.2.1　「リソース監視」のホストビューの構成

「リソース監視」のホストビューには，操作できる画面がありません。「リソース監視」は，サーバビューで操作してください。

12.2.2　「リソース監視」のサーバビューの構成

「リソース監視」のサーバビューの構成は，次のとおりです。

　リソース監視
　│
　└─＜運用管理ドメイン名＞
　　　└─論理J2EEサーバ
　　　　　├─J2EEサーバ
　　　　　│　└─＜J2EEサーバ名＞
　　　　　│　　　├─ログインセッションモニタ
　　　　　│　　　├─LDAP接続モニタ
　　　　　│　　　└─JDBC接続モニタ
　　　　　│
　　　　　└─J2EEサーバクラスタ
　　　　　　　└─＜J2EEサーバクラスタ名＞
　　　　　　　　　└─＜J2EEサーバ名＞
　　　　　　　　　　　├─ログインセッションモニタ
　　　　　　　　　　　├─LDAP接続モニタ
　　　　　　　　　　　└─JDBC接続モニタ

サーバビューに表示されるノードの意味を次に示します。

表12‒2　「リソース監視」のサーバビューに表示されるノードの意味

ノード名

説明

ノード上でできる操作と参照先

＜運用管理ドメイン名＞

運用管理ドメインに定義されている論理サーバのルートです。運用管理ドメイン内のすべての論理サーバ（J2EEサーバ）を対象にした操作ができます。

運用管理ドメイン全体の論理サーバのステータス監視（マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の13.2.2参照）

論理J2EEサーバ

J2EEサーバおよびJ2EEサーバクラスタのルートです。

このノードには操作画面がありません。

J2EEサーバ

J2EEサーバのツリーです。

このノードには操作画面がありません。

＜J2EEサーバ名＞

各J2EEサーバ名です。

このノードには操作画面がありません。

ログインセッションモニタ

選択したJ2EEサーバのログインセッションモニタを操作できます。

ログインセッションモニタの表示（12.3.1参照）

統合ユーザ管理のセッションの停止（12.3.2参照）

LDAP接続モニタ

選択したJ2EEサーバのLDAP接続モニタを操作できます。

LDAP接続プールモニタの表示（12.4.1参照）

LDAP接続プールの空き待ち監視のリセット（12.4.2参照）

LDAP接続の定義情報の表示（12.4.3参照）

LDAP接続の障害情報の表示（12.4.4参照）

JDBC接続モニタ

選択したJ2EEサーバのJDBC接続モニタを操作できます。

JDBC接続プールモニタの表示（12.5.1参照）

JDBC接続プールの空き待ち監視のリセット（12.5.2参照）

JDBC接続の定義情報の表示（12.5.3参照）

JDBC接続の障害情報の表示（12.5.4参照）

J2EEサーバクラスタ

J2EEサーバクラスタのツリーです。

このノードには操作画面がありません。

＜J2EEサーバクラスタ名＞

各J2EEサーバクラスタ名です。

このノードには操作画面がありません。

＜J2EEサーバ名＞

J2EEサーバクラスタ内の各J2EEサーバ名です。

このノードには操作画面がありません。

ログインセッションモニタ

J2EEサーバクラスタ内の選択したJ2EEサーバのログインセッションモニタを操作できます。

ログインセッションモニタの表示（12.3.1参照）

統合ユーザ管理のセッションの停止（12.3.2参照）

LDAP接続モニタ

J2EEサーバクラスタ内の選択したJ2EEサーバのLDAP接続モニタを操作できます。

LDAP接続プールモニタの表示（12.4.1参照）

LDAP接続プールの空き待ち監視のリセット（12.4.2参照）

LDAP接続の定義情報の表示（12.4.3参照）

LDAP接続の障害情報の表示（12.4.4参照）

JDBC接続モニタ

J2EEサーバクラスタ内の選択したJ2EEサーバのJDBC接続モニタを操作できます。

JDBC接続プールモニタの表示（12.5.1参照）

JDBC接続プールの空き待ち監視のリセット（12.5.2参照）

JDBC接続の定義情報の表示（12.5.3参照）

JDBC接続の障害情報の表示（12.5.4参照）

12.3　ログインセッションの監視

この節では，［ログインセッションモニタ］画面での操作と，監視できる内容について説明します。

12.3.1　ログインセッションモニタの表示

［ログインセッションモニタ］画面を次の図に示します。

図12‒1　［ログインセッションモニタ］画面

(1)　機能概要

統合ユーザ管理のセッションの状態を参照できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［ログインセッションモニタ］をクリックします。

(3)　操作手順

画面での操作はありません。

(4)　画面詳細

画面に表示される項目およびアンカーについて説明します。

セッション数

ログインしている統合ユーザ管理のセッション数が表示されます。

セッションID

ログインしているセッションのセッションIDが表示されます。

レルム名

ログインしているセッション内のレルム名が表示されます。カスタムログインモジュールでログインしている場合は，JAASのコンフィグレーションで指定したレルム名になります。

ユーザID

ログインしているセッション内のユーザIDが表示されます。

ログイン時刻

ユーザがログインしたときの時刻が表示されます。

［全停止］アンカー

選択したJ2EEサーバ内で稼働中の統合ユーザ管理のセッションを，すべて停止します。停止後，画面を最新の状態に更新します。

なお，稼働中のセッションがない場合は，このアンカーは表示されません。

［停止］アンカー

このアンカーのある行のセッションを停止します。停止後，画面を最新の状態に更新します。

［最新の情報に更新］アンカー

画面を最新の情報に更新します。

画面は時間の経過とともに変わります。常に最新の状態でご参照ください。更新間隔を変更したい場合は，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.4.1　画面自動更新の設定」を参照してください。

(5)　注意事項

統合ユーザ管理のセッションフェイルオーバ機能を使用している場合，現在ログインしているユーザのフェイルオーバが発生すると，一時的にフェイルオーバ元とフェイルオーバ先の両方のログインセッションモニタに，同じユーザが表示される場合があります。

また，ログインセッションモニタから統合ユーザ管理のセッションを停止しても，統合ユーザ管理のセッションを停止できません。ログインセッションモニタから統合ユーザ管理のセッションを停止した場合，ユーザが該当セッションにリクエストを送信すると，統合ユーザ管理のセッションが自動的に回復されます。

12.3.2　統合ユーザ管理のセッションの停止

(1)　機能概要

選択した統合ユーザ管理のセッションを停止できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［ログインセッションモニタ］をクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［全停止］アンカーまたは［停止］アンカーをクリックします。

(4)　画面詳細

画面に表示されるアンカーについて説明します。

［全停止］アンカー

選択したJ2EEサーバ内で稼働中の統合ユーザ管理のセッションを，すべて停止します。停止後，画面を最新の状態に更新します。

なお，稼働中のセッションがない場合は，このアンカーは表示されません。

［停止］アンカー

アンカーのある行のセッションを停止します。停止後，画面を最新の状態に更新します。

画面のこのほかの項目の意味については，「12.3.1　ログインセッションモニタの表示」を参照してください。

12.4　LDAP接続モニタの監視

この節では，［LDAP接続モニタ］画面での操作と，監視できる内容について説明します。

12.4.1　LDAP接続プールモニタの表示

［LDAP接続プールモニタ］画面を次の図に示します。

図12‒2　［LDAP接続プールモニタ］画面

(1)　機能概要

統合ユーザ管理が使用するLDAP接続プールの状態を参照できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［LDAP接続モニタ］をクリックします。

［モニタ］タブをクリックします。

(3)　操作手順

画面での操作はありません。

(4)　画面詳細

画面に表示される項目およびアンカーについて説明します。

LDAP設定番号

統合ユーザ管理のコンフィグレーションファイルで指定した，LDAPディレクトリサーバと接続するための情報を識別するLDAP設定番号が表示されます。番号のアンカーをクリックすると，詳細情報を参照できます。表示される画面については，「12.4.3　LDAP接続の定義情報の表示」を参照してください。

接続先URL

接続先LDAPディレクトリサーバのURLが表示されます。定義されていない場合は「未定義」と表示されます。

接続プールの定義数

最大値

LDAP接続プールの最大数が表示されます。プールを利用しない場合は「−」が表示されます。

最小値

LDAP接続プールの空きプールの数が0になったとき（初期化時を含む），新たに確立されるプール数が表示されます。プールを利用しない場合は「−」が表示されます。

接続プールの状態

接続数

接続しているLDAP接続プールの数が表示されます。LDAPディレクトリサーバと接続できない場合は「X」が表示されます。LDAPディレクトリサーバと接続できて，プールを利用しない場合は「−」が表示されます。

「X」のアンカーをクリックすると，障害情報を参照できます。表示される画面については，「12.4.4　LDAP接続の障害情報の表示」を参照してください。

利用数

現在使用しているLDAP接続プールのプール数が表示されます。プールを利用しない場合は「−」が表示されます。

接続プールの空き待ち監視

測定開始時刻

LDAP接続プールの空き待ち数のカウントを開始した時刻が表示されます。プールを利用しない場合は「−」が表示されます。

空き待ち最大数

LDAP接続プールの定義数の最大値を超えて要求があった，LDAP接続プールの空き待ち数が表示されます。この値は［測定開始時刻］が表示された時刻からの値です。プールを利用しない場合は「−」が表示されます。

［全リセット］アンカー

すべての［接続プールの空き待ち監視］をリセットします。

なお，すべてがプールを使用していない場合は，このアンカーは表示されません。

［リセット］アンカー

このアンカーのある行の［接続プールの空き待ち監視］をリセットします。プールを使用していない行には，このアンカーは表示されません。

［最新の情報に更新］アンカー

画面を最新の情報に更新します。

画面は時間の経過とともに変わります。常に最新の状態でご参照ください。更新間隔を変更したい場合は，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.4.1　画面自動更新の設定」を参照してください。

12.4.2　LDAP接続プールの空き待ち監視のリセット

(1)　機能概要

統合ユーザ管理が使用するLDAP接続プールで，接続プールの空き待ち監視の設定をリセットできます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［LDAP接続モニタ］をクリックします。

［モニタ］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［全リセット］アンカーまたは［リセット］アンカーをクリックします。

(4)　画面詳細

画面に表示されるアンカーについて説明します。

［全リセット］アンカー

すべての［接続プールの空き待ち監視］をリセットします。

なお，すべてがプールを使用していない場合は，このアンカーは表示されません。

［リセット］アンカー

このアンカーのある行の［接続プールの空き待ち監視］をリセットします。プールを使用していない行には，このアンカーは表示されません。

画面のこのほかの項目の意味については，「12.4.1　LDAP接続プールモニタの表示」を参照してください。

12.4.3　LDAP接続の定義情報の表示

［LDAP設定番号の詳細定義情報］画面を次の図に示します。

図12‒3　［LDAP設定番号の詳細定義情報］画面

(1)　機能概要

選択したJ2EEサーバで定義している，統合ユーザ管理のLDAP接続情報を参照できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［LDAP接続モニタ］をクリックします。

［定義情報］タブをクリックします。

(3)　操作手順

画面での操作はありません。

(4)　画面詳細

画面に表示される項目およびアンカーについて説明します。

使用ファクトリクラス

JNDIで使用するファクトリクラスの名称が表示されます。

接続先URL

接続先LDAPディレクトリサーバのURLが表示されます。定義されていない場合は「未定義」と表示されます。

ベースDN

ベースDNが表示されます。定義されていない場合は「未定義」と表示されます。

バインドDN

コンフィグレーションファイルに定義されているバインドDNが表示されます。定義されていない場合は「未定義」と表示されます。

バインドDNのパスワード

コンフィグレーションファイルに定義されているバインドDNのパスワードが「********」で表示されます。定義されていない場合は「未定義」と表示されます。

LDAP接続失敗時のリトライ回数

LDAP接続に失敗した場合のリトライ回数が表示されます。

LDAP接続失敗時のリトライ時間間隔

LDAP接続に失敗した場合のリトライを繰り返すときの待ち時間がミリ秒で表示されます。

ユーザエントリ内でユーザIDを示す属性名

ユーザエントリ内でユーザIDとして使用する属性名が表示されます。

ユーザエントリ内でパスワードを示す属性名

ユーザエントリ内でパスワードとして使用する属性名が表示されます。

証明書からユーザIDを切り出す属性名

証明書内に格納されているDNを分解したあと，ユーザIDとして用いる属性名が表示されます。ユーザIDを取り出すときに同じ属性名が複数存在していた場合は，最初に見つかった値が表示されます。

接続プールの使用

LDAP接続プールを利用するかどうかが表示されます。

する：LDAP接続プールを利用します。

しない：LDAP接続プールを利用しません。

LDAP接続プールの最大値

LDAP接続プールの最大数が表示されます。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

LDAP接続プールの空きプール数の最大値

LDAP接続プールの空きプール数の最大値が表示されます。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

LDAP接続プールの空きプール数の最小値

LDAP接続プールの空きプールの数が0になったとき（初期化時を含む），新たに確立されるプール数が表示されます。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

プール数を調整する時間間隔

LDAP接続プールの空きプール数を調整する時間間隔が，秒単位で表示されます。

なし：プール数の調整は行いません。

1以上：表示された時間でプール数の調整を行います。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

検索の有無

ユーザ情報リポジトリのユーザエントリの検索をするかしないかが表示されます。

する：ユーザエントリを検索します。

しない：ユーザエントリを検索しないで，直接エントリを参照します。

検索時のスコープ

ユーザ情報リポジトリのユーザエントリを検索する場合（「する」の場合）の検索レベルが表示されます。

onelevel：ベースDN直下のエントリからユーザエントリを検索します。

subtree：ベースDN以下のエントリからユーザエントリを検索します。

［検索の有無］で「しない」が表示されている場合は，この項目は表示されません。

パスワードの暗号化方式

リポジトリに格納されているパスワードの形式が表示されます。

sha1：SHA-1形式で格納されている場合に表示されます。

sha224：SHA-224形式で格納されている場合に表示されます。

sha256：SHA-256形式で格納されている場合に表示されます。

sha384：SHA-384形式で格納されている場合に表示されます。

sha512：SHA-512形式で格納されている場合に表示されます。

md5：MD5形式で格納されている場合に表示されます。

none：平文で格納されている場合に表示されます。

パスワードの暗号化拡張方式

パスワードのフォーマットが標準で用意されているもの以外の形式の場合に，パスワードを変換するためのクラスが表示されます。

この項目が表示されている場合，［パスワードの暗号化方式］は表示されません。

12.4.4　LDAP接続の障害情報の表示

ここでは，「リソース監視」で出力されるLDAP接続の障害情報を表示する操作と，障害情報の内容について説明します。

［障害情報］画面を次の図に示します。

図12‒4　［障害情報］画面（例）

(1)　機能概要

統合ユーザ管理の「リソース監視」で発生した現象と，その詳細情報（例外メッセージ）を参照できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［LDAP接続モニタ］をクリックします。

［障害情報］タブをクリックします。

(3)　操作手順

画面での操作はありません。

(4)　画面詳細

画面に表示されるメッセージの要因，対処については，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「13.　KEOS（Managerを使用した構築・運用・保守で出力されるメッセージ）」を参照してください。

12.5　JDBC接続モニタの監視

この節では，［JDBC接続モニタ］画面での操作と，監視できる内容について説明します。

12.5.1　JDBC接続プールモニタの表示

［JDBC接続プールモニタ］画面を次の図に示します。

図12‒5　［JDBC接続プールモニタ］画面

(1)　機能概要

統合ユーザ管理が使用するJDBC接続プールの状態を参照できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［JDBC接続モニタ］をクリックします。

［モニタ］タブをクリックします。

(3)　操作手順

画面での操作はありません。

(4)　画面詳細

画面に表示される項目およびアンカーについて説明します。

JDBC設定番号

統合ユーザ管理のコンフィグレーションファイルで指定した，RDBサーバと接続するための情報を識別するJDBC設定番号が表示されます。番号のアンカーをクリックすると，詳細情報を参照できます。表示される画面については，「12.5.3　JDBC接続の定義情報の表示」を参照してください。

接続先URL

接続先RDBサーバのURLが表示されます。定義されていない場合は「未定義」と表示されます。

接続プールの定義数

最大値

JDBC接続プールの最大数が表示されます。プールを利用しない場合は「−」が表示されます。

最小値

JDBC接続プールの空きプールの数が0になったとき（初期化時を含む），新たに確立されるプール数が表示されます。プールを利用しない場合は「−」が表示されます。

接続プールの状態

接続数

接続しているJDBC接続プールの数が表示されます。RDBサーバと接続できない場合は「X」が表示されます。RDBサーバと接続できて，プールを利用しない場合は「−」が表示されます。

「X」のアンカーをクリックすると，障害情報を参照できます。表示される画面については，「12.5.4　JDBC接続の障害情報の表示」を参照してください。

利用数

現在使用しているJDBC接続プールのプール数が表示されます。プールを利用しない場合は「−」が表示されます。

接続プールの空き待ち監視

測定開始時刻

JDBC接続プールの空き待ち数のカウントを開始した時刻が表示されます。プールを利用しない場合は「−」が表示されます。

空き待ち最大数

JDBC接続プールの定義数の最大値を超えて要求があった，JDBC接続プールの空き待ち数が表示されます。この値は［測定開始時刻］が表示された時刻からの値です。プールを利用しない場合は「−」が表示されます。

［全リセット］アンカー

すべての［接続プールの空き待ち監視］をリセットします。

なお，すべてがプールを使用しない場合は，このアンカーは表示されません。

［リセット］アンカー

このアンカーのある行の［接続プールの空き待ち監視］をリセットします。プールを使用していない行には，このアンカーは表示されません。

［最新の情報に更新］アンカー

画面を最新の情報に更新します。

画面は時間の経過とともに変わります。常に最新の状態でご参照ください。更新間隔を変更したい場合は，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.4.1　画面自動更新の設定」を参照してください。

12.5.2　JDBC接続プールの空き待ち監視のリセット

(1)　機能概要

統合ユーザ管理が使用するJDBC接続プールで，接続プールの空き待ち監視の設定をリセットできます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［JDBC接続モニタ］をクリックします。

［モニタ］タブをクリックします。

(3)　操作手順

画面での操作手順を次に示します。

［全リセット］アンカーまたは［リセット］アンカーをクリックします。

(4)　画面詳細

画面に表示されるアンカーについて説明します。

［全リセット］アンカー

すべての［接続プールの空き待ち監視］をリセットします。

なお，すべてがプールを使用しない場合は，このアンカーは表示されません。

［リセット］アンカー

このアンカーのある行の［接続プールの空き待ち監視］をリセットします。プールを使用していない行には，このアンカーは表示されません。

画面のこのほかの項目の意味については，「12.5.1　JDBC接続プールモニタの表示」を参照してください。

12.5.3　JDBC接続の定義情報の表示

［JDBC設定番号の詳細定義情報］画面を次の図に示します。

図12‒6　［JDBC設定番号の詳細定義情報］画面

(1)　機能概要

選択したJ2EEサーバで定義している，統合ユーザ管理のJDBC接続情報を参照できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［JDBC接続モニタ］をクリックします。

［定義情報］タブをクリックします。

(3)　操作手順

画面での操作はありません。

(4)　画面詳細

画面に表示される項目およびアンカーについて説明します。

JDBCドライバ名

使用するJDBCドライバ名が表示されます。

「JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDriver」が表示されます。

接続先URL

接続先RDBサーバのURLが表示されます。定義されていない場合は「未定義」と表示されます。

代理接続で使用するユーザID

コンフィグレーションファイルに定義されている代理接続で使用するユーザIDが表示されます。定義されていない場合は「未定義」と表示されます。

代理接続で使用するユーザIDのパスワード

コンフィグレーションファイルに定義されている代理接続で使用するパスワードが「********」で表示されます。定義されていない場合は「未定義」と表示されます。

接続プールの使用

JDBC接続プールを利用するかどうかが表示されます。

する：JDBC接続プールを利用します。

しない：JDBC接続プールを利用しません。

JDBC接続プールの最大値

JDBC接続プールの最大数が表示されます。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

JDBC接続プールの空きプール数の最大値

JDBC接続プールの空きプール数の最大値が表示されます。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

JDBC接続プールの空きプール数の最小値

JDBC接続プールの空きプールの数が0になったとき（初期化時を含む），新たに確立されるプール数が表示されます。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

プール数を調整する時間間隔

JDBC接続プールの空きプール数を調整する時間間隔が秒単位で表示されます。

なし：プール数の調整は行いません。

1以上：表示された時間でプール数の調整を行います。

［接続プールの使用］で「しない」が表示されている場合は，この項目は表示されません。

JDBC接続失敗時のリトライ回数

JDBC接続に失敗した場合のリトライ回数が表示されます。

JDBC接続失敗時のリトライ時間間隔

JDBC接続に失敗した場合のリトライを繰り返すときの待ち時間がミリ秒で表示されます。

SQL文

パスワードを検索するためのSQL SELECT文が表示されます。定義されていない場合は「未定義」と表示されます。

パスワードの型名

パスワードが格納されている列の値の型が表示されます。型名は，Java言語で扱う場合の型が次に示す値で表示されます。

string：RDBからString型でパスワードの値を取り出します。

byte：RDBからbyte［］型でパスワードの値を取り出します。

パスワードの暗号化方式

リポジトリに格納されているパスワードの形式が表示されます。

sha1：SHA-1形式で格納されている場合に表示されます。

sha224：SHA-224形式で格納されている場合に表示されます。

sha256：SHA-256形式で格納されている場合に表示されます。

sha384：SHA-384形式で格納されている場合に表示されます。

sha512：SHA-512形式で格納されている場合に表示されます。

md5：MD5形式で格納されている場合に表示されます。

none：平文で格納されている場合に表示されます。

パスワードの暗号化拡張方式

パスワードのフォーマットが標準で用意されているもの以外の形式の場合にパスワードを変換するためのクラスが表示されます。

この項目が表示されている場合，［パスワードの暗号化方式］は表示されません。

12.5.4　JDBC接続の障害情報の表示

ここでは，「リソース監視」で出力されるJDBC接続の障害情報を表示する操作と，障害情報の内容について説明します。

［障害情報］画面を次の図に示します。

図12‒7　［障害情報］画面（例）

(1)　機能概要

統合ユーザ管理の「リソース監視」で発生した現象と，その詳細情報（例外メッセージ）を参照できます。

(2)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，統合ユーザ管理の［リソース監視］アンカーをクリックします。

［サーバビュー］タブ−［論理J2EEサーバ］をクリックします。

次のどちらかの操作をします。

J2EEサーバの場合

［J2EEサーバ］−［J2EEサーバ名］をクリックします。

J2EEサーバクラスタの場合

［J2EEサーバクラスタ］−［J2EEサーバクラスタ名］−［J2EEサーバ名］をクリックします。

［JDBC接続モニタ］をクリックします。

［障害情報］タブをクリックします。

(3)　操作手順

画面での操作はありません。

(4)　画面詳細

画面に表示されるメッセージの要因，対処については，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「13.　KEOS（Managerを使用した構築・運用・保守で出力されるメッセージ）」を参照してください。

第5編　リファレンス

13　統合ユーザ管理で使用するコマンド

この章では，統合ユーザ管理で使用するコマンドの入力形式，機能などについて説明します。

13.1　統合ユーザ管理で使用するコマンドの一覧

統合ユーザ管理で使用するコマンドの一覧を，次の表に示します。

表13‒1　統合ユーザ管理で使用するコマンドの一覧

コマンド名称

分類

概要

convpw

パスワードの暗号化

ldifファイル内のパスワードフィールドの内容を暗号化して，その結果を標準出力に出力します。

ssoexport

シングルサインオン情報リポジトリの参照

シングルサインオン情報リポジトリに内容を読み込んで，標準出力にCSV形式で表示します。

ssogenkey

暗号鍵ファイルの作成

シングルサインオン情報リポジトリに登録／参照するときの暗号鍵ファイルを作成します。

ssoimport

シングルサインオン情報リポジトリの登録

シングルサインオン用の認証情報が格納されているCSV形式のファイルを読み込んでシングルサインオン情報リポジトリに登録します。

uachpw

パスワードの変更

統合ユーザ管理のコンフィグレーションファイル中のLDAPディレクトリサーバとDBサーバにアクセスするためのパスワードを変更します。

13.2　統合ユーザ管理で使用するコマンドの詳細

統合ユーザ管理で使用する各コマンドの入力形式，機能などを次に示します。

コマンドの格納先

統合ユーザ管理で使用するコマンドは，次のディレクトリに格納されています。

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥bin¥

UNIXの場合

/opt/Cosminexus/manager/bin/

共通の仕様

終了コード

統合ユーザ管理で使用するコマンドの終了コードを，次の表に示します。

表13‒2　統合ユーザ管理で使用するコマンドの終了コード

終了コード

意味

0

正常終了しました。

1

コマンドの実行中にエラーが発生しました。

2

コマンドまたはサーバ起動時の引数に誤りがあります。

convpw（パスワードの暗号化）

形式

convpw [-f {md5|sha1|sha224|sha256|sha384|sha512}] <ldif_file_name> <password_attribute>

機能

ユーザ情報リポジトリに登録するときに，ldifファイルの内容を暗号化します。このコマンドは，指定したldifファイルの内容を読み取って，<password_attribute>で指定されている内容を暗号化して標準出力に出力します。ldifファイルの内容で，<password_attribute>で指定した属性名の値以外は，そのまま標準出力に出力します。

なお，<password_attribute>で指定した属性名がない場合，そのままファイルの内容が標準出力に出力されます。

なお，このコマンドは，root権限があるユーザ，またはコマンドの実行権限を設定した特定のユーザだけが実行できます。特定のユーザにコマンドの実行権限を設定する方法については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngenvsetup（管理グループの設定）」を参照してください。

引数

-f {md5|sha1|sha224|sha256|sha384|sha512}

<ldif_file_name>に指定したファイルの内容の中で，password（パスワード）で指定された値を暗号化する形式を指定します。省略した場合は，sha1を仮定します。ここで指定する値は，大文字と小文字を区別しません。

md5

MD5形式で暗号化します。

sha1

SHA-1形式で暗号化します。

sha224

SHA-224形式で暗号化します。

sha256

SHA-256形式で暗号化します。

sha384

SHA-384形式で暗号化します。

sha512

SHA-512形式で暗号化します。

<ldif_file_name>

パスワード変換をするユーザ情報が格納されたldifファイルのファイル名を指定します。

<password_attribute>

パスワードのフィールドの内容を変換する際の属性名を指定します。

注意事項

変換するldifファイルに日本語を記述する場合，UTF-8に変換したあとで，base64エンコードしてください。LDIFの詳細については，RFC 2849 "The LDAP Data Interchange Format (LDIF) - Technical Specification"を参照してください。

ssoexport（シングルサインオン情報リポジトリの参照）

形式

ssoexport [-n <レルム名>] [-u <ユーザID>] [-scramble] <useradmin_configfile>

機能

シングルサインオン情報リポジトリに格納されたユーザ情報を，CSV形式で標準出力に出力します。

シングルサインオン情報リポジトリのユーザ情報を変更する場合，ssoexportコマンドによって出力された情報をCSV形式ファイルにリダイレクトして，CSV形式ファイルを編集したあとで，ssoimportコマンドで再度登録処理をします。

ssoexportコマンドでユーザ情報を取り出した場合，項目”SECRETDATA”の実データは復号化されます。

ssoexportコマンドがユーザ情報をCSV形式に変換して出力するには，ユーザ情報にレルムとユーザIDが含まれている必要があります。含まれていない場合，出力しないで無視します。

なお，このコマンドは，root権限があるユーザ，またはコマンドの実行権限を設定した特定のユーザだけが実行できます。特定のユーザにコマンドの実行権限を設定する方法については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngenvsetup（管理グループの設定）」を参照してください。

引数

-n <レルム名>

検索するレルム名を指定します。省略した場合，すべてのレルム名が対象となります。

-u <ユーザID>

検索するユーザIDを指定します。ユーザIDには，ワイルドカード（*）を指定できます。ワイルドカード（*）を指定する場合は，ダブルクォーテーション（"）で囲んでください。

（例）

-u "*"

すべてのユーザを取り出します。

-u "Ta*"

ユーザIDがTaで始まるユーザを取り出します。

-u "*no"

ユーザIDがnoで終わるユーザを取り出します。

省略した場合，すべてのユーザIDが対象となります。

-scramble

パスワード変更コマンド（uachpw）でパスワードをスクランブル化した場合に指定します。

<useradmin_configfile>

統合ユーザ管理のコンフィグレーションファイル（ua.conf）を指定します。

入力例・出力例

レルム名が「RealmA」で，「s9」で始まるユーザを取り出す場合の入力例および出力例を次に示します。

入力例

Windowsの場合

C:¥>ssoexport -n RealmA -u "s9*" "C:¥Program Files¥Hitachi¥Cosminexus¥manager¥config¥ua.conf"

UNIXの場合

% ssoexport -n RealmA -u "s9*" /opt/Cosminexus/manager/config/ua.conf

出力例

SecurityDomain,USERID,SECRETDATA,PUBLICDATA,LINK_J2EE,LINK_REALMA
RealmA,s981234,abfdef,,
RealmA,s991234,ghijkl,,

注意事項

シングルサインオン情報リポジトリに情報がない場合，または指定したレルム名／ユーザIDに対応したユーザ情報が取得できない場合，ヘッダだけ出力してこのコマンドは終了します。

ssoexportコマンドを実行中にLDAPディレクトリサーバを停止しないでください。エラーメッセージを出力しないで，コマンドが終了することがあります。

ssoexportコマンドとssoimportコマンドは，同時に実行しないでください。

ssoimportコマンドで登録する接続先のユーザ管理を持つアプリケーションについては，整合性を取りません。つまり，シングルサインオン情報リポジトリ内に対応するレルムのエントリ（またはユーザエントリ）がなくてもエラーとなりません。この場合，ssoexportコマンドで情報を参照しても出力されないため注意が必要です。ssoexportコマンドでは，接続先のユーザ管理を持つアプリケーションについては，ベースDNの直下にあるレルムのエントリに対応する値しか表示しません。

ssogenkey（暗号鍵ファイルの作成）

形式

ssogenkey <useradmin_configfile>

機能

シングルサインオン用の認証情報は，暗号化して保存します。また，参照する際は，復号化して参照します。このコマンドは，暗号化および復号化で使用する暗号鍵を作成します。

なお，このコマンドは，root権限があるユーザ，またはコマンドの実行権限を設定した特定のユーザだけが実行できます。特定のユーザにコマンドの実行権限を設定する方法については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngenvsetup（管理グループの設定）」を参照してください。

引数

<useradmin_configfile>

統合ユーザ管理のコンフィグレーションファイル（ua.conf）を指定します。

注意事項

指定したファイルがすでにある場合は，”.n”を付けて，指定したファイルと同一ディレクトリ内にバックアップを取ります。

このコマンドでは，シングルサインオン情報リポジトリの内容はアクセスしません。すでにシングルサインオン情報リポジトリ内にシングルサインオン用の認証情報を登録している場合は，先にすべての情報をssoexportで取り出したあと，ssoimportコマンドで登録する必要があります。

ssoimport（シングルサインオン情報リポジトリの登録）

形式

ssoimport {-a|-m|-d|-x} [-p] [-scramble] <csvfile_name> <useradmin_configfile>

機能

ユーザ管理を持つアプリケーションから取り出したCSV形式ファイル（または取り出して編集したCSV形式ファイル）を，シングルサインオン情報リポジトリに登録します。登録時，項目ID”SECRETDATA”に記述された実データは暗号化されてシングルサインオン情報リポジトリに登録されます。

なお，このコマンドは，root権限があるユーザ，またはコマンドの実行権限を設定した特定のユーザだけが実行できます。特定のユーザにコマンドの実行権限を設定する方法については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngenvsetup（管理グループの設定）」を参照してください。

引数

-a

<csvfile_name>に指定したファイルの内容をシングルサインオン情報リポジトリに追加します。シングルサインオン情報リポジトリ内に追加しようとするユーザのエントリがある場合は，該当ユーザに対する処理はしないで，警告メッセージを出力して次行以降の行の処理を継続します。

-m

<csvfile_name>に指定したファイルの内容でシングルサインオン情報リポジトリを上書きします。シングルサインオン情報リポジトリ内に上書きしようとするユーザのエントリがない場合は，ユーザエントリを追加します。

-d

<csvfile_name>に指定したファイルの内容をシングルサインオン情報リポジトリから削除します。シングルサインオン情報リポジトリ内に削除しようとするユーザのエントリがない場合は，警告メッセージを出力して処理は継続します。

-x

ラインオペレーションの指定に従って，シングルサインオン情報リポジトリの内容を更新します。シングルサインオン用認証情報のCSV形式ファイルのラインオペレーションについては，「14.3　シングルサインオン用認証情報のCSV形式ファイル」を参照してください。

-p

追加，変更，または更新したレルム名とユーザ名の一覧を標準出力に出力します。

-scramble

パスワード変更コマンド（uachpw）でパスワードをスクランブル化した場合に指定します。

<csvfile_name>

シングルサインオン情報リポジトリに登録するCSV形式ファイルを指定します。

<useradmin_configfile>

統合ユーザ管理のコンフィグレーションファイル（ua.conf）を指定します。

入力例

ここでは，登録するCSV形式ファイルをuserdata.csv，シングルサインオン用設定ファイルを”ua.conf”として説明します。

CSV形式ファイルの内容をシングルサインオン情報リポジトリに追加する場合

ssoimport -a userdata.csv ua.conf

CSV形式ファイルの内容をシングルサインオン情報リポジトリから削除する場合

ssoimport -d userdata.csv ua.conf

CSV形式ファイルOPERATION項目の実データに指定したオペレーションに従ってシングルサインオン情報リポジトリに登録する場合

ssoimport -x userdata.csv ua.conf

出力メッセージ

ssoimportコマンドは，オプションに指定したCSV形式ファイルから1行ずつ取得してシングルサインオン情報リポジトリに登録（変更または削除）します。このとき，-pオプションを指定して実行すると，その操作についての情報を標準出力に出力します。なお，操作時に発生した警告，エラーメッセージについては，標準エラー出力に出力します。

-pオプションを指定しないで実行した場合は，警告，エラーメッセージと「結果」だけを出力します。

出力例を次の図に示します。

図13‒1　ssoimportコマンドの出力例（Windowsの場合）

図13‒2　ssoimportコマンドの出力例（UNIXの場合）

「OPERATION」「REALMNAME」「USERID」の順に表示します。

実行内容

ヘッダに対応した「OPERATION」「REALMNAME」「USERID」の内容，および操作時に発生した警告／エラーメッセージを表示します。

OPERATION

次の表に示す操作種別のどれかを出力します。

表13‒3　ssoimportコマンドの操作種別

項目

内容

add

情報を追加したことを意味します。

modify

情報を変更（上書き）したことを意味します。

delete

情報を削除したことを意味します。

REALMNAME

操作の対象となるレルム名を出力します。この値は，CSV形式ファイルの「REALMNAME」項目に指定した値を表示します。

USERID

操作の対象となるユーザIDを出力します。この値は，CSV形式ファイルのヘッダ「USERID」項目に指定した値を表示します。

実行結果

次の表に示す実行結果を表示します。

表13‒4　ssoimportコマンドの実行結果

項目

内容

Total

操作の対象となった行数を出力します。

ADD

シングルサインオン情報リポジトリ内に追加したエントリ数を表示します。

MODIFY

シングルサインオン情報リポジトリ内を変更したエントリ数を表示します。

DELETE

シングルサインオン情報リポジトリから削除したエントリ数を表示します。

WARNING

上記の操作をした際に発生した警告メッセージの数を表示します。

注意事項

接続先のJAAS対応ユーザ管理を持つアプリケーションのユーザの情報を削除する場合は，ssoexportで対象とするユーザを取得したあとで，削除したい接続先のユーザ管理を持つアプリケーションのユーザを削除し，-mオプションで更新してください。

ssoexportコマンドとssoimportコマンドは，同時に実行しないでください。

ssoimportコマンドで登録する接続先のユーザ管理を持つアプリケーションについては，整合性を取りません。つまり，シングルサインオン情報リポジトリ内に対応するレルムのエントリ（またはユーザエントリ）がなくてもエラーとなりません。この場合，ssoexportコマンドで情報を参照しても出力されないため注意が必要です。ssoexportコマンドでは，接続先のユーザ管理を持つアプリケーションについては，ベースDNの直下にあるレルムのエントリに対応する値しか表示しません。

uachpw（パスワードの変更）

形式

uachpw [-scramble] [-ldap.<n> <パスワード>] [-db.<n> <パスワード>] <useradmin_configfile>

機能

統合ユーザ管理のコンフィグレーションファイル（ua.conf）のLDAPディレクトリサーバとDBサーバにアクセスするためのパスワードを変更します。また，変更時にパスワードをスクランブル化できます。

なお，このコマンドは，root権限があるユーザ，またはコマンドの実行権限を設定した特定のユーザだけが実行できます。特定のユーザにコマンドの実行権限の設定については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngenvsetup（管理グループの設定）」を参照してください。

引数

-scramble

変更するパスワードをスクランブル化する場合に指定します。

-ldap.<n> <パスワード>

<n>で指定したLDAPディレクトリサーバにアクセスするためのパスワードを変更します。<n>には，統合ユーザ管理のコンフィグレーションファイルに定義したLDAP設定番号を指定します。<パスワード>には，変更する新しいパスワードを指定します。

-db.<n> <パスワード>

<n>で指定したDBサーバにアクセスするためのパスワードを変更します。<n>には，統合ユーザ管理のコンフィグレーションファイルに定義したJDBC設定番号を指定します。<パスワード>には，変更する新しいパスワードを指定します。

<useradmin_configfile>

統合ユーザ管理のコンフィグレーションファイル（ua.conf）を指定します。この引数は省略できません。

入力例

統合ユーザ管理のコンフィグレーションファイル（ua.conf）に定義したパスワードを下記のように変更し，-scrambleオプションを使用してスクランブル化する場合の入力例を示します。

LDAPアクセス情報0のパスワードをdiradminに変更

LDAPアクセス情報1のパスワードをadministratorに変更

DBアクセス情報0をtigerに変更

% uachpw -scramble -ldap.0 diradmin -ldap.1 administrator -db.0 tiger ua.conf

注意事項

-scrambleオプションでパスワードをスクランブル化する場合は，usrconf.propertiesのcom.cosminexus.admin.auth.passwordScramble.enableにtrueを設定してください。設定しなかった場合，パスワードが復号化されないためLDAPディレクトリサーバやDBにアクセスできません。

パスワードに使用できる文字数は30文字までです。

オプションの大文字と小文字は区別されません。

コマンドを二重で実行しないでください。

引数に統合ユーザ管理のコンフィグレーションファイル（ua.conf）以外のファイルは指定しないでください。

-ldap.<n>オプションまたは-db.<n>オプションにパスワードを指定した場合，このコマンドの実行中に，プロセスの引数を確認できるOS機能などでパスワードが観測されるおそれがあります。このコマンドを使用する際は，他ユーザがプロセスの引数を確認できるOS機能などを使用できない状況下で，このコマンドを実施してください。

14　統合ユーザ管理で使用するファイル

この章では，統合ユーザ管理で使用するファイルの形式，格納先，機能，指定できるオプションなどについて説明します。

14.1　統合ユーザ管理で使用するファイルの一覧

統合ユーザ管理で使用するファイルの一覧を，次の表に示します。

表14‒1　統合ユーザ管理で使用するファイルの一覧

ファイル名

分類

概要

参照先

jaas.conf

JAASのコンフィグレーションファイル

ユーザ認証ライブラリおよびシングルサインオンライブラリの機能を使用するために必要な設定をします。

14.2.1

ua.conf

統合ユーザ管理のコンフィグレーションファイル

JAAS対応ユーザ管理，およびシングルサインオンの機能を使用するための設定ファイルです。

14.2.2

（任意）

シングルサインオン用認証情報のCSV形式ファイル

シングルサインオン用の認証情報を設定します。

14.3

14.2　統合ユーザ管理で使用するファイルの詳細

14.2.1　jaas.conf（JAASのコンフィグレーションファイル）

(1)　形式

ユーザ認証ライブラリおよびシングルサインオンライブラリの機能を使用するために必要なJAASのコンフィグレーションファイルです。

次のようにオプションを指定します。

Application {
  ログインモジュール名 Flag ModuleOptions;
};

(2)　ファイルの格納先

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥config¥

UNIXの場合

/opt/Cosminexus/manager/config/

(3)　機能

ユーザ認証ライブラリおよびシングルサインオンライブラリの機能を使用するために必要な設定をします。JAASのコンフィグレーションファイルは，運用前に作成し，各ホストに配布する必要があります。その際，盗聴のおそれがあるため，配布の際には注意が必要です。

(4)　指定できるオプション

オプションの名称と内容を次の表に示します。

オプション名

内容

Application

アプリケーション名を指定します。アプリケーションが特定できる名称を使用することを推奨します。なお，ここで指定した名称は，LoginContextクラスのインスタンス化時に使用されます。

Application Serverでは，次に示す文字列で始まる名称を使用します。そのため，アプリケーション名にこれらの文字列で始まる名称を指定しないでください。

jp.co.hitachi.soft

com.hitachi.software

com.cosminexus

ログインモジュール名

使用する認証エンジンを指定します。

次のどれかのログインモジュールを指定してください。

WebPasswordLoginModule

パスワードを使用してユーザを認証する場合

WebCertificateLoginModule

クライアント証明書を使用してユーザを認証する場合

WebPasswordLDAPLoginModule

LDAPディレクトリサーバの認証機能を使用してユーザを認証する場合

WebPasswordJDBCLoginModule

ユーザ情報リポジトリとしてデータベースを使用する場合

DelegationLoginModule

カスタムログインモジュールを呼び出す場合

WebSSOLoginModule

シングルサインオン機能を使用する場合

Flag

LoginContextが呼び出したログインモジュールの正否によって動作を変えるためのフラグを指定します。指定するフラグの詳細については，JAASのドキュメントを参照してください。

ModuleOptions

ログインモジュールが実行する際に必要なオプションを指定します。指定するオプションの詳細については，「(5)　WebPasswordLoginModuleに指定するオプション」〜「(10)　WebPasswordLDAPLoginModuleに指定するオプション」に示します。

(5)　WebPasswordLoginModuleに指定するオプション

WebPasswordLoginModuleに指定するオプションとデフォルト値を次に示します。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.ldap.r

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。指定する値は，ユーザ情報リポジトリを参照可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。ここで指定された値は，WebPasswordLoginModuleを利用してログインする場合などのリポジトリの参照が必要な機能で使用されます。

0

com.cosminexus.admin.auth.ldap.w

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。指定する値は，ユーザ情報リポジトリを更新可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。ここで指定された値は，パスワードの変更機能などの，リポジトリの内容を管理するための機能で使用されます。

0

com.cosminexus.admin.auth.sso.ldap.w

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。このオプションは，PasswordUtilクラスを使ってパスワードを変更するときにシングルサインオン用の認証情報も変更する場合，かつシングルサインオン用の認証情報変更にLDAP接続フェールオーバを利用する場合に指定してください。指定する値は，シングルサインオン情報リポジトリを更新可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。

なお，この値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.sso.ldap.wで指定した値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.realm

認証するレルムを文字列で指定します。

なし

com.cosminexus.admin.auth.keep_password

該当レルムにログインしたユーザのパスワードを統合ユーザ管理のセッションに保持するかどうかを，trueまたはfalseで指定します。大文字と小文字は区別されません。

trueを指定した場合は保持します。falseを指定した場合は保持しません。なお，trueを指定しても，該当レルムですでにログインしている場合，すでに保持しているパスワードを上書きすることはありません。パスワードを保持しない場合，同一セッションの同一レルムに2回目以降WebPasswordLDAPLoginModuleを使用してログインするとき，ユーザIDとパスワードの入力が必要になります。

なお，ここで指定された値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.keep_passwordで指定された値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.keep_password.encrypt

com.cosminexus.admin.auth.keep_passwordにtrueを指定した場合，パスワードを保持するときに暗号化するかどうかを，trueまたはfalseで指定します。大文字と小文字は区別されません。

trueを指定した場合はパスワードを暗号化します。

falseを指定した場合は暗号化しません。

なお，ここで指定された値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.keep_password.encryptで指定された値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.gsession.keep_password

統合ユーザ管理のセッションフェイルオーバ機能が有効，かつcom.cosminexus.admin.auth.keep_passwordにtrueを指定した場合に，統合ユーザ管理のセッションに保持したパスワードをセッションフェイルオーバの対象にするかどうかを指定します。

trueを指定した場合：

パスワードをグローバルセッションに保持します。

falseを指定した場合：

パスワードをグローバルセッションに保持しません。

セッションフェイルオーバをした場合，同一セッションの同一レルムにWebPasswordLDAPLoginModuleを使用してログインするとき，2回目以降はユーザIDとパスワードの入力が必要になります。

（指定例）

com.cosminexus.admin.auth.gsession.keep_password=true

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

(6)　WebSSOLoginModuleに指定するオプション

WebSSOLoginModuleに指定するオプションとデフォルト値を次に示します。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.sso

WebSSOLoginModuleから呼び出すログインモジュールの識別子を指定します。ここで指定された識別子を基にJAAS対応ユーザ管理の設定ファイルから必要な情報を読み込みます。

なお，この指定が省略されていた場合は，標準ログインモジュール（WebPasswordLoginModule）を仮定します。

WebPasswordLoginModule

com.cosminexus.admin.auth.sso.ldap.r

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。指定する値は，シングルサインオン情報リポジトリを参照可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。ここで指定された値は，WebSSOLoginModuleを利用してシングルサインオンをする場合などのリポジトリの参照が必要な機能で使用されます。

なお，この値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.sso.ldap.rで指定した値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.sso.ldap.w

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。指定する値は，シングルサインオン情報リポジトリを更新可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。ここで指定された値は，パスワードの変更機能などの，リポジトリの更新が必要な機能で使用されます。

なお，この値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.sso.ldap.wで指定した値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.realm

認証するレルムを，文字列で指定します。

なし

(7)　DelegationLoginModuleに指定するオプション

DelegationLoginModuleに指定するオプションとデフォルト値を次に示します。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.custom.lm

DelegationLoginModuleが呼び出すカスタムログインモジュール名（クラス名）を，文字列で指定します。指定は，完全限定名（fully qualified name）で記述してください。

なし

com.cosminexus.admin.auth.realm

認証するレルムを，文字列で指定します。

なし

(8)　WebCertificateLoginModuleに指定するオプション

WebCertificateLoginModuleに指定するオプションとデフォルト値を次に示します。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.ldap.r

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。指定する値は，ユーザ情報リポジトリを参照可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。ここで指定された値は，WebCertificateLoginModuleを利用してログインする場合などのリポジトリの参照が必要な機能で使用されます。

0

com.cosminexus.admin.auth.realm

認証するレルムを，文字列で指定します。

なし

(9)　WebPasswordJDBCLoginModuleに指定するオプション

WebPasswordJDBCLoginModuleに指定するオプションとデフォルト値を次に示します。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.jdbc.r

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したJDBC設定番号を指定します。指定する値は，ユーザ情報リポジトリを参照可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。ここで指定された値は，WebPasswordJDBCLoginModuleを利用してログインする場合などのリポジトリの参照が必要な機能で使用されます。

0

com.cosminexus.admin.auth.realm

認証するレルムを，文字列で指定します。

なし

com.cosminexus.admin.auth.keep_password

該当レルムにログインしたユーザのパスワードを統合ユーザ管理のセッションに保持するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。

trueを指定した場合は保持します。falseを指定した場合は保持しません。なお，trueを指定しても，該当レルムですでにログインしている場合，すでに保持しているパスワードを上書きすることはありません。パスワードを保持しない場合，同一セッションの同一レルムに2回目以降WebPasswordLDAPLoginModuleを使用してログインするとき，ユーザIDとパスワードの入力が必要になります。

ただし，ここで指定された値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.keep_passwordで指定された値よりも優先されます。

＜統合ユーザ管理のコンフィグレーションファイルで指定した値＞

com.cosminexus.admin.auth.keep_password.encrypt

com.cosminexus.admin.auth.keep_passwordにtrueを指定した場合，パスワードを保持するときに暗号化するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。

trueを指定した場合はパスワードを暗号化します。

falseを指定した場合は暗号化しません。

ただし，ここで指定された値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.keep_password.encryptで指定された値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.gsession.keep_password

統合ユーザ管理のセッションフェイルオーバ機能が有効，かつcom.cosminexus.admin.auth.keep_passwordにtrueを指定した場合に，統合ユーザ管理のセッションに保持したパスワードをセッションフェイルオーバの対象にするかどうかを指定します。

trueを指定した場合：

パスワードをグローバルセッションに保持します。

falseを指定した場合：

パスワードをグローバルセッションに保持しません。

セッションフェイルオーバをした場合，同一セッションの同一レルムにWebPasswordLDAPLoginModuleを使用してログインするとき，2回目以降はユーザIDとパスワードの入力が必要になります。

（指定例）

com.cosminexus.admin.auth.gsession.keep_password=true

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

(10)　WebPasswordLDAPLoginModuleに指定するオプション

WebPasswordLDAPLoginModuleに指定するオプションとデフォルト値を次に示します。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.ldap.r

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。指定する値は，ユーザ情報リポジトリを，参照可能な設定を識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。ここで指定された値は，WebPasswordLDAPLoginModuleを利用してログインする場合などのリポジトリの参照が必要な機能で使用されます。

0

com.cosminexus.admin.auth.ldap.w

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。指定する値は，ユーザ情報リポジトリを，更新可能な設定を識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。ここで指定された値は，パスワードの変更機能などの，リポジトリの内容を管理するための機能で使用されます。

0

com.cosminexus.admin.auth.sso.ldap.w

「14.2.2(3)　リポジトリアクセス用パラメタ」で定義したLDAP設定番号を指定します。このオプションは，PasswordUtilクラスを使ってパスワードを変更するときにシングルサインオン用の認証情報も変更する場合，かつシングルサインオン用の認証情報変更にLDAP接続フェールオーバを利用する場合に指定してください。指定する値は，シングルサインオン情報リポジトリを更新可能な設定を，識別する番号です。ただし，ここで指定する値は""で囲む必要があります。コンマ（,）で区切ることでLDAP設定番号を複数指定できます。複数指定すると，最初に指定されたLDAPディレクトリサーバがダウンした場合に自動的に切り替えができます。

なお，この値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.sso.ldap.wで指定した値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.realm

認証するレルムを，文字列指定します。

なし

com.cosminexus.admin.auth.keep_password

該当レルムにログインしたユーザのパスワードを統合ユーザ管理のセッションに保持するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。

trueを指定した場合は保持します。falseを指定した場合は保持しません。なお，trueを指定しても，該当レルムですでにログインしている場合，すでに保持しているパスワードを上書きすることはありません。パスワードを保持しない場合，同一セッションの同一レルムに2回目以降WebPasswordLDAPLoginModuleを使用してログインするとき，ユーザIDとパスワードの入力が必要になります。

なお，ここで指定された値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.keep_passwordで指定された値よりも優先されます。

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

com.cosminexus.admin.auth.keep_password.encrypt

com.cosminexus.admin.auth.keep_passwordにtrueを指定した場合，パスワードを保持するときに暗号化するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。

trueを指定した場合はパスワードを暗号化します。

falseを指定した場合は暗号化しません。

なお，ここで指定された値は統合ユーザ管理のコンフィグレーションファイルのcom.cosminexus.admin.auth.keep_password.encryptで指定された値よりも優先されます。

＜統合ユーザ管理のコンフィグレーションファイルで指定した値＞

com.cosminexus.admin.auth.gsession.keep_password

統合ユーザ管理のセッションフェイルオーバ機能が有効，かつcom.cosminexus.admin.auth.keep_passwordにtrueを指定した場合に，統合ユーザ管理のセッションに保持したパスワードをセッションフェイルオーバの対象にするかどうかを指定します。

trueを指定した場合：

パスワードをグローバルセッションに保持します。

falseを指定した場合：

パスワードをグローバルセッションに保持しません。

セッションフェイルオーバをした場合，同一セッションの同一レルムにWebPasswordLDAPLoginModuleを使用してログインするとき，2回目以降はユーザIDとパスワードの入力が必要になります。

（指定例）

com.cosminexus.admin.auth.gsession.keep_password=true

<統合ユーザ管理のコンフィグレーションファイルで指定した値>

14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）

(1)　形式

JAAS対応ユーザ管理，およびシングルサインオンの機能を使用するための設定ファイルです。

(2)　ファイルの格納先

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥config¥

UNIXの場合

/opt/Cosminexus/manager/config/

(3)　リポジトリアクセス用パラメタ

JAAS対応ユーザ管理のリポジトリ（LDAPディレクトリサーバまたはデータベース）アクセスに関係する情報を定義します。ここで定義する内容は，ログインモジュールや各種コマンドでリポジトリにアクセスする場合に使用されます。

項目は設定番号（LDAP設定番号またはJDBC設定番号）を付加して複数定義できます。設定番号は0から始まり，順番に１ずつ加算していきます。もし，数字が飛んだ場合は，定義がそこで切れます。例えば，次に示す例の場合，0と1が定義されたものとみなされます（3は2が指定されていないため無視されます）。

（例）

java.naming.provider.url.0=ldap://localhost:389
java.naming.provider.url.1=ldap://localhost:389
java.naming.provider.url.3=ldap://localhost:389
#java.naming.probider.url.3の指定は無視されます。

なお，JNDI用とJDBC用の定義は別なので，それぞれ「0」から始めます。

(a)　JNDI用パラメタ

JNDIを使用してLDAPディレクトリサーバにアクセスする場合に定義する項目です。LDAPディレクトリサーバにアクセスするための設定は，LDAP設定番号を0から順に上げることで複数指定できます。

オプション

内容

デフォルト値

java.naming.provider.url

リポジトリ（LDAPディレクトリサーバ）のURLを，文字列で指定します。詳細については，JavaのJNDIの説明を参照してください。

注意事項

「11.3.1　バインド情報の設定」で，LDAPディレクトリサーバとしてActive Directoryを使用してプロトコルに「ldaps」を設定した場合，ホスト名はActive DirectoryのドメインコントローラのFQDN（完全修飾ドメイン名）を指定してください。そのとき，hostsファイルなどでホスト名を解決できるようにする必要があります。

なし

java.naming.security.principal

リポジトリ（LDAPディレクトリサーバ）にアクセスする際の認証者の識別子を，文字列で指定します。詳細については，JavaのJNDIの説明を参照してください。

なし

java.naming.security.credentials

java.naming.security.principal.nに対応するパスワードを，文字列で指定します。詳細については，JavaのJNDIの説明を参照してください。

なし

com.cosminexus.admin.auth.ldap.basedn

JAAS対応ユーザ管理でのリポジトリのベースDNを，文字列で指定します。

なし

com.cosminexus.admin.auth.ldap.attr.userid

ユーザのログインIDを表す属性名を，文字列で指定します。

uid

com.cosminexus.admin.auth.ldap.search.userrdn

JAAS対応ユーザ管理でのリポジトリのユーザエントリ（RDN）を検索する必要があるかどうかをtrueまたはfalseで指定します。ユーザのログインIDを表す属性名とユーザエントリ（RDN）が異なる場合は，trueを指定してください。大文字と小文字は区別されません。

false

com.cosminexus.admin.auth.ldap.search.scope

JAAS対応ユーザ管理でのリポジトリのユーザエントリ（RDN）を検索する必要がある場合，検索のレベルをonelevel（1階層下だけ検索）またはsubtree（すべての下層の検索）で指定します。大文字と小文字は区別されません。

onelevel

com.cosminexus.admin.auth.ldap.attr.password

ユーザのパスワードを表す属性名を，文字列で指定します。

userPassword

com.cosminexus.admin.auth.ldap.pool.enable

LDAP接続プールを利用するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。

false

com.cosminexus.admin.auth.ldap.pool.max

LDAP接続プールの最大数を指定します。最大数を超えて要求が来た場合は，プールが空くのを待ちます。0〜2147483647の整数で指定します。0以下を指定した場合は，100を仮定します。

100

com.cosminexus.admin.auth.ldap.pool.max_spare

LDAP接続プールの空きプール数の最大値を指定します。一時的に，指定した最大値を超えることがありますが，com.cosminexus.admin.auth.ldap.pool.gc_intervalで指定した時間間隔で調整されます。0〜2147483647の整数で指定します。

ここに指定する値がcom.cosminexus.admin.auth.ldap.pool.maxよりも大きい値の場合，com.cosminexus.admin.auth.ldap.pool.maxで指定した値を仮定します。0以下の値を指定した場合は，com.cosminexus.admin.auth.ldap.pool.maxの1/2を仮定します。com.cosminexus.admin.auth.ldap.pool.maxに奇数値が指定されていた場合は切り捨てられ，1の場合は１とします。

50

com.cosminexus.admin.auth.ldap.pool.min_spare

LDAP接続プールの空きプールの数が0になったとき（初期化時を含みます），新たに確立されるプール数を指定します。0〜2147483647の整数で指定します。

ここに指定する値がcom.cosminexus.admin.auth.ldap.pool.max_spareよりも大きい値の場合，com.cosminexus.admin.auth.ldap.pool.max_spareで指定した値を仮定します。0以下の値を指定した場合は，com.cosminexus.admin.auth.ldap.pool.max_spareの1/2を仮定します。com.cosminexus.admin.auth.ldap.pool.max_spareに奇数値が指定されていた場合は切り捨てられ，1の場合は１とします。

10

com.cosminexus.admin.auth.ldap.pool.gc_interval

LDAP接続プールの空きプール数を調整する時間間隔を，0〜2147483647の整数（単位：秒）で指定します。com.cosminexus.admin.auth.ldap.pool.max_spareの説明を参照してください。なお，0以下の値を指定した場合は，この機能は実行されません（com.cosminexus.admin.auth.ldap.pool.maxまで増えて削除されません）。

60

com.cosminexus.admin.auth.ldap.conn.retry.count

LDAP接続失敗時のリトライ回数を0〜2147483647の整数で指定します。

1

com.cosminexus.admin.auth.ldap.conn.retry.wait

LDAP接続失敗時のリトライ間隔を0〜2147483647の整数（単位：ミリ秒）で指定します。

0

com.cosminexus.admin.auth.ldap.certificate.attr.userid

証明書に格納されているDNを分解したあと，ユーザIDとして使用する属性名を，文字列で指定します。大文字と小文字は区別されません。ユーザIDを取り出すときに，同じ属性名が複数あった場合は，最初に見つかった値を使用します。

cn

com.cosminexus.admin.auth.ldap.password.encrypt

リポジトリに格納されているパスワードの形式を指定します。WebPasswordLoginModuleでは，ここで指定した形式でパスワードを比較します。

sha1：SHA-1形式

sha224：SHA-224 形式

sha256：SHA-256 形式

sha384：SHA-384 形式

sha512：SHA-512 形式

none：平文

md5：MD5形式

ここで指定する文字列は大文字と小文字は区別されません。また，上記以外の文字列を指定した場合はsha1を仮定します。com.cosminexus.admin.auth.ldap.password.encrypt.exを指定した場合，このパラメタは無視されます。

sha1

com.cosminexus.admin.auth.ldap.password.encrypt.ex

パスワードのフォーマットが標準で用意されているもの以外の形式の場合に，パスワードを変換するためのクラスを完全限定名で指定します。

このパラメタを省略した場合，または指定したが見つからない場合，

com.cosminexus.admin.auth.ldap.password.encryptで指定した形式でパスワードを比較します。

なし

com.cosminexus.admin.auth.ldap.directory.kind

接続するLDAPディレクトリサーバの種類を指定します。

AD：

Active Directoryを使用する場合に指定します。

ETC：

Active Directory以外のLDAPディレクトリサーバを使用する場合に指定します。

上記以外の値を指定した場合は，ETCが設定されます。

ETC

com.cosminexus.admin.auth.ldap.conn.read_timeout

LDAPディレクトリサーバとの読み込みタイムアウト時間を0〜3600までの整数（単位：秒）で指定します。0を指定した場合はタイムアウトしません。

3

com.sun.jndi.ldap.connect.timeout

LDAPディレクトリサーバとの接続タイムアウトを0以上の整数（単位：ミリ秒）で指定します。0以下の整数を指定した場合は，TCPなどのネットワークプロトコルのタイムアウト値が使用されます。

LDAPプロバイダの仕様

(b)　JDBC用パラメタ

JDBCを使用してデータベースにアクセスする場合に定義する項目です。データベースと接続するための設定は，JDBC設定番号の値を0から順に上げることで複数指定できます。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.jdbc.driver

使用するデータベースに対応したJDBCドライバのクラス名を指定します。JDBCドライバの格納場所は，J2EEサーバのクラスパスに指定してください。

JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDriver

com.cosminexus.admin.auth.jdbc.conn.url

データベースと接続するためのURLを，文字列で指定します。URLは次の形式で指定します。

（指定例）

jdbc:<subprotocol>:<subname>

なし

com.cosminexus.admin.auth.jdbc.conn.user

代理で接続するデータベースユーザを，文字列で指定します。省略した場合は，接続するデータベースユーザなしで接続します。

代理者なし

com.cosminexus.admin.auth.jdbc.conn.password

代理で接続するデータベースユーザのパスワードを指定します。com.cosminexus.admin.auth.jdbc.conn.userを省略した場合は無視されます。com.cosminexus.admin.auth.jdbc.conn.userを指定してこのパラメタを省略した場合は，空文字を仮定します。

<空文字>

com.cosminexus.admin.auth.jdbc.pool.enable

JDBC接続プールを利用するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。

false

com.cosminexus.admin.auth.jdbc.pool.max

JDBC接続プールの最大数を指定します。最大数を超えて要求が来た場合はプールが空くのを待ちます。0〜2147483647の整数で指定します。0以下を指定した場合は100を仮定します。

100

com.cosminexus.admin.auth.jdbc.pool.max_spare

JDBC接続プールの空きプール数の最大値を指定します。一時的に，指定した最大値を超えることがありますが，com.cosminexus.admin.auth.jdbc.pool.gc_intervalで指定した時間間隔で調整されます。0〜2147483647の整数で指定します。

ここで指定した値がcom.cosminexus.admin.auth.jdbc.pool.maxよりも大きい値の場合，com.cosminexus.admin.auth.jdbc.pool.maxで指定した値を仮定します。0以下を指定した場合はcom.cosminexus.admin.auth.jdbc.pool.maxの1/2を仮定します。com.cosminexus.admin.auth.jdbc.pool.maxに奇数値が指定されていた場合は切り捨てられ，1の場合は1とします。

50

com.cosminexus.admin.auth.jdbc.pool.min_spare

JDBC接続プールの空きプール数が0になったとき（初期化時も含みます），新たに確立されるプール数を指定します。0〜2147483647の整数で指定します。ここで指定した値がcom.cosminexus.admin.auth.jdbc.pool.max_spareよりも大きい値の場合，com.cosminexus.admin.auth.jdbc.pool.max_spareで指定した値を仮定します。0以下を指定した場合はcom.cosminexus.admin.auth.jdbc.pool.max_spareの1/2を仮定します。com.cosminexus.admin.auth.jdbc.pool.max_spareに奇数値が指定されていた場合は切り捨てられ，1の場合は1とします。

10

com.cosminexus.admin.auth.jdbc.pool.gc_interval

JDBC接続プールの空きプール数を調整する時間間隔を0〜2147483647の整数（単位：秒）で指定します。com.cosminexus.admin.auth.jdbc.pool.max_spareの説明を参照してください。0以下を指定した場合はこの機能は実行されません。com.cosminexus.admin.auth.jdbc.pool.maxの指定値まで増えて削除されません。

60

com.cosminexus.admin.auth.jdbc.conn.retry.count

JDBC接続失敗時のリトライ回数を，0〜2147483647の整数で指定します。

1

com.cosminexus.admin.auth.jdbc.conn.retry.wait

JDBC接続失敗時のリトライ間隔を，0〜2147483647の整数（単位：ミリ秒）で指定します。

0

com.cosminexus.admin.auth.jdbc.sql

パスワードを検索するためのSQLのSELECT文を指定します。SELECT文は次の形式で指定してください。

（指定形式）

SELECT　列名　FROM　表名　WHERE　検索条件

なお，検索条件には一つだけ’？’INパラメタプレースホルダーを含められます。この値は，認証時に指定されたユーザIDに置換されます。

なし

com.cosminexus.admin.auth.jdbc.password.type

パスワードが格納されている列の値の型を指定します。Java言語で扱う場合の型を，次に示す値で指定します。

string：

データベースからString型でパスワードの値を取り出します。SQLのデータ型はCHAR/VARCHAR/LONGVARCHARです。

byte：

データベースからbyte[]型でパスワードの値を取り出します。SQLのデータ型はVARBINARY/LONGVARBINARYです。

ここで指定するキーワードは大文字と小文字が区別されません。また，上記のキーワード以外を指定した場合はstringを仮定します。

string

com.cosminexus.admin.auth.jdbc.password.encrypt

リポジトリに格納されているパスワードの形式を指定します。WebPasswordLoginModuleでは，ここで指定した形式でパスワードを比較します。

sha1：SHA-1形式

sha224：SHA-224 形式

sha256：SHA-256 形式

sha384：SHA-384 形式

sha512：SHA-512 形式

none：平文

md5：MD5形式

ここで指定するキーワードは大文字と小文字が区別されません。また，上記のキーワード以外を指定した場合はnoneを仮定します。

com.cosminexus.admin.auth.jdbc.password.encrypt.exを指定した場合，このパラメタは無視されます。

このパラメタにsha1またはmd5を指定した場合は，com.cosminexus.admin.auth.jdbc.password.typeパラメタにbyteを指定してください。

none

com.cosminexus.admin.auth.jdbc.password.encrypt.ex

パスワードのフォーマットが標準で用意されているもの以外の形式の場合に，パスワードを変換するためのクラスを完全限定名で指定します。

このパラメタを省略した場合，または指定したが見つからない場合はcom.cosminexus.admin.auth.jdbc.password.encryptで指定した暗号化形式でパスワードを比較します。

なし

(c)　API用パラメタ

LDAPディレクトリサーバ上のユーザ情報リポジトリを参照または更新するAPIで使用する情報を定義する項目です。

項目には「.<name>」を付加します。「.<name>」はユーザ情報リポジトリを参照または更新するAPIを利用するときの識別子として定義します。ここで指定したnameはLdapUserDataManagerのコンストラクタで指定します。

nameの形式

<アプリケーションのJavaパッケージ名>.<内部名>

内部名：英数字（A〜Z，a〜z，0〜9）またはピリオド（.）で構成される文字列

（例）

com.cosminexus.admin.auth.api.repository.ldap.config.<com.cosminexus.admin.auth.Example>=1

nameは値を変えることで複数定義できます。複数定義する場合，それぞれのnameはこのコンフィグレーションファイル内で一意になるようにしてください。また，nameは英数字列（A〜Z，a〜z，0〜9）またはピリオド（.）で指定してください。これ以外の文字を使用した場合，誤認識されることがあります。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.api.repository.ldap.config

APIで使用するLDAPディレクトリサーバの定義の識別子（JNDI用パラメタで指定したLDAP設定番号）を指定します。

なし

(d)　シングルサインオン用パラメタ

シングルサインオン機能を利用する場合に必要な情報です。WebSSOLoginModuleが使用する項目と，カスタムログインモジュールを呼び出すための定義項目の，2種類の情報を指定する必要があります。このうち，カスタムログインモジュールを呼び出すための定義項目（com.cosminexus.admin.auth.sso.lm以後）には，.nameを付加します。nameはWebSSOLoginModuleから呼び出すログインモジュールの識別子です。

この「.name」を変えることで複数の値が指定できます。ここで指定した「.name」は，JAASのコンフィグレーションで使用されます。

形式

WebSSOLoginModuleが使用する項目=値

カスタムログインモジュールを呼び出すための定義項目.name=値

（例）

com.cosminexus.admin.auth.sso.keyfile=d:/tmp/DES3key.key
com.cosminexus.admin.auth.sso.lm.krb5=com.sun.security.module.Krb5LoginModule
com.cosminexus.admin.auth.sso.param.userid.Krb5=javax.security.auth.login.name
…

オプション

内容

デフォルト値

com.cosminexus.admin.auth.sso.keyfile

シングルサインオン用の情報を登録する際に暗号化するための鍵情報が格納されているファイル名を絶対パスで指定します。このファイルが指定されていない場合，シングルサインオン機能を利用してログインするときや，パスワードの変更機能（PasswordUtilクラス）で，LoginException例外が発生します。なお，com.cosminexus.admin.auth.sso.encrypt=noneの場合，ここで指定した値は無視されます。

なし

com.cosminexus.admin.auth.sso.encrypt

シングルサインオン用の認証情報（SecretData）を暗号化するために使用する製品を指定します。

JCE：JCEを使用します。

NONE：暗号化機能を使用しません。

ここで指定するキーワードは大文字と小文字を区別しません。

NONE

com.cosminexus.admin.auth.sso.ldap.r

この項の先頭で定義したLDAP設定番号を指定します。指定する値は，シングルサインオン情報リポジトリを参照可能な設定を，識別する番号です。ここで指定された値は，WebSSOLoginModuleを利用したシングルサインオンをする場合などの，リポジトリの参照が必要な機能で使用されます。

0

com.cosminexus.admin.auth.sso.ldap.w

この項の先頭で定義したLDAP設定番号を指定します。指定する値は，シングルサインオン情報リポジトリを更新可能な設定を，識別する番号です。ここで指定された値は，パスワードの変更機能や，SSOExport/SSOImportコマンドなどのリポジトリの内容を管理するための機能で使用します。

0

com.cosminexus.admin.auth.sso.lm

WebSSOLoginModuleが呼び出す各アプリケーションのログインモジュール名（クラス名）を指定します。記述する場合は，フルパッケージで記述してください。

なし

com.cosminexus.admin.auth.sso.param.userid

シングルサインオン情報リポジトリに登録されているユーザIDを渡すためのパラメタ名を指定します。なお，ここで指定された値は，すでに認証済みの場合だけlogin()メソッドを呼び出す前にWebSSOLoginModuleが設定します。

com.cosminexus.admin.auth.sso.userid

com.cosminexus.admin.auth.sso.param.secdat

シングルサインオン情報リポジトリに登録されている暗号化された情報を渡すためのパラメタ名を指定します。ここで指定したパラメタ名のキー，およびキーに対する値は，login()メソッドを呼び出す前に，WebSSOLoginModuleによって設定されます。ただし，キーおよび値が設定されるのは，認証済みの場合だけです。また，値には，復号化されたデータが設定されます。

com.cosminexus.admin.auth.sso.secdat

com.cosminexus.admin.auth.sso.param.pubdat

シングルサインオン情報リポジトリに登録されている暗号化していない情報を渡すためのパラメタ名を指定します。なお，ここで指定された値は，認証済みの場合だけlogin()メソッドを呼び出す前にWebSSOLoginModuleが設定します。

com.cosminexus.admin.auth.sso.param.userid，com.cosminexus.admin.auth.sso.param.secdat，およびcom.cosminexus.admin.auth.sso.param.pubdatを指定する場合は，パラメタ名が重ならないように指定してください。もし，重なったパラメタを指定した場合，内容の保証はできません。

com.cosminexus.admin.auth.sso.pubdat

(e)　カスタムログインモジュールのパラメタ

DelegationLoginModuleまたはWebSSOLoginModuleからカスタムログインモジュールを呼び出すために必要な情報です。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.custom.modules

カスタムログインモジュールおよびカスタムログインモジュールに関連するクラス（PrincipalやCredintialクラスなど）を格納したディレクトリを絶対パスで指定します。

なし

(f)　標準ログインモジュールのパラメタ

標準ログインモジュール全体に関係する定義情報です。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.keep_password

該当レルムにログインしたユーザのパスワードを統合ユーザ管理のセッションに保持するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。trueを指定した場合は保持します。falseを指定した場合は保持しません。なお，trueを指定しても，該当レルムですでにログインしている場合，すでに保持しているパスワードを上書きすることはありません。パスワードを保持しない場合，同一セッションの同一レルムに2回目以降WebPasswordLDAPLoginModuleを使用してログインするとき，ユーザIDとパスワードの入力が必要になります。

false

com.cosminexus.admin.auth.keep_password.encrypt

com.cosminexus.admin.auth.keep_passwordにtrueを指定した場合，パスワードを保持するときに暗号化するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。

trueを指定した場合はパスワードを暗号化します。

falseを指定した場合は暗号化しません。

true

com.cosminexus.admin.auth.param_check.enable

com.cosminexus.admin.auth.param_check.enableにtrueを指定した場合，次の標準ログインモジュールを使用してログインユーザ名の前後に空白を入れてログインすると例外が発生します。

WebPasswordLoginModule

WebPasswordJDBCLoginModule

WebCertificateLoginModule

WebPasswordLDAPLoginModule

true

com.cosminexus.admin.auth.gsession.keep_password

統合ユーザ管理のセッションフェイルオーバ機能が有効な場合，かつ，com.cosminexus.admin.auth.keep_passwordにtrueを指定した場合に，統合ユーザ管理のセッションに保持したパスワードをセッションフェイルオーバの対象にするかどうかを指定します。

trueを指定した場合：

パスワードをグローバルセッションに保持します。

falseを指定した場合：

パスワードをグローバルセッションに保持しません。

セッションフェイルオーバをした場合，同一セッションの同一レルムにWebPasswordLDAPLoginModuleを使用してログインするとき，2回目以降はユーザIDとパスワードの入力が必要になります。

（指定例）

com.cosminexus.admin.auth.gsession.keep_password=true

false

(g)　そのほかのパラメタ

標準ログインモジュールによるユーザ管理全体に関係する定義情報としてトレースファイルがあります。

オプション

内容

デフォルト値

com.cosminexus.admin.auth.trace.prefix

フルパスを含んだトレースファイル名を指定します（拡張子は付けません）。ここに指定した値に”.n.log”という拡張子を付加して出力します（nは1〜面数（最大16））。この指定がない場合は，トレースログは出力しません。

なし

com.cosminexus.admin.auth.trace.level

トレースレベルを数字で指定します。指定したレベル以内でトレース情報を出力します。

0：

ログインおよびログアウトで失敗した場合，トレースログを出力します。

5：

ログインおよびログアウトで成功した場合とタイムアウトした場合，トレースログを出力します。

0

com.cosminexus.admin.auth.trace.rotate

トレースファイル面数を，"1"から"16"までの数字で指定します。

4

com.cosminexus.admin.auth.trace.size

１トレースファイル当たりの最大サイズを，"4096"から"2147483647"の数字で指定します。

一つのログファイルのサイズがここで指定したサイズを超えた場合，ログは次の面番号の付いたログファイルに記録されます。最後のログファイル（面数の番号が付いたログファイル）のサイズが1ファイル当たりの最大サイズに達すると，面の番号1のログファイルへ上書きします。

65536

com.cosminexus.admin.auth.sfo.disable

セッションフェイルオーバ用フィルタが設定されていた場合，統合ユーザ管理のセッションフェイルオーバ対応機能を無効にします。

trueを指定した場合：

セッションフェイルオーバ対応機能を無効にします。

falseを指定した場合：

セッションフェイルオーバ対応機能を有効にします。

false

14.3　シングルサインオン用認証情報のCSV形式ファイル

シングルサインオン用の認証情報は，CSV形式ファイルを使用して作成します。CSV形式ファイルについて，次に示します。

14.3.1　CSV形式ファイルの基本仕様

各項目の区切りには半角のコンマ（,）を使用します。また，レコードの区切りは改行です。

各項目は，ダブルクォーテーション（"）で囲んでも囲まなくてもコンマで区切られた文字列を1データとして扱います。ただし，項目にコンマを記述する場合は，項目全体をダブルクォーテーションで囲みます。

（例）RDN名に「ou=APS,o=CorpHitachi」を指定する場合

...,"ou=APS,o=Corp",...

また，項目にダブルクォーテーションを記述する場合は，ダブルクォーテーションを2文字記述し，さらに項目全体をダブルクォーテーションで囲みます。

（例）Aliasに「pass"wd」を指定する場合

...,"pass""wd",...

なお，コンマ（,）の前後のスペースは各項目に含めます。

14.3.2　ユーザ情報を取得するための定義ファイル

(1)　CSV形式ファイルの追加仕様

属性の一覧を指定するファイルのフォーマットでは，「14.3.1　CSV形式ファイルの基本仕様」で示した仕様に次の仕様が付加されます。

項目の指定順序は決められています。

コンマ（,）を続けて指定した場合は，その位置のオプションが省略されたものとします。

(2)　指定方法

改行までを1行として，1行ごとに次に示す項目をコンマで区切って指定します。

形式

項目

形式1

#

形式2

属性名

Alias

サブコンテキスト

形式1

注釈（コメント）を指定します。行の先頭（1カラム目）が”#”であれば行末までを注釈と見なします。

形式2

次の表に示す情報を1行で指定します。

表14‒2　指定する情報（ユーザ情報を取得するための定義ファイル）

機能

意味

属性

属性名

英字で始まる，英字（ASCII文字），数字，ハイフンで指定します。英字は，大文字と小文字を区別しません。

必須

Alias

プログラムで参照するための名称を指定します。

任意

サブコンテキスト

認証したユーザのエントリ以外のエントリの情報を取得する場合に，取得するエントリに対するユーザのエントリからのRDNを指定します。

任意

14.3.3　ユーザ情報を追加および変更するための定義ファイル

LDAPディレクトリサーバのエントリのオブジェクトクラスを指定するファイルです。

(1)　CSV形式ファイルの追加仕様

属性の一覧を指定するファイルのフォーマットでは，「14.3.1　CSV形式ファイルの基本仕様」で示した仕様に次の仕様が付加されます。

項目の指定順序は決められています。

コンマ（,）を続けて指定した場合は，その位置のオプションが省略されたものとします。

(2)　指定方法

改行までを1行として，1行ごとに次に示す項目をコンマで区切って指定します。

形式

項目

形式1

#

形式2

サブコンテキスト

オブジェクトクラス[,オブジェクトクラス…]

形式1

注釈（コメント）を指定します。行の先頭（1カラム目）が”#”であれば行末までを注釈と見なします。

形式2

次の表に示す情報を1行で指定します。

表14‒3　指定する情報（ユーザ情報を追加および変更するための定義ファイル）

機能

意味

属性

サブコンテキスト

認証に使用するユーザエントリからのRDNを指定します。省略した場合は，ユーザエントリを仮定します。

任意

オブジェクトクラス

サブコンテキストのオブジェクトクラスを指定します。コンマで区切って複数指定できます。

必須

14.3.4　ユーザマッピングと認証情報の定義ファイル

(1)　CSV形式ファイルの追加仕様

属性の一覧を指定するファイルのフォーマットでは，「14.3.1　CSV形式ファイルの基本仕様」で示した仕様に次の仕様が付加されます。

1行目にヘッダ情報，2行目以降に登録するデータの行となります。

各項目の内容はヘッダによって決まります。

コンマ（,）を続けて指定した場合は，その位置のオプションが省略されたものとします。

(2)　指定方法

1行目に指定する内容

次の表に示すヘッダ情報を指定します。各項目はASCII文字で入力し，半角のコンマ（,）で区切ります。項目IDの指定順序は任意です。

表14‒4　指定するヘッダ情報（ユーザマッピングと認証情報の定義ファイル）

項目ID

指定項目

指定内容

属性

REALMNAME

登録者の識別子

レルム名を指定します。ここで指定された名前の下にユーザエントリが作成されます。

必須

USERID

ユーザID

必須

SECRETDATA

認証情報

暗号化して保存するデータ

任意

PUBLICDATA

暗号化する必要のない保存データ

任意

LINK_xxxx

接続先システムのユーザ

ユーザ管理を持つアプリケーションのユーザ名を指定します（xxxxは各REALMNAMEを指定します）。

任意

OPERATION

行に対するコマンド

ラインオペレーションを指定します。この指定は，一つのファイル内で，追加，変更，および削除を共用して指定できます。

任意

項目ID以外の名称が指定された場合は，その欄は無視されます。

LINK_xxxxはシングルサインオン情報リポジトリに登録されているレルムごとに作成される項目IDです。

2行目以降

実際に登録するデータを，半角のコンマ（,）で区切って指定します。

(3)　JAAS対応ユーザ管理を持つアプリケーションのユーザ定義

LINK_xxxx項目IDのxxxx部分に接続先のユーザ管理を持つアプリケーションを表すレルム名が表示されます。この項目欄にユーザIDを指定して接続先を定義します。ここに指定する内容は，次の操作で追加，変更できます。

追加

対象のLINK_xxxx項目に接続先のユーザ管理を持つアプリケーション（レルム）のユーザIDを記述します。

変更

対象のLINK_xxxx項目に接続先のユーザ管理を持つアプリケーション（レルム）のユーザIDに変更します。

解除

対象のLINK_xxxx項目からユーザIDを削除（何も記述しない）します。

14.3.5　CSV形式ファイルの記述例

例えば，レルム名が「Portal」のユーザ「taro」「hanako」「jirou」は，レルム名「RealmA」の「k010000」ユーザを使用します。レルム名「J2EE」のユーザ「hanako」は「Admin」ユーザを，ユーザ「jirou」は「DBMgr」ユーザを使用するとします。この場合，CSV形式ファイルは次のようになります（この例では，ユーザIDとパスワードは同じものであると仮定しています）。

REALMNAME

USERID

SECRETDATA

PUBLICDATA

LINK_J2EE

LINK_REALMA

Portal

taro

taro

developer

k010000

Portal

hanako

hanako

Admin

k010000

Portal

jirou

jirou

DBMgr

k010000

RealmA

k010000

k010000

J2EE

Admin

Admin

J2EE

DBMgr

DBMgr

記述例

REALMNAME,USERID,SECRETDATA,PUBLICDATA,LINK_J2EE,LINK_REALMA
Portal,taro,taro,developer,,k010000
Portal,hanako,hanako,,Admin,k010000
Portal,jirou,jirou,,DBMgr,k010000
RealmA,k010000,k010000,,,
J2EE,Admin,Admin,,,
J2EE,DBMgr,DBMgr,,,

14.3.6　ラインオペレーション

ラインオペレーションとはCSV形式ファイルの項目”OPERATION”の項目に指定された値に従ってシングルサインオン情報リポジトリに行を登録，変更，および削除する機能です。項目”OPERATION”は管理者が任意に挿入できますが，有効にしたい場合は必ずssoimportコマンドに-xオプションを指定しなければなりません。また，-xオプションを-a,-m,-dオプションと併用することはできません。

項目”OPERATION”に指定できるオペレーションと用途を次の表に示します。

表14‒5　項目”OPERATION”に指定できるオペレーションと用途

オペレーション

用途

Aまたはa

指定した行の内容をシングルサインオン情報リポジトリに追加します。もし，シングルサインオン情報リポジトリ内にユーザエントリがある場合は，警告メッセージを出力して処理を継続します。

Mまたはm

指定した行の内容にシングルサインオン情報リポジトリを上書きします。もし，シングルサインオン情報リポジトリ内にユーザエントリがない場合は，ユーザエントリを追加します。

Dまたはd

指定した行の内容をシングルサインオン情報リポジトリから削除します。もし，シングルサインオン情報リポジトリ内にユーザエントリがない場合は，警告メッセージを出力して処理を継続します。

注

オペレーションは大文字と小文字の制限はありません。また，オペレーション前後の空文字は無視されますが，タブは使用できません。

オペレーション欄に，A，a，M，m，D，およびd以外が指定された場合は，Warningが発生し該当する行はスキップされます。このような場合は，適切なオペレーションが指定されているかを確認し再度登録処理をする必要があります。

項目”OPERATION”を追加した場合のCSV形式ファイルを次に示します。

OPERATION

REALMNAME

USERID

SECRETDATA

PUBLICDATA

LINK_J2EE

A

Portal

taro

taro

developer

D

Portal

hanako

hanako

Admin

M

Portal

jirou

jirou

DBMgr

RealmA

k010000

k010000

M

J2EE

Admin

Admin

記述例

OPERATION,REALMNAME,USERID,SECRETDATA,PUBLICDATA,LINK_J2EE
A,Portal,taro,taro,developer,
D,Portal,hanako,hanako,,Admin
M,Portal,jirou,jirou,,DBMgr
,RealmA,k010000,k010000,,
M,J2EE,Admin,Admin,,

15　統合ユーザ管理フレームワークで使用するAPI

この章では，統合ユーザ管理フレームワークで使用するAPIおよび例外クラスについて説明します。

15.1　統合ユーザ管理フレームワークで使用するAPIの一覧

統合ユーザ管理フレームワークのライブラリを利用してユーザ認証を実装する場合に使用するAPIおよび例外クラスの一覧を次の表に示します。

表15‒1　統合ユーザ管理フレームワークで使用するAPIおよび例外クラスの一覧

クラス・インタフェース名

機能

APIの種別

AttributeEntryクラス

属性名とAliasを対で管理します。

ユーザ認証ライブラリ

ChangeDataFailedExceptionクラス

SSODataListenerインタフェースの実装クラスが呼び出す例外クラスです。

シングルサインオンライブラリ（例外クラス）

DelegationLoginModuleクラス

JAASのログインモジュールの実装クラスです。カスタムログインモジュールを呼び出します。

標準ログインモジュール

LdapSSODataManagerクラス

LDAPディレクトリサーバのシングルサインオン情報リポジトリの情報を参照または更新します。

シングルサインオンライブラリ

LdapUserDataManagerクラス

LDAPディレクトリサーバの，ユーザ情報リポジトリの情報を参照または更新します。

ユーザ認証ライブラリ

LdapUserEnumerationインタフェース

ユーザIDの一覧を参照します。

ユーザ認証ライブラリ

LoginUtilクラス

統合ユーザ管理のセッション内でログインしているユーザの有無を調べます。

ユーザ認証ライブラリ

ObjectClassEntryクラス

LDAPディレクトリサーバのエントリのオブジェクトクラスを格納します。

ユーザ認証ライブラリ

PasswordCryptographyインタフェース

ユーザが入力したパスワードを暗号化します。

ユーザ認証ライブラリ

PasswordUtilクラス

ユーザが入力したパスワードを変更します。

ユーザ認証ライブラリ

Principalインタフェース

WebPasswordLoginModuleが認証したときのユーザIDを参照します。

ユーザ認証ライブラリ

SSODataクラス

シングルサインオン用認証情報を格納します。

シングルサインオンライブラリ

SSODataEventクラス

シングルサインオン用認証情報の更新内容を格納します。

シングルサインオンライブラリ

SSODataListenerインタフェース

シングルサインオン用認証情報の更新を通知します。

シングルサインオンライブラリ

SSODataListenerExceptionクラス

シングルサインオン用認証情報リスナクラスで例外が発生した場合に呼び出される例外クラスです。

シングルサインオンライブラリ（例外クラス）

UserAttributesインタフェース

WebPasswordLoginModuleが認証したときに作成したCredentialを参照します。

ユーザ認証ライブラリ

UserDataクラス

ユーザ情報を格納します。

ユーザ認証ライブラリ

WebCertificateCallbackクラス

JAASのCallbackの実装クラスです。WebサーバのSSL認証した結果の情報を格納します。

ユーザ認証ライブラリ

WebCertificateHandlerクラス

JAASのCallbackHandlerの実装クラスです。WebサーバのSSL認証した結果で必要な情報を読み込みます。

ユーザ認証ライブラリ

WebCertificateLoginModuleクラス

JAASのログインモジュールの実装クラスです。Webサーバで認証された証明書からユーザ属性を求めます。

標準ログインモジュール

WebLogoutCallbackクラス

JAASのCallbackの実装クラスです。ログアウトするユーザを格納します。

ユーザ認証ライブラリ

WebLogoutHandlerクラス

JAASのCallbackHandlerの実装クラスです。ログアウトに必要なユーザを読み込みます。

ユーザ認証ライブラリ

WebPasswordCallbackクラス

JAASのCallbackの実装クラスです。パスワードなどの認証情報を格納します。

ユーザ認証ライブラリ

WebPasswordHandlerクラス

JAASのCallbackHandlerの実装クラスです。パスワード認証に必要な情報を読み込みます。

ユーザ認証ライブラリ

WebPasswordJDBCLoginModuleクラス

JAASのログインモジュールの実装クラスです。JDBCを使ってデータベースにアクセスし，パスワード認証をします。

標準ログインモジュール

WebPasswordLDAPLoginModuleクラス

JAASのログインモジュールの実装クラスです。LDAPディレクトリサーバにバインドした結果で認証をします。

標準ログインモジュール

WebPasswordLoginModuleクラス

JAASのログインモジュールの実装クラスです。Webアプリケーションのためのパスワード認証をします。

標準ログインモジュール

WebSSOCallbackクラス

シングルサインオンライブラリが提供するJAASのCallbackの実装クラスです。WebSSOLoginModuleで必要な情報を知るために使用します。

シングルサインオンライブラリ

WebSSOHandlerクラス

シングルサインオンライブラリが提供するJAASのCallbackHandlerの実装クラスです。WebSSOLoginModuleで必要な情報を読み込みます。

シングルサインオンライブラリ

WebSSOLoginModuleクラス

JAASのログインモジュールの実装クラスです。シングルサインオンをするためにほかのログインモジュールを呼び出します。

標準ログインモジュール

例外クラス

統合ユーザ管理で使用するAPIの例外クラスです。

例外クラス

15.2　AttributeEntryクラス

説明

ユーザ管理リポジトリから取得する属性の属性名，別名（Alias），およびユーザ管理コンテキストからのサブコンテキストのタプルを表すクラスです。ユーザ認証後，指定した属性はSubjectのPublic Credentialに別名で関連づけられます。別名を指定しなかった場合は，属性名で関連づけられます。

AttributeEntryクラスのパッケージ名は，com.cosminexus.admin.authです。

形式

class AttributeEntry
{
public AttributeEntry(String attr,
                      String alias,
                      String subcontext);
public AttributeEntry(String attr,
                      String alias);
public AttributeEntry(String attr);
public AttributeEntry();

public String getAlias();
public String getAttributeName();
public String getSubcontext();
public void setAlias(String alias);
public void setAttributeName(String attr);
public void setSubcontext(String subcontext);
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

AttributeEntryコンストラクタ

AttributeEntryクラスのインスタンスを生成します。

getAliasメソッド

setAliasメソッドまたはコンストラクタで指定した別名を取得します。

getAttributeNameメソッド

setAttributeNameメソッドまたはコンストラクタで指定した属性名を取得します。

getSubcontextメソッド

setSubcontextメソッドまたはコンストラクタで指定したサブコンテキストを取得します。

setAliasメソッド

パラメタに指定された別名をオブジェクトに保管します。

setAttributeNameメソッド

パラメタに指定された属性名をオブジェクトに保管します。

setSubcontextメソッド

パラメタに指定されたサブコンテキストをオブジェクトに保管します。

AttributeEntryコンストラクタ

説明

AttributeEntryクラスのインスタンスを作るためのコンストラクタです。

形式

public AttributeEntry(String attr,
                      String alias,
                      String subcontext);

public AttributeEntry(String attr,
                      String alias);

public AttributeEntry(String attr);

public AttributeEntry();

パラメタ

attr：

リポジトリに格納されている属性名を指定します。

alias：

属性名に対応する別名（Alias）を指定します。

subcontext：

サブコンテキストを指定します。

例外

なし

getAliasメソッド

説明

setAliasメソッドまたはコンストラクタで指定した内容を取得します。値を保管していないときにgetAliasメソッドを呼び出すとnullが返却されます。

形式

public String getAlias();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getAttributeNameメソッド

説明

setAttributeNameメソッドまたはコンストラクタで指定した内容を取得します。値を保管していないときにgetAttributeNameメソッドを呼び出すとnullが返却されます。

形式

public String getAttributeName();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getSubcontextメソッド

説明

setSubcontextメソッドまたはコンストラクタで指定した内容を取得します。値を保管していないときにgetSubcontextメソッドを呼び出すとnullが返却されます。

形式

public String getSubcontext();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

setAliasメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合にsetAliasメソッドを呼び出したときは上書きされます。

形式

public void setAlias(String alias);

パラメタ

alias：

属性名に対応する別名（Alias）を指定します。

例外

なし

戻り値

なし

setAttributeNameメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合にsetAttributeNameメソッドを呼び出したときは上書きされます。

形式

public void setAttributeName(String attr);

パラメタ

attr：

属性名を指定します。

例外

なし

戻り値

なし

setSubcontextメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合にsetSubcontextメソッドを呼び出したときは上書きされます。

形式

public void setSubcontext(String subcontext);

パラメタ

subcontext：

サブコンテキストを指定します。

例外

なし

戻り値

なし

15.3　ChangeDataFailedExceptionクラス

説明

SSODataListenerインタフェースの実装クラスが，データの追加，修正，または削除に失敗したときに呼び出す例外クラスです。

ChangeDataFailedExceptionクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.eventです。

形式

class ChangeDataFailedException extends UAException
{
public ChangeDataFailedException();
public ChangeDataFailedException(String msg);
}

コンストラクタ一覧

コンストラクタ名

機能

ChangeDataFailedExceptionコンストラクタ

ChangeDataFailedExceptionクラスのインスタンスを生成します。

ChangeDataFailedExceptionコンストラクタ

説明

パラメタに指定されたエラーメッセージを使用してインスタンスを生成します。

形式

public ChangeDataFailedException();

public ChangeDataFailedException(String msg);

パラメタ

msg：

エラーメッセージを指定します。

例外

なし

15.4　DelegationLoginModuleクラス

説明

ユーザ認証ライブラリが提供するJAASのログインモジュールの実装クラスです。カスタムログインモジュールを呼び出します。

パッケージ名はcom.cosminexus.admin.auth.loginです。

15.5　LdapSSODataManagerクラス

説明

LDAPディレクトリサーバのシングルサインオン情報リポジトリに格納されている情報を参照または更新するクラスです。

LdapSSODataManagerクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.ldapです。

形式

class LdapSSODataManager
{
  public LdapSSODataManager(String realm);

  public LdapUserEnumeration listUsers()
    throws NamingException;
  public LdapUserEnumeration listUsers(String uid)
    throws NamingException;
  public SSOData getSSOData(String uid)
    throws NamingException;
  public void addSSOData(String uid,
                         SSOData ssoData)
    throws SSODataListenerException, NamingException,
    CryptoException, UnsatisfiedLinkError, SecurityException;
  public void removeSSOData(String uid)
    throws SSODataListenerException, NamingException,
    CryptoException, UnsatisfiedLinkError, SecurityException;
  public void modifySSOData(String uid,
                            SSOData ssoData)
    throws SSODataListenerException, NamingException,
    CryptoException, UnsatisfiedLinkError, SecurityException;
  public SSODataListener[] getSSODataListeners();
  public void addSSODataListener(SSODataListener listener);
  public void removeSSODataListener(SSODataListener listener);
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

LdapSSODataManagerコンストラクタ

LdapSSODataManagerクラスのインスタンスを生成します。

addSSODataメソッド

シングルサインオン用認証情報を追加します。

addSSODataListenerメソッド

シングルサインオン用認証情報リスナを登録します。

getSSODataメソッド

シングルサインオン用認証情報を取得します。

getSSODataListenersメソッド

SSODataListenerオブジェクトの配列を取得します。

listUsersメソッド（形式1）

すべてのユーザIDの一覧を取得します。

listUsersメソッド（形式2）

ユーザIDの一覧を取得します。

modifySSODataメソッド

シングルサインオン用認証情報を修正します。

removeSSODataメソッド

シングルサインオン用認証情報を削除します。

removeSSODataListenerメソッド

SSODataListenerオブジェクトを削除します。

LdapSSODataManagerコンストラクタ

説明

インスタンスを生成します。

形式

public LdapSSODataManager(String realm);

パラメタ

realm：

生成したインスタンスがアクセス対象にするレルム名を指定します。

例外

なし

addSSODataメソッド

説明

指定したユーザのシングルサインオン用認証情報を追加します。指定したユーザのシングルサインオン用認証情報がすでにある場合は，例外が発生します。

このオブジェクトに登録されているすべてのシングルサインオン用認証情報リスナのssoDataAddedメソッドが呼び出されます。

形式

public void addSSOData(String uid,
                       SSOData ssoData)
  throws SSODataListenerException, NamingException,
  CryptoException, UnsatisfiedLinkError, SecurityException;

パラメタ

uid：

ユーザIDを指定します。

ssoData：

シングルサインオン用認証情報を格納したSSODataオブジェクトを指定します。

例外

com.cosminexus.admin.auth.api.repository.event.SSODataListenerException：

他システムの認証情報更新に失敗しました。

com.cosminexus.admin.auth.CryptoException：

暗号鍵ファイルの読み込みに失敗しました。または，誤った暗号鍵ファイルを使用したためSecretDataの復号化に失敗しました。

java.lang.UnsatisfiedLinkError：

シングルサインオンライブラリの読み込みに失敗しました。

java.lang.SecurityException：

SecurityManagerが存在し，SecurityManagerのcheckReadメソッドでファイルへの読み込みアクセスが拒否されました。

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameAlreadyBoundException：

指定したユーザのシングルサインオン用認証情報がすでにあります。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

なし

addSSODataListenerメソッド

説明

シングルサインオン用認証情報を追加，修正，または削除したとき，他システムに変更を通知するためのシングルサインオン用認証情報リスナをこのオブジェクトに登録します。

形式

public void addSSODataListener(SSODataListener listener);

パラメタ

listener：

SSODataListenerオブジェクトを指定します。nullを指定した場合は何もしません。

例外

なし

戻り値

なし

getSSODataメソッド

説明

シングルサインオン用認証情報を取得します。

形式

public SSOData getSSOData(String uid)
  throws NamingException;

パラメタ

uid：

ユーザIDを指定します。

例外

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameNotFoundException：

指定したユーザIDがありません。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

シングルサインオン用認証情報を格納したSSODataオブジェクトを返却します。

getSSODataListenersメソッド

説明

このオブジェクトに登録されているSSODataListenerオブジェクトの配列を取得します。登録されていない場合は大きさ0の配列を返却します。

形式

public SSODataListener[] getSSODataListeners();

パラメタ

なし

例外

なし

戻り値

このオブジェクトに登録されているSSODataListenerオブジェクトの配列を返却します。

listUsersメソッド（形式1）

説明

すべてのユーザIDの一覧を取得します。addSSODataメソッドまたはremoveSSODataメソッドを呼び出した場合，以前に返却されたLdapUserEnumerationオブジェクトにその結果が反映されるかどうかは不定です。

形式

public LdapUserEnumeration listUsers()
  throws NamingException;

パラメタ

なし

例外

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

ユーザIDの一覧を格納したLdapUserEnumerationオブジェクトを返却します。

listUsersメソッド（形式2）

説明

ユーザIDの一覧を取得します。addSSODataメソッドまたはremoveSSODataメソッドを呼び出した場合，以前に返却されたLdapUserEnumerationオブジェクトにその結果が反映されるかどうかは不定です。

形式

public LdapUserEnumeration listUsers(String uid)
  throws NamingException;

パラメタ

uid：

ユーザIDを指定します。ユーザIDにはワイルドカード（*）を含めることができます。このパラメタを省略した場合やnullを指定した場合は，すべてのユーザIDの一覧を取得します。

例外

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

ユーザIDの一覧を格納したLdapUserEnumerationオブジェクトを返却します。

modifySSODataメソッド

説明

シングルサインオン用認証情報を修正します。指定したユーザがない場合は例外が発生します。

このオブジェクトに登録されているすべてのシングルサインオン用認証情報リスナのssoDataModifiedメソッドが呼び出されます。

このメソッドでは，SSODataオブジェクトの生成後，変更された認証情報だけが既存のものに上書きされます。

例えば，リポジトリの既存のシングルサインオン用認証情報が次に示す要素を持っていたとします。

認証情報名

SecretData

PublicData

マッピング

レルム

ユーザID

値

secret

public

RealmA

user1

RealmB

admin

このとき，次のコードで生成したSSODataオブジェクトをこのメソッドのパラメタに指定します。

SSOData data = new SSOData();
data.setMapping("RealmA", "user2");

すると，リポジトリのシングルサインオン用認証情報は次のように変更されます。

認証情報名

SecretData

PublicData

マッピング

レルム

ユーザID

値

secret

public

RealmA

user2

−

−

−

−

（凡例）−：情報がないことを示します。

形式

public void modifySSOData(String uid,
                          SSOData ssoData)
  throws SSODataListenerException, NamingException,
  CryptoException, UnsatisfiedLinkError, SecurityException;

パラメタ

uid：

ユーザIDを指定します。

ssoData：

シングルサインオン用認証情報を格納したSSODataオブジェクトを指定します。

例外

com.cosminexus.admin.auth.api.repository.event.SSODataListenerException：

他システムの認証情報更新に失敗しました。

com.cosminexus.admin.auth.CryptoException：

暗号鍵ファイルの読み込みに失敗しました。または，誤った暗号鍵ファイルを使用したためSecretDataの復号化に失敗しました。

java.lang.UnsatisfiedLinkError：

シングルサインオンライブラリの読み込みに失敗しました。

java.lang.SecurityException：

SecurityManagerが存在し，SecurityManagerのcheckReadメソッドでファイルへの読み込みアクセスが拒否されました。

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameNotFoundException：

指定したユーザIDがありません。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

なし

removeSSODataメソッド

説明

シングルサインオン用認証情報を削除します。指定したユーザがない場合は例外が発生します。

このオブジェクトに登録されているすべてのシングルサインオン用認証情報リスナのssoDataRemovedメソッドが呼び出されます。

形式

public void removeSSOData(String uid)
  throws SSODataListenerException, NamingException,
  CryptoException, UnsatisfiedLinkError, SecurityException;

パラメタ

uid：

ユーザIDを指定します。

例外

com.cosminexus.admin.auth.api.repository.event.SSODataListenerException：

他システムの認証情報更新に失敗しました。

com.cosminexus.admin.auth.CryptoException：

暗号鍵ファイルの読み込みに失敗しました。または誤った暗号鍵ファイルを使用したためSecretDataの復号化に失敗しました。

java.lang.UnsatisfiedLinkError：

シングルサインオンライブラリの読み込みに失敗しました。

java.lang.SecurityException：

SecurityManagerが存在し，SecurityManagerのcheckReadメソッドでファイルへの読み込みアクセスが拒否されました。

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameNotFoundException：

指定したユーザIDがありません。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

なし

removeSSODataListenerメソッド

説明

指定したSSODataListenerオブジェクトをこのオブジェクトから削除します。指定したオブジェクトが登録されていない場合は何もしません。

形式

public void removeSSODataListener(SSODataListener listener);

パラメタ

listener：

SSODataListenerオブジェクトを指定します。

例外

なし

戻り値

なし

15.6　LdapUserDataManagerクラス

説明

LDAPディレクトリサーバのユーザ情報リポジトリに格納されている情報を参照または更新するクラスです。

このクラスのオブジェクトごとに，addUserDataメソッド，modifyUserDataメソッド，removeUserDataメソッド，およびgetUserDataメソッドで排他制御をします。異なるオブジェクトで同時に同じリポジトリを操作しないでください。

LdapUserDataManagerクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.ldapです。

形式

class LdapUserDataManager
{
  public LdapUserDataManager(String name)
    throws ConfigError;
  public LdapUserDataManager(String name,
                             AttributeEntry[] aliases)
    throws ConfigError, FormatError;
  public LdapUserDataManager(String name,
                             String aliasesFile)
    throws ConfigError, FormatError, IOException,
           FileNotFoundException,
    SecurityException;
  public LdapUserDataManager(String name,
                             AttributeEntry[] aliases,
                             ObjectClassEntry[] ocEntries)
    throws ConfigError, FormatError;
  public LdapUserDataManager(String name,
                             AttributeEntry[] aliases,
                             String objclassesFile)
    throws ConfigError, FormatError, IOException,
           FileNotFoundException,SecurityException;
  public LdapUserDataManager(String name,
                             String aliasesFile,
                             ObjectClassEntry[] ocEntries)
    throws ConfigError, FormatError, IOException,
           FileNotFoundException,SecurityException;
  public LdapUserDataManager(String name,
                             String aliasesFile,
                             String objclassesFile)
    throws ConfigError, FormatError, IOException,
           FileNotFoundException,SecurityException;

  public LdapUserEnumeration listUsers()
    throws NamingException;
  public LdapUserEnumeration listUsers(String uid)
    throws NamingException;
  public UserData getUserData(String uid)
    throws NamingException;
  public void addUserData(String uid,
                          UserData userData)
    throws ObjectClassError, NamingException;
  public void addUserData(String uid,
                          UserData userData,
                          String name, String value)
    throws ObjectClassError, NamingException;
  public void removeUserData(String uid)
    throws NamingException;
  public void modifyUserData(String uid, UserData userData)
    throws ObjectClassError, NamingException;
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

LdapUserDataManagerコンストラクタ

LdapUserDataManagerクラスのインスタンスを生成します。

addUserDataメソッド（形式1）

ユーザを追加します。ユーザエントリのDNにuidを使用します。

addUserDataメソッド（形式2）

ユーザを追加します。ユーザエントリのDNに任意の属性を使用します。

getUserDataメソッド

ユーザ情報を取得します。

listUsersメソッド（形式1）

すべてのユーザIDの一覧を取得します。

listUsersメソッド（形式2）

ユーザIDの一覧を取得します。

modifyUserDataメソッド

ユーザ情報を修正します。

removeUserDataメソッド

ユーザを削除します。

LdapUserDataManagerコンストラクタ

説明

LdapUserDataManagerクラスのインスタンスを生成します。ユーザ属性情報やオブジェクトクラスは，オブジェクトやファイルで指定できます。また，省略もできます。

形式

public LdapUserDataManager(String name)
  throws ConfigError;

public LdapUserDataManager(String name,
                           AttributeEntry[] aliases)
  throws ConfigError, FormatError;

public LdapUserDataManager(String name,
                           String aliasesFile)
  throws ConfigError, FormatError, IOException, FileNotFoundException,
  SecurityException;

public LdapUserDataManager(String name,
                           AttributeEntry[] aliases,
                           ObjectClassEntry[] ocEntries)
  throws ConfigError, FormatError;

public LdapUserDataManager(String name,
                           AttributeEntry[] aliases,
                           String objclassesFile)
  throws ConfigError, FormatError, IOException, FileNotFoundException,
  SecurityException;

public LdapUserDataManager(String name,
                           String aliasesFile,
                           ObjectClassEntry[] ocEntries)
  throws ConfigError, FormatError, IOException, FileNotFoundException,
  SecurityException;

public LdapUserDataManager(String name,
                           String aliasesFile,
                           String objclassesFile)
  throws ConfigError, FormatError, IOException, FileNotFoundException,
  SecurityException;

パラメタ

name：

アクセス対象にするLDAPディレクトリサーバの設定名を指定します。設定名はユーザ管理のコンフィグレーションファイルで定義します。

aliases：

参照または更新するユーザ属性情報として，AttributeEntryオブジェクトの配列を指定します。指定した内容で必要な情報がない場合はFormatError例外が発生します。このパラメタを省略した場合やnullを指定した場合，属性を参照および更新できません。ただし，パスワードは更新できます。

aliasesFile：

参照または更新するユーザ属性情報として，ファイル名を指定します。指定した内容で必要な情報がない場合はFormatError例外が発生します。このパラメタを省略した場合やnullを指定した場合，属性を参照および更新できません。ただし，パスワードは更新できます。

ocEntries：

LDAPディレクトリサーバにエントリを作成したり，修正したりするときに使用するオブジェクトクラスの配列を指定します。指定した内容で必要な情報がない場合はFormatError例外が発生します。このパラメタを省略した場合やnullを指定した場合，ユーザ情報の追加や変更時にObjectClassError例外が発生します。

objclassesFile：

LDAPディレクトリサーバのエントリのオブジェクトクラスが定義されたファイル名を指定します。指定した内容で必要な情報がない場合はFormatError例外が発生します。このパラメタを省略した場合やnullを指定した場合，ユーザ情報の追加や変更時にObjectClassError例外が発生します。

例外

java.io.FileNotFoundException：

ファイルがない，ファイルではなくディレクトリである，またはそれ以外の何かの理由で開くことができません（FileInputStreamクラスのコンストラクタで例外が呼び出された場合）。

java.lang.SecurityException：

SecurityManagerが存在し，SecurityManagerのcheckReadメソッドでファイルへの読み込みアクセスが拒否されました。

java.io.IOException：

ファイルの読み込みに失敗しました。

com.cosminexus.admin.common.ConfigError：

設定名が統合ユーザ管理のコンフィグレーションファイルにありません。

com.cosminexus.admin.common.FormatError：

aliases，aliasesFile，ocEntriesおよびobjclassesFileに指定された内容で必要な情報がありません。または余分に指定されています。

addUserDataメソッド（形式1）

説明

ユーザを追加します。すでにユーザがいる場合は例外が発生します。

LDAPディレクトリサーバに作成するユーザエントリのDNには，ユーザIDの属性（uid）と値が使用されます。

ユーザエントリはベースDNの直下に作成されます。また，コンストラクタで指定したユーザ属性情報にサブコンテキストの属性が含まれる場合，サブコンテキストのエントリも作成されます。

このメソッドを呼び出した結果，サブコンテキストの更新中に例外が発生した場合，ユーザ情報は不完全に更新された状態になっています。その場合，原因を取り除いてからremoveUserDataメソッドで該当ユーザを削除し，再びこのメソッドを呼び出してください。

形式

public void addUserData(String uid,
                        UserData userData)
  throws ObjectClassError, NamingException;

パラメタ

uid：

ユーザIDを指定します。

userData：

ユーザ情報を格納したUserDataオブジェクトを指定します。

例外

com.cosminexus.admin.auth.api.repository.ldap.ObjectClassError：

LDAPディレクトリサーバにエントリを作成するために必要なオブジェクトクラスが指定されていません。

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameAlreadyBoundException：

指定したユーザIDがすでにあります。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

なし

注意事項

getUserDataメソッドで取得したUserDataオブジェクトにパスワードは格納されていません。そのため，getUserDataメソッドで取得したUserDataオブジェクトをそのままaddUserDataメソッドのパラメタに指定しても，ユーザの完全なコピーをすることはできません。パスワードを新たに設定してください。

addUserDataメソッド（形式2）

説明

ユーザを追加します。すでにユーザがいる場合は例外が発生します。

LDAPディレクトリサーバに作成するユーザエントリのDNには，このメソッドで指定した属性名と値が使用されます。

ユーザエントリはベースDNの直下に作成されます。また，コンストラクタで指定したユーザ属性情報にサブコンテキストの属性が含まれる場合，サブコンテキストのエントリも作成されます。

このメソッドを呼び出した結果，サブコンテキストの更新中に例外が発生した場合，ユーザ情報は不完全に更新された状態になっています。その場合，原因を取り除いてからremoveUserDataメソッドで該当ユーザを削除し，再びこのメソッドを呼び出してください。

形式

public void addUserData(String uid,
                        UserData userData,
                        String name,
                        String value)
  throws ObjectClassError, NamingException;

パラメタ

uid：

ユーザIDを指定します。

userData：

ユーザ情報を格納したUserDataオブジェクトを指定します。

name：

ユーザエントリのDNに使用する属性名を指定します。

value：

ユーザエントリのDNに使用する属性値を指定します。

例外

com.cosminexus.admin.auth.api.repository.ldap.ObjectClassError：

LDAPディレクトリサーバにエントリを作成するために必要なオブジェクトクラスが指定されていません。

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameAlreadyBoundException：

指定したユーザIDがすでにあります。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

なし

注意事項

getUserDataメソッドで取得したUserDataオブジェクトにパスワードは格納されていません。そのため，getUserDataメソッドで取得したUserDataオブジェクトをそのままaddUserDataメソッドのパラメタに指定しても，ユーザの完全なコピーをすることはできません。パスワードを新たに設定してください。

getUserDataメソッド

説明

ユーザ情報を取得します。取得したUserDataオブジェクトにパスワードは格納されていません。

形式

public UserData getUserData(String uid)
  throws NamingException;

パラメタ

uid：

ユーザIDを指定します。

例外

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameNotFoundException：

指定したユーザIDがありません。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

ユーザ情報を格納したUserDataオブジェクトを返却します。

listUsersメソッド（形式1）

説明

すべてのユーザIDの一覧を取得します。addUserDataメソッドまたはremoveUserDataメソッドを呼び出した場合，以前に返却されたLdapUserEnumerationオブジェクトにその結果が反映されるかどうかは不定です。

形式

public LdapUserEnumeration listUsers()
  throws NamingException;

パラメタ

なし

例外

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

ユーザIDの一覧を格納したLdapUserEnumerationオブジェクトを返却します。

listUsersメソッド（形式2）

説明

ユーザIDの一覧を取得します。addUserDataメソッドまたはremoveUserDataメソッドを呼び出した場合，以前に返却されたLdapUserEnumerationオブジェクトにその結果が反映されるかどうかは不定です。

形式

public LdapUserEnumeration listUsers(String uid)
  throws NamingException;

パラメタ

uid：

ユーザIDを指定します。ユーザIDにはワイルドカード（*）を含めることができます。このパラメタを省略した場合やnullを指定した場合は，すべてのユーザIDの一覧を取得します。

例外

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

ユーザIDの一覧を格納したLdapUserEnumerationオブジェクトを返却します。

modifyUserDataメソッド

説明

ユーザ情報を修正します。指定したユーザがない場合は例外が発生します。

このメソッドでは，UserDataオブジェクトの生成後，変更された属性だけが既存の属性に上書きされます。

例えば，リポジトリの既存のユーザ情報が次に示す属性を持っていたとします。

属性名

full name

tel

値

Sato Taro

111-1111

222-2222

このとき，次のコードで生成したUserDataオブジェクトをこのメソッドのパラメタに指定します。

UserData data = new UserData();
data.addAttribute("tel", "111-2222");

すると，リポジトリのユーザ情報は次のように変更されます。

属性名

full name

tel

値

Sato Taro

111-2222

−

（凡例）−：情報がないことを示します。

このメソッドを呼び出した結果，サブコンテキストの更新中に例外が発生した場合，ユーザ情報は不完全に更新された状態になっています。その場合，原因を取り除いてから再びこのメソッドを呼び出してください。

形式

public void modifyUserData(String uid,
                           UserData userData)
  throws ObjectClassError, NamingException;

パラメタ

uid：

ユーザIDを指定します。

userData：

ユーザ情報を格納したUserDataオブジェクトを指定します。

例外

com.cosminexus.admin.auth.api.repository.ldap.ObjectClassError：

LDAPディレクトリサーバにエントリを作成するために必要なオブジェクトクラスが指定されていません。

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameNotFoundException：

指定したユーザIDがありません。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

なし

removeUserDataメソッド

説明

ユーザを削除します。指定したユーザがない場合は例外が発生します。LDAPディレクトリサーバの，指定したユーザエントリ以下のすべてのエントリが削除されます。

このメソッドを呼び出した結果，サブコンテキストの更新中に例外が発生した場合，ユーザ情報は不完全に更新された状態になっています。その場合，原因を取り除いてから再びこのメソッドを呼び出してください。

形式

public void removeUserData(String uid)
  throws NamingException;

パラメタ

uid：

ユーザIDを指定します。

例外

javax.naming.CommunicationException：

LDAPディレクトリサーバへの接続に失敗しました。

javax.naming.NameNotFoundException：

指定したユーザIDがありません。

その他JNDIの例外：

バインドDNの指定ミスなどです。

戻り値

なし

15.7　LdapUserEnumerationインタフェース

説明

ユーザIDの一覧を参照するためのインタフェースです。

LdapUserEnumerationインタフェースのパッケージ名は，com.cosminexus.admin.auth.api.repository.ldapです。

形式

interface LdapUserEnumeration extends java.util.Enumeration
{
  public boolean hasMore()
    throws NamingException;
  public boolean hasMoreElements();
  public String next()
    throws NamingException;
  public Object nextElement();
  public close()
    throws NamingException;
}

メソッド一覧

メソッド名

機能

closeメソッド

オブジェクトをクローズします。

hasMoreメソッド

一覧に次のユーザIDがあるかどうかを判定します。

（NamingException例外の呼び出し：あり）

hasMoreElementsメソッド

一覧に次のユーザIDがあるかどうかを判定します。

（NamingException例外の呼び出し：なし）

nextメソッド

一覧の次のユーザIDを取得します。

（NamingException例外の呼び出し：あり

　戻り値の型：String型）

nextElementメソッド

一覧の次のユーザIDを取得します。

（NamingException例外の呼び出し：なし

　戻り値の型：Object型）

closeメソッド

説明

このオブジェクトをクローズして，使用中のリソースを解放します。falseを返すまでhasMoreメソッドやhasMoreElementsメソッドを呼び出し続けた場合は，このメソッドを呼び出す必要はありません。

形式

public void close()
  throws NamingException;

パラメタ

なし

例外

javax.naming.NamingException：

クローズ中にNamingException例外が発生しました。

戻り値

なし

hasMoreメソッド

説明

一覧に次のユーザIDがあるかどうかを判定します。

形式

public boolean hasMore()
  throws NamingException;

パラメタ

なし

例外

javax.naming.NamingException：

次のユーザIDがあるかどうかを判定中にNamingException例外が発生しました。

戻り値

true：

次のユーザIDがありました。

false：

次のユーザIDがありませんでした。

hasMoreElementsメソッド

説明

一覧に次のユーザIDがあるかどうかを判定します。例外が発生した場合はfalseを返却します。

形式

public boolean hasMoreElements();

パラメタ

なし

例外

なし

戻り値

true：

次のユーザIDがありました。

false：

次のユーザIDがありませんでした。

nextメソッド

説明

一覧の次のユーザIDを取得します。

形式

public String next()
  throws NamingException;

パラメタ

なし

例外

java.util.NoSuchElementException：

次のユーザIDがないときにこのメソッドを呼び出しました。

javax.naming.NamingException：

次のユーザIDを取得中にNamingException例外が発生しました。

戻り値

次のユーザIDを返却します。

nextElementメソッド

説明

一覧の次のユーザIDを取得します。nextメソッドとの違いは，NamingException例外が発生しないことと，戻り値の型はObject型であることです。戻り値のObjectオブジェクトをStringにキャストして参照してください。このメソッドを実行中にNamingException例外が発生した場合はnullを返却します。

形式

public Object nextElement();

パラメタ

なし

例外

java.util.NoSuchElementException：

次のユーザIDがないときにこのメソッドを呼び出しました。

戻り値

次のユーザIDを返却します。

15.8　LoginUtilクラス

説明

統合ユーザ管理のセッション内でログインしているユーザの有無を調べます。

LoginUtilクラスのパッケージ名は，com.cosminexus.admin.auth.utilです。

形式

class LoginUtil
{
  public static boolean check(HttpServletRequest request,
                              HttpServletResponse response);
  public static boolean check(HttpServletRequest request,
                               HttpServletResponse response,
                               String realmName);
}

メソッド一覧

メソッド名

機能

checkメソッド（形式1）

セッション内でログインしているユーザの有無を調べます。

checkメソッド（形式2）

セッション内でログインしているユーザの有無を調べます。特定のレルム内でログインしているユーザを調べるために使用します。

注意事項

このクラスのcheckメソッドを使わなくても，HttpSessionにログイン時に生成されたSubjectを関連づけ，SubjectのPrincipalの有無によってログインの有無を判断できます。この方式で確認する場合は，統合ユーザ管理の機能を使ってセッションを停止しないでください。

checkメソッド（形式1）

説明

セッション内でログインしているユーザの有無を調べます。このセッション内でどれかのレルムでログインしているユーザを検索し，一人でもログインしているユーザが見つかればtrueを返却します。

形式

public static boolean check(HttpServletRequest request,
                            HttpServletResponse response);

パラメタ

request：

JSP/Servletに渡されたHttpServletRequestのリファレンスを指定します。nullを指定した場合はNullPointerException例外が発生します。

response：

JSP/Servletに渡されたHttpServletResponseのリファレンスを指定します。nullを指定した場合はNullPointerException例外が発生します。

例外

java.lang.NullPointerException：

このメソッドのパラメタにnullを指定しました。

戻り値

true：

ログインしているユーザが見つかりました。

false：

ログインしているユーザが見つかりませんでした。

checkメソッド（形式2）

説明

セッション内でログインしているユーザの有無を調べます。realmNameは，特定のレルム内でログインしているユーザを調べるために使用します。

形式

public static boolean check(HttpServletRequest request,
                            HttpServletResponse response,
                            String realmName);

パラメタ

request：

JSP/Servletに渡されたHttpServletRequestのリファレンスを指定します。nullを指定した場合はNullPointerException例外が発生します。

response：

JSP/Servletに渡されたHttpServletResponseのリファレンスを指定します。nullを指定した場合はNullPointerException例外が発生します。

realmName：

特定のレルム内でログインしているユーザを調べる場合に指定します。nullを指定した場合はNullPointerException例外が発生します。

例外

java.lang.NullPointerException：

このメソッドのパラメタにnullを指定しました。

戻り値

true：

ログインしているユーザが見つかりました。

false：

ログインしているユーザが見つかりませんでした。

15.9　ObjectClassEntryクラス

説明

LDAPディレクトリサーバに作成するユーザエントリやサブコンテキストのオブジェクトクラスを格納するクラスです。

ObjectClassEntryクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.ldapです。

形式

class ObjectClassEntry
{
public ObjectClassEntry();
public ObjectClassEntry(String[] objectClasses);
public ObjectClassEntry(String subcontext,
                        String[] objectClasses);

public void setObjectClasses(String[] objectClasses);
public String[] getObjectClasses();
public void setSubcontext(String subcontext);
public String getSubcontext();
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

ObjectClassEntryコンストラクタ

ObjectClassEntryクラスのインスタンスを生成します。

getObjectClassesメソッド

setObjectClassesメソッドまたはコンストラクタで指定したオブジェクトクラスを取得します。

getSubcontextメソッド

setSubcontextメソッドまたはコンストラクタで指定したサブコンテキストを取得します。

setObjectClassesメソッド

オブジェクトクラスをオブジェクトに格納します。

setSubcontextメソッド

サブコンテキストをオブジェクトに格納します。

ObjectClassEntryコンストラクタ

説明

インスタンスを生成します。パラメタにオブジェクトクラスを指定すると，ユーザエントリのオブジェクトクラスとしてこのオブジェクトに格納されます。

形式

public ObjectClassEntry();

public ObjectClassEntry(String[] objectClasses);

public ObjectClassEntry(String subcontext,
                        String[] objectClasses);

パラメタ

subcontext：

サブコンテキストを指定します。このパラメタを省略した場合や，nullや空文字("")を指定した場合は，ユーザエントリを表します。AttributeEntryオブジェクトに指定するサブコンテキストと同じ文字列を指定してください。

objectClasses：

ユーザエントリのオブジェクトクラスをStringの配列で指定します。このパラメタを省略した場合やnullを指定した場合は，何も格納されません。

例外

なし

getObjectClassesメソッド

説明

setObjectClassesメソッドまたはコンストラクタで指定した値を取得します。値が格納されていない場合にgetObjectClassesメソッドを呼び出したときはnullが返却されます。

形式

public String[] getObjectClasses();

パラメタ

なし

例外

なし

戻り値

このオブジェクトに格納されている値を返却します。

getSubcontextメソッド

説明

setSubcontextメソッドまたはコンストラクタで指定した値を取得します。値が格納されていない場合にgetSubcontextメソッドを呼び出したときはnullが返却されます。

形式

public String getSubcontext();

パラメタ

なし

例外

なし

戻り値

このオブジェクトに格納されている値を返却します。

setObjectClassesメソッド

説明

オブジェクトクラスをこのオブジェクト内に格納します。すでに値が格納されている場合にsetObjectClassesメソッドを呼び出したときは上書きされます。

形式

public void setObjectClasses(String[] objectClasses);

パラメタ

objectClasses：

オブジェクトクラスをStringの配列で指定します。

例外

なし

戻り値

なし

setSubcontextメソッド

説明

サブコンテキストをこのオブジェクト内に格納します。すでに値が格納されている場合にsetSubcontextメソッドを呼び出したときは値が上書きされます。

形式

public void setSubcontext(String subcontext);

パラメタ

subcontext：

サブコンテキストを指定します。nullや空文字("")を指定した場合はユーザエントリを表します。AttributeEntryオブジェクトに設定するサブコンテキストと同じ文字列を指定してください。

例外

なし

戻り値

なし

15.10　PasswordCryptographyインタフェース

説明

入力したパスワードを暗号化するためのインタフェースです。

PasswordCryptographyインタフェースのパッケージ名は，com.cosminexus.admin.auth.securityです。

形式

interface PasswordCryptography
{
  public byte[] encrypt(byte[] plain);
}

メソッド一覧

メソッド名

機能

encryptメソッド

リポジトリに登録されている暗号化形式に合わせてパスワードを暗号化します。

encryptメソッド

説明

リポジトリに登録されている暗号化形式に合わせてパスワードを暗号化します。

形式

public byte[] encrypt(byte[] plain);

パラメタ

plain：

ログインモジュールがこのメソッドを呼び出すときに，ユーザが指定したパスワード（平文）が格納されます。

例外

なし

戻り値

暗号化した結果を返却します。

15.11　PasswordUtilクラス

説明

ユーザのパスワードを変更するためのクラスです。

PasswordUtilクラスのパッケージ名は，com.cosminexus.admin.auth.utilです。

形式

class PasswordUtil
{
  public static void changePassword(String name,
                                    String uid,
                                    String oldPassword,
                                    String newPassword)
    throws LoginException,
           SecurityException;
}

メソッド一覧

メソッド名

機能

changePasswordメソッド

パスワードを変更します。

changePasswordメソッド

説明

パラメタで指定されたname，uidおよびoldPasswordで本人の確認をして，その結果に問題がなければ新しいパスワードに変更します。シングルサインオン用認証情報が登録されている場合は，シングルサインオン情報リポジトリの内容も変更されます。

このメソッドはstaticメソッドです。

形式

public static void changePassword(String name,
                                  String uid,
                                  String oldPassword,
                                  String newPassword)
    throws LoginException,
      SecurityException;

パラメタ：

name：

認証に使用するログインモジュール（LoginContext）のアプリケーション名（name）を指定します。

uid：

変更するユーザのユーザIDを指定します。

oldPassword：

変更前のパスワードを指定します。

newPassword：

変更後のパスワードを指定します。

例外

javax.security.auth.login.LoginException：

認証に必要な情報がありません。または，ユーザID／パスワードが誤っています。

java.lang.SecurityException：

アクセス権がありません。

戻り値

なし

注意事項

シングルサインオン用認証情報は，レルム名，暗号鍵ファイル，およびシングルサインオン情報リポジトリにアクセスする情報が定義されている場合だけ変更します。それ以外の状態（シングルサインオン用の定義がない）の場合は変更しません。

シングルサインオン用認証情報が登録されている場合に，リポジトリで例外が発生したり（NamingException例外が発生），暗号化に失敗したりしたとき，このメソッドはLoginException例外で失敗します。このとき，パスワードは元の状態に戻します（ロールバックします）。また，パスワードを元に戻すのに失敗した場合もLoginException例外が発生します。例外クラスの詳細については，「15.32　例外クラス」を参照してください。

nameで指定したアプリケーションでWebPasswordLoginModuleまたはWebPasswordLDAPLoginModuleを使用していない場合，LoginException例外が発生します。

LDAPディレクトリサーバがActive Directoryの場合は，WebPasswordLDAPLoginModuleを使用しているアプリケーションをnameに指定してください。

15.12　Principalインタフェース

説明

WebPasswordLoginModuleが認証したときのユーザIDを参照するときに使用します。この製品の実装クラスでは，java.security.Principalインタフェースを継承して作成されたものを認証したSubjectに関連づけます。そのため，Principalを参照する場合は，SubjectからPrincipalを求めてgetNameメソッドで参照してください。

Principalインタフェースのパッケージ名は，java.securityです。

15.13　SSODataクラス

説明

シングルサインオン用認証情報を格納するクラスです。

SSODataクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.ldapです。

形式

class SSOData
{
  public SSOData();

  public void setSecretData(String secretData)
    throws CryptoException, UnsatisfiedLinkError, SecurityException;
  public void setPublicData(String publicData);
  public String getPublicData();
  public Enumeration getMappingRealms();
  public String getMapping(String realm);
  public void setMapping(String realm,
                         String uid);
  public void removeMapping(String realm);
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

SSODataコンストラクタ

SSODataクラスのインスタンスを生成します。

getMappingメソッド

レルム名に対応するユーザIDを取得します。

getMappingRealmsメソッド

レルム名一覧を取得します。

getPublicDataメソッド

PublicDataを取得します。

removeMappingメソッド

指定したレルムを削除します。

setMappingメソッド

接続先レルム名とユーザIDを格納します。

setPublicDataメソッド

PublicDataを格納します。

setSecretDataメソッド

SecretDataを格納します。

SSODataコンストラクタ

説明

SSODataクラスのインスタンスを生成します。

形式

public SSOData();

パラメタ

なし

例外

なし

getMappingメソッド

説明

このオブジェクトに格納されているマッピング情報から，レルム名に対応するユーザIDを取得します。指定したレルム名に対応するユーザIDがない場合はnullが返却されます。

形式

public String getMapping(String realm);

パラメタ

realm：

接続先のレルム名を指定します。

例外

なし

戻り値

ユーザIDを返却します。

getMappingRealmsメソッド

説明

このオブジェクトに格納されているマッピング情報から，レルム名一覧を取得します。

レルム名を参照する場合は，まず，このメソッドで取得したEnumerationオブジェクトに対してnextElementメソッドを実行して，Objectオブジェクトを取得します。取得したObjectオブジェクトをStringにキャストして，値を参照してください。

形式

public Enumeration getMappingRealms();

パラメタ

なし

例外

なし

戻り値

レルム名一覧を格納したEnumerationオブジェクトを返却します。

getPublicDataメソッド

説明

このオブジェクトに格納されているPublicDataを取得します。値が格納されていない場合にgetPublicDataメソッドを呼び出したときはnullが返却されます。

形式

public String getPublicData();

パラメタ

なし

例外

なし

戻り値

このオブジェクトに格納されている値を返却します。

removeMappingメソッド

説明

このオブジェクトに格納されているマッピング情報から，指定したレルムを削除します。指定したレルム名が格納されていない場合は何もしません。

形式

public void removeMapping(String realm);

パラメタ

realm：

接続先のレルム名を指定します。

例外

なし

戻り値

なし

setMappingメソッド

説明

パラメタに指定された接続先レルム名とユーザIDをこのオブジェクト内に格納します。すでに同じレルム名でユーザIDが格納されている場合は上書きされます。

形式

public void setMapping(String realm,
                       String uid);

パラメタ

realm：

接続先のレルム名を指定します。

uid：

接続先レルムのユーザIDを指定します。

例外

なし

戻り値

なし

setPublicDataメソッド

説明

パラメタに指定されたPublicDataをこのオブジェクト内に格納します。すでに値が格納されている場合は上書きされます。

形式

public void setPublicData(String publicData);

パラメタ

publicData：

PublicDataを指定します。

例外

なし

戻り値

なし

setSecretDataメソッド

説明

このオブジェクトにSecretDataを格納します。格納するとき，SecretDataは暗号化されます。すでにSecretDataが格納されている場合は上書きされます。

形式

public void setSecretData(String secretData);

パラメタ

secretData：

SecretDataを指定します。

例外

com.cosminexus.admin.auth.CryptoException：

暗号鍵ファイルを読み込めないため，SecretDataの暗号化に失敗しました。

java.lang.UnsatisfiedLinkError：

シングルサインオンライブラリの読み込みに失敗しました。

java.lang.SecurityException：

SecurityManagerが存在し，SecurityManagerのcheckReadメソッドでファイルへの読み込みアクセスが拒否されました。

戻り値

なし

15.14　SSODataEventクラス

説明

シングルサインオン用認証情報の更新内容を格納するクラスです。

SSODataEventクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.eventです。

形式

class SSODataEvent
{
  public SSODataEvent(String uid,
                      String secretData,
                      String publicData,
                      String oldSecretData,
                      String oldPublicData);

  public String getUserId();
  public String getSecretData();
  public String getPublicData();
  public String getOldSecretData();
  public String getOldPublicData();
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

SSODataEventコンストラクタ

SSODataEventクラスのインスタンスを生成します。

getOldPublicDataメソッド

変更前のPublicDataを取得します。

getOldSecretDataメソッド

変更前のSecretDataを取得します。

getPublicDataメソッド

PublicDataを取得します。

getSecretDataメソッド

SecretDataを取得します。

getUserIdメソッド

ユーザIDを取得します。

SSODataEventコンストラクタ

説明

インスタンスを生成し，パラメタに指定されたユーザID，SecretData，PublicData，変更前のSecretData，および変更前のPublicDataを格納します。

形式

public SSODataEvent(String uid,
                    String secretData,
                    String publicData,
                    String oldSecretData,
                    String oldPublicData);

パラメタ

uid：

ユーザIDを指定します。

secretData：

SecretDataを指定します。

publicData：

PublicDataを指定します。

oldSecretData：

変更前のSecretDataを指定します。

oldPublicData：

変更前のPublicDataを指定します。

例外

なし

getOldPublicDataメソッド

説明

このオブジェクトに格納されている変更前のPublicDataを取得します。

形式

public String getOldPublicData();

パラメタ

なし

例外

なし

戻り値

変更前のPublicDataを返却します。設定されていない場合はnullを返却します。

getOldSecretDataメソッド

説明

このオブジェクトに格納されている変更前のSecretDataを取得します。

形式

public String getOldSecretData();

パラメタ

なし

例外

なし

戻り値

変更前のSecretDataを返却します。設定されていない場合はnullを返却します。

getPublicDataメソッド

説明

このオブジェクトに格納されているPublicDataを取得します。

形式

public String getPublicData();

パラメタ

なし

例外

なし

戻り値

PublicDataを返却します。設定されていない場合はnullを返却します。

getSecretDataメソッド

説明

このオブジェクトに格納されているSecretDataを取得します。

形式

public String getSecretData();

パラメタ

なし

例外

なし

戻り値

SecretDataを返却します。設定されていない場合はnullを返却します。

getUserIdメソッド

説明

このオブジェクトに格納されているユーザIDを取得します。

形式

public String getUserId();

パラメタ

なし

例外

なし

戻り値

ユーザIDを返却します。

15.15　SSODataListenerインタフェース

説明

シングルサインオン用認証情報が更新されたときに，更新が通知されるシングルサインオン用認証情報リスナクラスが実装しなければならないインタフェースです。シングルサインオン用認証情報の更新に同期して他システムの認証情報を更新したい場合，このインタフェースを実装したクラスを作成してください。作成したクラスのインスタンス（オブジェクト）をLdapSSODataManagerオブジェクトにaddSSODataListenerメソッドで登録してください。

SSODataListenerインタフェースのパッケージ名は，com.cosminexus.admin.auth.api.repository.eventです。

SSODataListenerインタフェースのメソッドはLdapSSODataManagerクラスのメソッドから呼び出されます。このとき，パラメタとしてSSODataEventオブジェクトが渡されます。

SSODataListenerインタフェースの各メソッドが呼び出されるタイミング（呼び出すLdapSSODataManagerクラスのメソッド）と，パラメタで渡されるSSODataEventオブジェクトに格納される値の内容を，次の表に示します。

表15‒2　SSODataEventオブジェクトに格納される値

呼び出すLdapSSODataManagerクラスのメソッド

呼び出されるSSODataListenerインタフェースのメソッド

SSODataEventオブジェクトに格納される値

ユーザID

SecretData

PublicData

変更前のSecretData

変更前のPublicData

addSSODataメソッド

ssoDataAddedメソッド

○

○

○

−

−

modifySSODataメソッド

ssoDataModifiedメソッド

○

○

○

○

○

removeSSODataメソッド

ssoDataRemovedメソッド

○

○

○

−

−

（凡例）

○：格納されます。

−：格納されません。

ssoDataAddedメソッド，ssoDataModifiedメソッド，およびssoDataRemovedメソッドの各メソッドで問題が発生した場合，問題の原因がわかるメッセージが格納されたChangeDataFailedException例外をスローするように，クラスを作成してください。LdapSSODataManagerのメソッド呼び出し元には，それらの例外オブジェクトが格納されたSSODataListenerException例外が発生します。

形式

interface SSODataListener extends java.util.EventListener
{
  public void ssoDataAdded(SSODataEvent event)
    throws ChangeDataFailedException;
  public void ssoDataModified(SSODataEvent event)
    throws ChangeDataFailedException;
  public void ssoDataRemoved(SSODataEvent event)
    throws ChangeDataFailedException;
}

メソッド一覧

メソッド名

機能

ssoDataAddedメソッド

シングルサインオン用認証情報が追加されたときに呼び出されます。

ssoDataModifiedメソッド

シングルサインオン用認証情報が変更されたときに呼び出されます。

ssoDataRemovedメソッド

シングルサインオン用認証情報が削除されたときに呼び出されます。

ssoDataAddedメソッド

説明

シングルサインオン用認証情報が追加されたときに呼び出されます。

形式

public void ssoDataAdded(SSODataEvent event)
  throws ChangeDataFailedException;

パラメタ

event：

シングルサインオン用認証情報が格納されます。

例外

com.cosminexus.admin.auth.api.repository.event.ChangeDataFailedException：

他システムの認証情報の更新に失敗しました。

戻り値

なし

ssoDataModifiedメソッド

説明

シングルサインオン用認証情報が変更されたときに呼び出されます。

形式

public void ssoDataModified(SSODataEvent event)
  throws ChangeDataFailedException;

パラメタ

event：

シングルサインオン用認証情報が格納されます。

例外

com.cosminexus.admin.auth.api.repository.event.ChangeDataFailedException：

他システムの認証情報の更新に失敗しました。

戻り値

なし

ssoDataRemovedメソッド

説明

シングルサインオン用認証情報が削除されたときに呼び出されます。

形式

public void ssoDataRemoved(SSODataEvent event)
  throws ChangeDataFailedException;

パラメタ

event：

シングルサインオン用認証情報が格納されます。

例外

com.cosminexus.admin.auth.api.repository.event.ChangeDataFailedException：

他システムの認証情報の更新に失敗しました。

戻り値

なし

15.16　SSODataListenerExceptionクラス

説明

シングルサインオン用認証情報リスナクラスで例外が発生した場合に呼び出される例外クラスです。

SSODataListenerExceptionクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.eventです。

形式

class SSODataListenerException extends UAException
{
  public SSODataListenerException();
  public SSODataListenerException(String msg);

  public void setException(SSODataListener listener,
                           ChangeDataFailedException exception);
  public SSODataListener[] getListeners();
  public ChangeDataFailedException getException(SSODataListener listener);
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

SSODataListenerExceptionコンストラクタ

SSODataListenerExceptionクラスのインスタンスを生成します。

getExceptionメソッド

例外オブジェクトを取得します。

getListenersメソッド

例外に格納されているリスナを取得します。

setExceptionメソッド

例外オブジェクトを格納します。

SSODataListenerExceptionコンストラクタ

説明

パラメタに指定されたエラーメッセージを使用して,SSODataListenerExceptionクラスのインスタンスを生成します。

形式

public SSODataListenerException();

public SSODataListenerException(String msg);

パラメタ

msg：

エラーメッセージを指定します。

例外

なし

getExceptionメソッド

説明

このオブジェクトに格納されている例外オブジェクトを取得します。指定したリスナの例外オブジェクトが格納されていない場合はnullを返却します。

形式

public ChangeDataFailedException getException(SSODataListener listener);

パラメタ

listener：

例外が発生したリスナオブジェクトを指定します。

例外

なし

戻り値

ChangeDataFailedExceptionオブジェクトを返却します。

getListenersメソッド

説明

この例外に格納されているリスナをすべて取得します。

形式

public SSODataListener[] getListeners();

パラメタ

なし

例外

なし

戻り値

リスナオブジェクトの配列を返却します。

setExceptionメソッド

説明

例外の原因になった例外オブジェクトをこのオブジェクトに格納します。すでに同じリスナの例外が格納されていた場合は上書きします。

形式

public void setException(SSODataListener listener,
                        ChangeDataFailedException exception);

パラメタ

listener：

例外が発生したリスナオブジェクトを指定します。

exception：

リスナで発生したChangeDataFailedExceptionオブジェクトを指定します。

例外

なし

戻り値

なし

15.17　UserAttributesインタフェース

説明

ユーザ認証後，Subjectに関連づけられた属性を取得するためのインタフェースです。

UserAttributesインタフェースのパッケージ名は，com.cosminexus.admin.authです。

形式

interface UserAttributes
{
  public Object getAttribute(String alias)
    throws IllegalStateException;
  public Enumeration getAttributes(String alias)
    throws IllegalStateException;
  public void addAttribute(String alias,
                           Object attr)
    throws IllegalStateException;
  public Enumeration getAttributeNames()
    throws IllegalStateException;
  public void removeAttribute(String alias)
    throws IllegalStateException;
  public int size()
    throws IllegalStateException;
  public Enumeration getAliases()
    throws IllegalStateException;
}

メソッド一覧

メソッド名

機能

addAttributeメソッド

Subjectに属性を追加します。

getAttributeメソッド

Subjectに関連づけられた属性を取得します。

getAttributeNamesメソッド

Subjectに関連づけられた属性名の一覧を取得します。

getAttributesメソッド

Subjectに関連づけられた属性をすべて取得します。

removeAttributeメソッド

Subjectに関連づけられた属性を削除します。

sizeメソッド

Subjectに関連づけられた属性の総数を取得します。

getAliasesメソッド

推奨されていません。getAttributeNamesメソッドを使用してください。

注意事項

このオブジェクトが無効な場合に，各メソッドの呼び出しでjava.lang.IllegalStateException例外が発生します。この例外は，java.lang.RuntimeException例外を継承しているため，catchおよびthrowsに記述しなくてもコンパイルできるので注意してください。

addAttributeメソッド

説明

Subjectに属性を追加します。一つの属性に対して，複数の属性値を関連づけることができます。このメソッドを使用して関連づけた属性は，ユーザ管理リポジトリには反映されません。

形式

public void addAttribute(String alias,
                         Object attr)
  throws IllegalStateException;

パラメタ

alias：

Subjectに関連づける属性名を指定します。

attr：

Subjectに関連づける属性値を指定します。

例外

java.lang.IllegalStateException：

このオブジェクトが無効な場合に発生します。また，この例外は，java.lang.RuntimeException例外を継承しているため，catchおよびthrowsに記述しなくてもコンパイルできるので注意してください。

この例外は，次の条件で発生します。

このオブジェクトを持つSubjectがread-onlyです。

logoutメソッドによってログアウト処理されています。

戻り値

なし

getAttributeメソッド

説明

Subjectに関連づけられた属性を取得します。要求元では，返されたObjectをキャストして値を参照します。同じ属性で複数の値を持つ場合は，最初に見つかったObjectを返却します。

形式

public Object getAttribute(String alias)
  throws IllegalStateException;

パラメタ

alias：

Subjectに関連づけられた属性名を指定します。AttributeEntryクラスに属性の別名を指定した場合は，その別名を指定します。

例外

java.lang.IllegalStateException：

このオブジェクトが無効な場合に発生します。また，この例外は，java.lang.RuntimeException例外を継承しているため，catchおよびthrowsに記述しなくてもコンパイルできるので注意してください。

この例外は，次の条件で発生します。

このオブジェクトを持つSubjectがread-onlyです。

logoutメソッドによってログアウト処理されています。

戻り値

指定したSubjectに関連づけられた属性値を返却します。見つからない場合はnullを返却します。

getAttributeNamesメソッド

説明

Subjectに関連づけられた属性名の一覧を取得します。AttributeEntryクラスに属性の別名を指定した場合は，その別名を返却します。

形式

public Enumeration getAttributeNames()
  throws IllegalStateException;

パラメタ

なし

例外

java.lang.IllegalStateException：

このオブジェクトが無効である場合に発生します。また，この例外は，java.lang.RuntimeException例外を継承しているため，catchおよびthrowsに記述しなくてもコンパイルできるので注意してください。

この例外は，次の条件で発生します。

このオブジェクトを持つSubjectがread-onlyです。

logoutメソッドによってログアウト処理されています。

戻り値

Subjectに関連づけられた属性の名称の一覧を返却します。AttributeEntryクラスに属性の別名を指定した場合は，その別名を返却します。

getAttributesメソッド

説明

Subjectに関連づけられた属性をすべて取得します。要求元では，EnumerationのnextElementメソッドでObjectを取得し，キャストして値を参照します。

形式

public Enumeration getAttributes(String alias)
  throws IllegalStateException;

パラメタ

alias：

Subjectに関連づけられた属性名を指定します。AttributeEntryクラスに属性の別名を指定した場合は，その別名を指定します。

例外

java.lang.IllegalStateException：

このオブジェクトが無効である場合に発生します。また，この例外は，java.lang.RuntimeException例外を継承しているため，catchおよびthrowsに記述しなくてもコンパイルできるので注意してください。

この例外は，次の条件で発生します。

このオブジェクトを持つSubjectがread-onlyです。

logoutメソッドによってログアウト処理されています。

戻り値

指定したSubjectに関連づけられた属性値を返却します。見つからない場合はnullを返却します。

removeAttributeメソッド

説明

Subjectに関連づけられた属性を削除します。このメソッドを使用して削除した属性は，ユーザ管理リポジトリには反映されません。複数の属性値が関連づけられていてもすべて削除されます。

形式

public void removeAttribute(String alias)
  throws IllegalStateException;

パラメタ

alias：

Subjectに関連づけられた属性の名称を指定します。AttributeEntryクラスに属性の別名を指定した場合は，その別名を指定します。

例外

java.lang.IllegalStateException：

このオブジェクトが無効な場合に発生します。また，この例外は，java.lang.RuntimeException例外を継承しているため，catchおよびthrowsに記述しなくてもコンパイルできるので注意してください。

この例外は，次の条件で発生します。

このオブジェクトを持つSubjectがread-onlyです。

logoutメソッドによってログアウト処理されています。

戻り値

なし

sizeメソッド

説明

Subjectに関連づけられた属性の総数を取得します。

形式

public int size()
  throws IllegalStateException;

パラメタ

なし

例外

java.lang.IllegalStateException：

このオブジェクトが無効な場合に発生します。また，この例外は，java.lang.RuntimeException例外を継承しているため，catchおよびthrowsに記述しなくてもコンパイルできるので注意してください。

この例外は，次の条件で発生します。

このオブジェクトを持つSubjectがread-onlyです。

logoutメソッドによってログアウト処理されています。

戻り値

Subjectに関連づけられた属性の総数を返却します。

15.18　UserDataクラス

説明

ユーザ情報を格納するクラスです。

UserDataクラスのパッケージ名は，com.cosminexus.admin.auth.api.repository.ldapです。

形式

class UserData
{
  public UserData();

  public void setPassword(String password);
  public Enumeration getAttributeNames();
  public Object getAttribute(String name);
  public Enumeration getAttributes(String name);
  public void addAttribute(String name,
                           Object attr);
  public void removeAttribute(String name);
  public int size();
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

UserDataコンストラクタ

UserDataクラスのインスタンスを生成します。

addAttributeメソッド

このオブジェクトに属性値を一つ追加します。

getAttributeメソッド

このオブジェクトに格納されている内容から，指定した属性名に対応する属性値の一つを取得します。

getAttributeNamesメソッド

このオブジェクトに格納されている属性名の一覧を取得します。

getAttributesメソッド

このオブジェクトに格納されている内容から，指定した属性名に対応する属性値をすべて取得します。

removeAttributeメソッド

このオブジェクトから属性を削除します。

setPasswordメソッド

パスワードをこのオブジェクトに格納します。

sizeメソッド

このオブジェクトに格納されている属性の総数を取得します。

UserDataコンストラクタ

説明

インスタンスを生成します。

形式

public UserData();

パラメタ

なし

例外

なし

addAttributeメソッド

説明

このオブジェクトに属性値を一つ追加します。一つの属性に対して複数の属性値を関連づけることができます。

形式

public void addAttribute(String name,
                         Object attr);

パラメタ

name：

属性の名称を指定します。属性に別名がある場合は，その別名を指定します。

attr：

属性の値を指定します。

例外

なし

戻り値

なし

getAttributeメソッド

説明

このオブジェクトに格納されている内容から，指定した属性名に対応する属性値の一つを取得します。属性値が複数の場合は，それらの値のどれか一つを取得します。

形式

public Object getAttribute(String name);

パラメタ

name：

属性の名称を指定します。属性に別名がある場合は，その別名を指定します。

例外

なし

戻り値

属性値を返却します。見つからない場合はnullを返却します。

getAttributeNamesメソッド

説明

このオブジェクトに格納されている属性名の一覧を取得します。

形式

public Enumeration getAttributeNames();

パラメタ

なし

例外

なし

戻り値

属性名の一覧を格納したEnumerationオブジェクトを返却します。

getAttributesメソッド

説明

このオブジェクトに格納されている内容から，指定した属性名に対応する属性値をすべて取得します。要求元では，EnumerationのnextElementメソッドでObjectを取得し，キャストすることで値を参照します。

形式

public Enumeration getAttributes(String name);

パラメタ

name：

属性の名称を指定します。属性に別名がある場合は，その別名を指定します。

例外

なし

戻り値

属性値を格納したEnumerationオブジェクトを返却します。見つからない場合はnullを返却します。

removeAttributeメソッド

説明

このオブジェクトから属性を削除します。複数の属性値が関連づけられている場合，すべて削除されます。

形式

public void removeAttribute(String name);

パラメタ

name：

属性の名称を指定します。属性に別名がある場合は，その別名を指定します。

例外

なし

戻り値

なし

setPasswordメソッド

説明

パスワードをこのオブジェクトに格納します。すでに値が格納されている場合は上書きされます。

形式

public void setPassword(String password);

パラメタ

password：

パスワードを指定します。

例外

なし

戻り値

なし

sizeメソッド

説明

このオブジェクトに格納されている属性の総数を取得します。

形式

public int size();

パラメタ

なし

例外

なし

戻り値

属性の総数を返却します。

15.19　WebCertificateCallbackクラス

説明

Webサーバで認証した結果をCallbackHandlerからログインモジュールに渡すための実装クラスです。

WebCertificateCallbackクラスのパッケージ名は，com.cosminexus.admin.auth.callbackです。

形式

class WebCertificateCallback implements javax.security.auth.callback.Callback
{
  public WebCertificateCallback(String attrName);

  public void setSubjectID(String name);
  public String getSubjectID();
  public void setRequest(HttpServletRequest req);
  public HttpServletRequest getRequest();
  public void setResponse(HttpServletResponse res);
  public HttpServletResponse getResponse();
  public void setAttributeEntries(AttributeEntry[] aliases);
  public AttributeEntry[] getAttributeEntries();
  public void setTagID(String tid);
  public String getTagID();
  public void setTagEntry(String entry);
  public String getTagEntry();
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebCertificateCallbackコンストラクタ

WebCertificateCallbackクラスのインスタンスを生成します。

getAttributeEntriesメソッド

setAttributeEntriesメソッドで指定した属性の一覧を格納しているオブジェクトのリファレンスを取得します。

getRequestメソッド

setRequestメソッドで指定したHttpServletRequestのリファレンスを取得します。

getResponseメソッド

setResponseメソッドで指定したHttpServletResponseのリファレンスを取得します。

getSubjectIDメソッド

setSubjectIDメソッドで指定したDN名を取得します。

getTagEntryメソッド

setTagEntryで指定したentryを取得します。

getTagIDメソッド

setTagIDで指定したTagIDを取得します。

setAttributeEntriesメソッド

パラメタに指定された属性の一覧を格納しているオブジェクトのリファレンスをオブジェクトに保管します。

setRequestメソッド

パラメタに指定されたHttpServletRequestのリファレンスをオブジェクトに保管します。

setResponseメソッド

パラメタに指定されたHttpServletResponseのリファレンスをオブジェクトに保管します。

setSubjectIDメソッド

パラメタに指定されたDN名をオブジェクトに保管します。

setTagEntryメソッド

パラメタに指定されたloginタグのentry要素を保管します。

setTagIDメソッド

パラメタに指定されたloginタグのid要素を保管します。

WebCertificateCallbackコンストラクタ

説明

WebCertificateCallbackクラスのインスタンスを生成します。インスタンスはWebCertificateLoginModuleのloginメソッドの延長で生成されます。

形式

public WebCertificateCallback(String attrName);

パラメタ

attrName：

DN名から分解するときの属性名を指定します。

例外

なし

getAttributeEntriesメソッド

説明

setAttributeEntriesメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public AttributeEntry[] getAttributeEntries();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getRequestメソッド

説明

setRequestメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public HttpServletRequest getRequest();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getResponseメソッド

説明

setResponseメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public HttpServletResponse getResponse();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getSubjectIDメソッド

説明

setSubjectIDメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public String getSubjectID();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getTagEntryメソッド

説明

setTagEntryメソッドで指定した内容を取得します。APIを使用してログインした場合はnullが返却されます。

形式

public String getTagEntry();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getTagIDメソッド

説明

setTagIDメソッドで指定した内容を取得します。APIを使用してログインした場合はnullが返却されます。

形式

public String getTagID();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

setAttributeEntriesメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setAttributeEntries(AttributeEntry[] aliases);

パラメタ

aliases：

属性の一覧を格納しているオブジェクト（AttributeEntryの配列）のリファレンスを指定します。

例外

なし

戻り値

なし

setRequestメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setRequest(HttpServletRequest req);

パラメタ

req：

HttpServletRequestのリファレンスを指定します。

例外

なし

戻り値

なし

setResponseメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setResponse(HttpServletResponse res);

パラメタ

res：

HttpServletResponseのリファレンスを指定します。

例外

なし

戻り値

なし

setSubjectIDメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setSubjectID(String uid);

パラメタ

uid：

DN名を指定します。

例外

なし

戻り値

なし

setTagEntryメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。

形式

public void setTagEntry(String tid);

パラメタ

tid：

loginタグのentry要素を指定します。

例外

なし

戻り値

なし

setTagIDメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。

形式

public void setTagID(String tid);

パラメタ

tid：

loginタグのid要素を指定します。

例外

なし

戻り値

なし

15.20　WebCertificateHandlerクラス

説明

WebサーバでSSL認証した結果の情報を取得するための実装クラスです。ユーザ認証ライブラリのCallbackHandlerです。

WebCertificateHandlerクラスのパッケージ名は，com.cosminexus.admin.auth.callbackです。

形式

class WebCertificateHandler
{
  public WebCertificateHandler(HttpServletRequest request,
                               HttpServletResponse response,
                               AttributeEntry[] aliases)
    throws ParameterError;
  public WebCertificateHandler(HttpServletRequest request,
                               HttpServletResponse response,
                               String aliasesFile)
    throws ParameterError, FormatError, FileNotFoundException,
           IOException, SecurityException;

  public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException;
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebCertificateHandlerコンストラクタ

WebCertificateHandlerクラスのインスタンスを生成します。

handleメソッド

SSL認証の結果情報を取得します。

WebCertificateHandlerコンストラクタ

説明

WebCertificateHandlerクラスのインスタンスを生成します。requestおよびresponseは，必ず指定します。nullが指定されていた場合は，ParameterError例外が呼び出されます。

形式

public WebCertificateHandler(HttpServletRequest request,
                             HttpServletResponse response,
                             AttributeEntry[] aliases)
    throws ParameterError;

public WebCertificateHandler(HttpServletRequest request,
                             HttpServletResponse response,
                             String aliasesFile)
    throws ParameterError, FormatError, FileNotFoundException,
           IOException, SecurityException;

パラメタ

request：

JSP/Servlet起動時のパラメタをそのまま指定します。

response：

JSP/Servlet起動時のパラメタをそのまま指定します。

aliases：

認証が成功したときに作成するCredential（UserAttributes）に格納する情報を指定します。取得する情報がない場合はnullを指定します。この場合，Credentialは作成されません（空のUserAttributesオブジェクトが作成されます）。aliasesにはAttributeEntryオブジェクトの配列を指定します。指定した内容で必要な情報がない場合は，FormatError例外が発生します（必須の値が格納されていない，またはFormatにない値が指定されている場合）。

aliasesFile：

認証が成功したときに作成するCredential（UserAttributes）に格納する情報を指定します。取得する情報がない場合はnullを指定します。この場合，Credentialは作成されません（空のUserAttributesオブジェクトが作成されます）。aliasesFileにはファイル名を指定します。指定した内容で必要な情報がない場合は，FormatError例外が発生します（必須の値が格納されていない，またはFormatにない値が指定されている場合）。

例外

java.io.FileNotFoundException：

ファイルがない，ファイルではなくディレクトリである，または何かの理由で開くことができません（FileInputStreamクラスのコンストラクタで例外が発生した場合）。

java.lang.SecurityException：

SecurityManagerが存在し，SecurityManagerのcheckReadメソッドでファイルへの読み込みアクセスが拒否されました。

java.io.IOException：

ファイルの読み込みに失敗しました。

com.cosminexus.admin.common.ParameterError：

HttpServletRequestまたはHttpServletResponseのリファレンスが指定されていません。

com.cosminexus.admin.common.FormatError：

aliasesおよびaliasesFileに指定された内容で必要な情報がありません。または余分に指定されています。

handleメソッド

説明

WebサーバでSSL認証した結果の情報を取得して，WebCertificateCallbackオブジェクト（Callbackの実装クラス）のリファレンスに設定します。

形式

public void handle(Callback[] callbacks)
   throws IOException, UnsupportedCallbackException;

パラメタ

callbacks：

WebSSOCallbackオブジェクトのリファレンスを指定されていた場合，セッション情報を設定して返却します。このクラス以外のクラスが指定されていた場合は，コンストラクタに指定されたCallbackHandlerのhandleメソッドを呼び出します。

例外

java.io.IOException：

HttpServletRequest内にWebサーバで認証した結果がありません。

javax.security.auth.callback.UnsupportedCallbackException：

サポートしていないcallbacksリファレンスが指定されています。

戻り値

callbacksに値を設定して返却します。このメソッドでは，戻り値はありません。

15.21　WebCertificateLoginModuleクラス

説明

JAASのログインモジュールの実装クラスです。標準ログインモジュールです。Webサーバで認証された証明書からユーザ属性を求めます。

WebCertificateLoginModuleクラスのパッケージ名は，com.cosminexus.admin.auth.loginです。

15.22　WebLogoutCallbackクラス

説明

Webアプリケーションにわたってきたユーザ情報をCallbackHandlerからログインモジュールに渡すための実装クラスです。

WebLogoutCallbackクラスのパッケージ名は，com.cosminexus.admin.auth.callbackです。

形式

class WebLogoutCallback implements javax.security.auth.callback.Callback
{
  private HttpSession session = null;
  private String userID = null;

  public WebLogoutCallback();
  public void setSession(HttpSession session);
  public String getSession();
  public void setUserID(String userID);
  public String getUserID();
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebLogoutCallbackコンストラクタ

WebLogoutCallbackクラスのインスタンスを生成します。

getSessionメソッド

setSessionメソッドで指定したHttpSessionオブジェクトのリファレンスを取得します。

getUserIDメソッド

setUserIDメソッドで指定したユーザIDを取得します。

setSessionメソッド

パラメタに指定されたHttpSessionオブジェクトのリファレンスを保管します。

setUserIDメソッド

パラメタに指定されたユーザIDを保管します。

WebLogoutCallbackコンストラクタ

説明

WebLogoutCallbackクラスのインスタンスを生成します。標準ログインモジュールにWebLogoutHandlerが指定され，かつlogoutメソッドが呼ばれた場合に生成されます。

形式

public WebLogoutCallback();

パラメタ

なし

例外

なし

getSessionメソッド

説明

setSessionメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public HttpSession getSession();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getUserIDメソッド

説明

setUserIDメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public String getUserID();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

setSessionメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setSession(HttpSession session);

パラメタ

session：

HttpSessionオブジェクトのリファレンスを指定します。

例外

なし

戻り値

なし

setUserIDメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setUserID(String userID);

パラメタ

userID：

ユーザIDを指定します。

例外

なし

戻り値

なし

15.23　WebLogoutHandlerクラス

説明

ログアウトするユーザからユーザIDを取得するJAAS Callback Handlerクラスの実装です。

WebLogoutHandlerクラスのパッケージ名は，com.cosminexus.admin.auth.callbackです。

形式

class WebLogoutHandler
{
  public WebLogoutHandler(HttpSession session , String userID) throws ParameterError;
  public void handle(Callback[] callbacks)
  throws java.io.IOException, UnsupportedCallbackException;
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebLogoutHandlerコンストラクタ

WebLogoutHandlerクラスのインスタンスを生成します。

handleメソッド

ユーザIDを取得します。

WebLogoutHandlerコンストラクタ

説明

WebLogoutHandlerクラスのインスタンスを生成します。

sessionパラメタおよびuserIDパラメタは，必ず指定してください。nullが指定されていた場合は，ParameterError例外が発生します。

形式

public WebLogoutHandler(HttpSession session, String userID);

パラメタ

session：

JSP/Servlet起動時のパラメタをそのまま指定します。

userID：

ログアウトするユーザIDを指定します。

例外

com.cosminexus.admin.common.ParameterError：

HttpSessionまたはStringのリファレンスが指定されていません。

handleメソッド

説明

ユーザIDを取得し，WebLogoutCallbackオブジェクト（Callbackの実装クラス）のリファレンスに設定して統合ユーザ管理フレームワークが提供するログインモジュールに渡します。

形式

public void handle(Callback[] callbacks)
  throws UnsupportedCallbackException;

パラメタ

callbacks：

WebLogoutCallbackオブジェクトのリファレンスを指定されていた場合，ユーザ情報を設定して返却します。上記以外のオブジェクトのリファレンスが指定されていた場合は，UnsupportedCallbackException例外が発生します。

例外

java.io.IOException：

HttpServletRequest内にWebサーバで認証した結果がありません。

javax.security.auth.callback.UnsupportedCallbackException：

サポートしていないcallbacksリファレンスが指定されました。

戻り値

callbacksに値を設定して返却します。このメソッドでは，戻り値はありません。

15.24　WebPasswordCallbackクラス

説明

Webアプリケーションに渡された認証情報をCallbackHandlerからログインモジュールに渡すための実装クラスです。

WebPasswordCallbackクラスのパッケージ名は，com.cosminexus.admin.auth.callbackです。

形式

class WebPasswordCallback implements javax.security.auth.callback.Callback
{
  public static final int GETPW;
  public static final int NOPW;

  public WebPasswordCallback();

  public void setName(String name);
  public String getName();
  public void setPassword(String password);
  public String getPassword();
  public void setRequest(HttpServletRequest req);
  public HttpServletRequest getRequest();
  public void setResponse(HttpServletResponse res);
  public HttpServletResponse getResponse();
  public void setAttributeEntries(AttributeEntry[] aliases);
  public AttributeEntry[] getAttributeEntries();

  public void setOption(int option);
  public int getOption();
  public void setTagID(String tid);
  public String getTagID();
  public void setTagEntry(String entry);
  public String getTagEntry();
}

メンバ属性

GETPW：

このCallbackオブジェクトにすべての情報を設定することを要求します。

NOPW：

このCallbackオブジェクトにユーザID／パスワードを除いた情報を設定することを要求します（このとき，urlに対してforward／includeはしません）。

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebPasswordCallbackコンストラクタ

WebPasswordCallbackクラスのインスタンスを生成します。

getAttributeEntriesメソッド

setAttributeEntriesメソッドで指定した，属性の一覧が格納されたオブジェクトのリファレンスを取得します。

getNameメソッド

setNameメソッドで指定したユーザIDを取得します。

getOptionメソッド

設定されているオプションを取得します。

getPasswordメソッド

setPasswordメソッドで指定したパスワードを取得します。

getRequestメソッド

setRequestメソッドで指定したHttpServletRequestのリファレンスを取得します。

getResponseメソッド

setResponseメソッドで指定したHttpServletResponseのリファレンスを取得します。

getTagEntryメソッド

setTagEntryメソッドで指定したentryを取得します。

getTagIDメソッド

setTagIDメソッドで指定したTagIDを取得します。

setAttributeEntriesメソッド

パラメタに指定された，属性の一覧が格納されたオブジェクトのリファレンスをオブジェクトに保管します。

setNameメソッド

パラメタに指定されたユーザIDをこのオブジェクトに保管します。

setOptionメソッド

CallbackHandlerで設定する内容を要求します。

setPasswordメソッド

パラメタに指定されたパスワードをこのオブジェクトに保管します。

setRequestメソッド

パラメタに指定されたHttpServletRequestのリファレンスをこのオブジェクトに保管します。

setResponseメソッド

パラメタに指定されたHttpServletResponseのリファレンスをこのオブジェクトに保管します。

setTagEntryメソッド

CallbackHandlerメソッドで設定する内容を要求します。パラメタに指定されたloginタグのentry要素を保管します。

setTagIDメソッド

CallbackHandlerメソッドで設定する内容を要求します。パラメタに指定されたloginタグのid要素を保管します。

WebPasswordCallbackコンストラクタ

説明

WebPasswordCallbackクラスのインスタンスを生成します。インスタンスはWebPasswordLoginModuleのloginメソッドの延長で生成されます。

形式

public WebPasswordCallback();

パラメタ

なし

例外

なし

getAttributeEntriesメソッド

説明

setAttributeEntriesメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public AttributeEntry[] getAttributeEntries();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getNameメソッド

説明

setNameメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public String getName();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getOptionメソッド

説明

設定されているオプションを取り出します。値を保管していない場合はGETPWが返却されます（デフォルトは，すべての情報を設定することを要求します）。

形式

public int getOption();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getPasswordメソッド

説明

setPasswordメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public String getPassword();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getRequestメソッド

説明

setRequestメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public HttpServletRequest getRequest();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getResponseメソッド

説明

setResponseメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public HttpServletResponse getResponse();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getTagEntryメソッド

説明

setTagEntryメソッドで指定した内容を取得します。APIを使用してログインした場合はnullが返却されます。

形式

public String getTagEntry();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getTagIDメソッド

説明

setTagIDメソッドで指定した内容を取得します。APIを使用してログインした場合はnullが返却されます。

形式

public String getTagID();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

setAttributeEntriesメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setAttributeEntries(AttributeEntry[] aliases);

パラメタ

aliases：

属性の一覧を格納しているオブジェクト（AttributeEntryの配列）のリファレンスを指定します。

例外

なし

戻り値

なし

setNameメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setName(String uid);

パラメタ

uid：

ユーザIDを指定します。

例外

なし

戻り値

なし

setOptionメソッド

説明

CallbackHandlerで設定する内容を要求します。NOPWが指定された場合，ユーザID／パスワードを除いた情報を設定することをCallbackHandlerに対して要求します（このとき，urlに対してforward／includeはしません）。GETPWが指定された場合，このCallbackオブジェクトに格納できるすべての情報を設定することをCallbackHandlerに対して要求します。

すでに値を保管している情報がある場合は上書きされます。

形式

public void setOption(int option);

パラメタ

option：

GETPWまたはNOPWを設定します。

GETPW

このCallbackオブジェクトにすべての情報を設定することを要求します。

NOPW

このCallbackオブジェクトにユーザID／パスワードを除いた情報を設定することを要求します（このとき，urlに対してforward／includeはしません）。

例外

なし

戻り値

なし

setPasswordメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setPassword(String password);

パラメタ

password：

パスワードを指定します。

例外

なし

戻り値

なし

setRequestメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setRequest(HttpServletRequest req);

パラメタ

req：

HttpServletRequestのリファレンスを指定します。

例外

なし

戻り値

なし

setResponseメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setResponse(HttpServletResponse res);

パラメタ

res：

HttpServletResponseのリファレンスを指定します。

例外

なし

戻り値

なし

setTagEntryメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。

形式

public void setTagEntry(String tid);

パラメタ

tid：

loginタグのentry要素を指定します。

例外

なし

戻り値

なし

setTagIDメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。

形式

public void setTagID(String tid);

パラメタ

tid：

loginタグのid要素を指定します。

例外

なし

戻り値

なし

15.25　WebPasswordHandlerクラス

説明

Webブラウザを介して，ユーザからユーザIDおよびパスワードを取得するJAAS Callback Handlerクラスの実装です。

ユーザIDおよびパスワードは，それぞれHTTPリクエストのcom.cosminexus.admin.auth.nameパラメタおよびcom.cosminexus.admin.auth.passwordパラメタに設定してください。

WebPasswordHandlerクラスのパッケージ名は，com.cosminexus.admin.auth.callbackです。

形式

class WebPasswordHandler
{
  public WebPasswordHandler(HttpServletRequest request,
                            HttpServletResponse response,
                            AttributeEntry [] aliases,
                            String url,
                            boolean urlforward)
    throws FormatError, ParameterError;
  public WebPasswordHandler(HttpServletRequest request,
                            HttpServletResponse response,
                            String aliasesFile,
                            String url,
                            boolean urlforward)
    throws IOException, SecurityException, FormatError,
    ParameterError;

  public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException;
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebPasswordHandlerコンストラクタ

WebPasswordHandlerクラスのインスタンスを生成します。

handleメソッド

認証情報を取得します。

WebPasswordHandlerコンストラクタ

説明

WebPasswordHandlerクラスのインスタンスを生成します。

WebPasswordHandlerコンストラクタには，Credential（UserAttributes）に格納するユーザ情報（属性）をメモリで指定する場合と，ファイルで指定する場合の二つの形式があります。なお，requestパラメタおよびresponseパラメタは，必ず指定してください。nullが指定されていた場合は，ParameterError例外が発生します。

形式

public WebPasswordHandler(HttpServletRequest request,
                          HttpServletResponse response,
                          AttributeEntry[] aliases,
                          String url,
                          boolean urlforward)
  throws FormatError, ParameterError;

public WebPasswordHandler(HttpServletRequest request,
                          HttpServletResponse response,
                          String aliasesFile,
                          String url,
                          boolean urlforward)
  throws IOException, SecurityException, FormatError,
  ParameterError;

パラメタ

request：

JSP/Servlet起動時のパラメタをそのまま指定します。

response：

JSP/Servlet起動時のパラメタをそのまま指定します。

aliases：

認証が成功したときに作成するCredential（UserAttributes）に格納する情報を指定します。取得する情報がない場合はnullを指定します。このとき，Credentialは作成されません（空のUserAttributesオブジェクトが作成されます）。aliasesには，AttributeEntryオブジェクトの配列を指定します。指定した内容で必要な情報がない場合は，FormatError例外が発生します（必須の値が格納されていない，またはFormatにない値が指定されている場合）。

aliasesFile：

認証が成功したときに作成するCredential（UserAttributes）に格納する情報を指定します。取得する情報がない場合はnullを指定します。このとき，Credentialは作成されません（空のUserAttributesオブジェクトが作成されます）。aliasesFileにはファイル名を指定します。指定した内容で必要な情報がない場合は，FormatError例外が発生します（必須の値が格納されていない，またはFormatにない値が指定されている場合）。

url：

ユーザから認証情報（ユーザID／パスワード）を取得するためのURLを指定します。URLの指定がある場合，urlforwardの指定に従ってLogin FormをRequestDispatcherオブジェクトに渡します（ユーザに対して入力情報を取得する場合）。この指定が不要であればnullを指定します。また，nullの場合は，urlforwardの値を参照しません。nullの場合で，handleメソッドの延長で認証情報の取得ができない（HttpServletRequest内に格納されていない）ときは，LoginContextクラスのloginメソッドの延長でLoginException例外が発生します。

urlforward：

URLの表示方法を選択します。指定されたURLに対して，trueの場合，RequestDispatcherオブジェクトのforwardメソッドを呼び出します。falseの場合，RequestDispatcherオブジェクトに対してincludeメソッドを呼び出します。

例外

java.io.FileNotFoundException：

ファイルがない，ファイルではなくディレクトリである，または何かの理由で開くことができません（FileInputStreamクラスのコンストラクタで例外が発生した場合）。

java.lang.SecurityException：

SecurityManagerが存在し，SecurityManagerのcheckReadメソッドでファイルへの読み込みアクセスが拒否されました。

java.io.IOException：

ファイルの読み込みに失敗しました。

com.cosminexus.admin.common.ParameterError：

HttpServletRequestまたはHttpServletResponseのリファレンスが指定されていません。

com.cosminexus.admin.common.FormatError：

aliasesおよびaliasesFileに指定された内容で必要な情報がありません。または余分に指定されています。

handleメソッド

説明

認証情報を取得し，WebPasswordCallbackオブジェクト（Callbackの実装クラス）のリファレンスに設定してユーザ認証ライブラリのログインモジュールに渡します。

形式

public void handle(Callback[] callbacks)
  throws IOException, UnsupportedCallbackException;

パラメタ

callbacks：

WebPasswordCallbackオブジェクトのリファレンスを指定されていた場合，認証情報を設定して返却します。WebSSOCallbackオブジェクトのリファレンスが指定されていた場合は，セッション情報を設定して返却します。上記以外のオブジェクトのリファレンスが指定されていた場合は，UnsupportedCallbackException例外が発生します。

例外

java.io.IOException：

HttpServletRequest内にユーザID／パスワードの情報がありません。取り出すパラメタ名は，「注意事項」を参照してください。

javax.security.auth.callback.UnsupportedCallbackException：

サポートしていないcallbacksリファレンスが指定されていました。

戻り値

callbacksに値を設定して返却します。このメソッドでは，戻り値はありません。

注意事項

認証情報は，次の図に示す順序で読み込まれます。

図15‒1　認証情報の読み込み順序

HttpServletRequest内の認証情報は，次に示すパラメタ名から取得します。

com.cosminexus.admin.auth.name

ユーザが指定したユーザIDを指定します。

com.cosminexus.admin.auth.password

ユーザが指定したパスワードを指定します。

15.26　WebPasswordJDBCLoginModuleクラス

説明

JAASのログインモジュールの実装クラスです。JDBCを使ってデータベースにアクセスし，パスワード認証をします。

WebPasswordJDBCLoginModuleクラスのパッケージ名は，com.cosminexus.admin.auth.loginです。

15.27　WebPasswordLDAPLoginModuleクラス

説明

JAASのログインモジュールの実装クラスです。LDAPディレクトリサーバとバインドした結果で認証をします。

WebPasswordLDAPLoginModuleクラスのパッケージ名は，com.cosminexus.admin.auth.loginです。

15.28　WebPasswordLoginModuleクラス

説明

JAASのログインモジュールの実装クラスです。Webアプリケーションのためのパスワード認証をします。

WebPasswordLoginModuleクラスのパッケージ名は，com.cosminexus.admin.auth.loginです。

15.29　WebSSOCallbackクラス

説明

Webアプリケーションに渡されたセッション情報をCallbackHandlerからログインモジュールに渡すための実装クラスです。

WebSSOCallbackクラスのパッケージ名は，com.cosminexus.admin.auth.sso.callbackです。

形式

class WebSSOCallback implements javax.security.auth.callback.Callback
{
  public WebSSOCallback();

  public void setRequest(HttpServletRequest req);
  public HttpServletRequest getRequest();
  public void setResponse(HttpServletResponse res);
  public HttpServletResponse getResponse();
  public void setTagID(String tid);
  public String getTagID();
  public void setTagEntry(String entry);
  public String getTagEntry();

}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebSSOCallbackコンストラクタ

WebSSOCallbackクラスのインスタンスを生成します。

getRequestメソッド

setRequestメソッドで指定したHttpServletRequestのリファレンスを取得します。

getResponseメソッド

setResponseで指定したHttpServletResponseのリファレンスを取得します。

getTagEntryメソッド

setTagEntryメソッドで指定したentryを取得します。

getTagIDメソッド

setTagIDメソッドで指定したTagIDを取得します。

setRequestメソッド

パラメタに指定されたHttpServletRequestのリファレンスをオブジェクトに保管します。

setResponseメソッド

パラメタに指定されたHttpServletResponseのリファレンスをオブジェクトに保管します。

setTagEntryメソッド

パラメタに指定されたloginタグのentry要素を保管します。

setTagIDメソッド

パラメタに指定されたloginタグのid要素を保管します。

WebSSOCallbackコンストラクタ

説明

WebSSOCallbackクラスのインスタンスを生成します。インスタンスはWebSSOLoginModuleのloginメソッドの延長で生成されます。

形式

public WebSSOCallback();

パラメタ

なし

例外

なし

getRequestメソッド

説明

setRequestメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public HttpServletRequest getRequest();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getResponseメソッド

説明

setResponseメソッドで指定した内容を取得します。値を保管していない場合はnullが返却されます。

形式

public HttpServletResponse getResponse();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getTagEntryメソッド

説明

setTagEntryメソッドで指定した内容を取得します。APIを使用してログインした場合はnullが返却されます。

形式

public String getTagEntry();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

getTagIDメソッド

説明

setTagIDメソッドで指定した内容を取得します。APIを使用してログインした場合はnullが返却されます。

形式

public String getTagID();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが保管している値を返却します。

setRequestメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setRequest(HttpServletRequest req);

パラメタ

req：

HttpServletRequestのリファレンスを指定します。

例外

なし

戻り値

なし

setResponseメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。すでに値を保管している情報がある場合は上書きされます。

形式

public void setResponse(HttpServletResponse res);

パラメタ

res：

HttpServletResponseのリファレンスを指定します。

例外

なし

戻り値

なし

setTagEntryメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。

形式

public void setTagEntry(String tid);

パラメタ

tid：

loginタグのentry要素を指定します。

例外

なし

戻り値

なし

setTagIDメソッド

説明

パラメタに指定された値をこのオブジェクト内に保管します。

形式

public void setTagID(String tid);

パラメタ

tid：

loginタグのid要素を指定します。

例外

なし

戻り値

なし

15.30　WebSSOHandlerクラス

説明

Webブラウザを介して，セッションに関する情報を取得するJAAS CallbackHandlerクラスの実装です。シングルサインオンライブラリのCallbackHandlerです。

このクラスに各システムのログインモジュールに対応したCallbackHandlerのリファレンスを指定することで，各システムのCallbackHandlerの実装を変更しないでシングルサインオンの機能を実現できます。

WebSSOHandlerクラスのパッケージ名は，com.cosminexus.admin.auth.sso.callbackです。

形式

class WebSSOHandler
{
  public WebSSOHandler(HttpServletRequest request,
                       HttpServletResponse response,
                       CallbackHandler ch)
    throws ParameterError;

  public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException;
}

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名

機能

WebSSOHandlerコンストラクタ

WebSSOHandlerクラスのインスタンスを生成します。

handleメソッド

セッション情報を取得します。

WebSSOHandlerコンストラクタ

説明

WebSSOHandlerクラスのインスタンスを生成します。requestおよびresponseは，必ず指定します。nullが指定されていた場合は，ParameterError例外が発生します。

形式

public WebSSOHandler(HttpServletRequest request,
                     HttpServletResponse response,
                     CallbackHandler ch)
  throws ParameterError;

パラメタ

request：

JSP/Servlet起動時のパラメタをそのまま指定します。

response：

JSP/Servlet起動時のパラメタをそのまま指定します。

ch：

各システムのCallbackHandlerのリファレンスを指定します。不要な場合はnullを指定します。

例外

com.cosminexus.admin.common.ParameterError：

HttpServletRequestまたはHttpServletResponseのリファレンスが指定されていません。

handleメソッド

説明

セッション情報を取得して，WebSSOCallbackオブジェクト（Callbackの実装クラス）のリファレンスに設定してシングルサインオンライブラリのログインモジュールに渡します。

形式

public void handle(Callback[] callbacks)
  throws IOException, UnsupportedCallbackException;

パラメタ

callbacks：

WebSSOCallbackオブジェクトのリファレンスが指定されていた場合，セッション情報を設定して返却します。このクラス以外が指定されていた場合は，コンストラクタに指定されたCallbackHandlerのhandleメソッドを呼び出します。

例外

java.io.IOException：

各システムのCallbackHandlerのhandleメソッドでこの例外が発生しました。

javax.security.auth.callback.UnsupportedCallbackException：

この例外は，次の条件で発生します。

コンストラクタに各システムのCallbackHandlerのリファレンスを指定していません（nullの場合）。

各システムのCallbackHandlerのhandleメソッドでこの例外が発生しました。

戻り値

callbacksに値を設定して返却します。このメソッドでは，戻り値はありません。

15.31　WebSSOLoginModuleクラス

説明

JAASのログインモジュールの実装クラスです。シングルサインオンをするためにほかのログインモジュールを呼び出します。

WebSSOLoginModuleクラスのパッケージ名は，com.cosminexus.admin.auth.sso.loginです。

15.32　例外クラス

統合ユーザ管理のAPIで使用する例外クラスについて説明します。使用する例外クラスには，JAASで規定されているログインモジュールの例外クラスとこの製品で提供するAPI（JAAS以外）の例外クラスがあります。

15.32.1　JAASのログインモジュールの例外クラス

JAASで規定されているログインモジュールの例外クラスを次の表に示します。

表15‒3　JAASのログインモジュールの例外クラス一覧

項番

例外名

内容

1

javax.security.auth.login.LoginException

項番2〜4の親クラスです。コンストラクタのパラメタにmsg（java.lang.String）を持ちます。

2

javax.security.auth.login.AccountExpiredException

ユーザアカウントが期限切れであることを通知します。

3

javax.security.auth.login.CredentialExpiredException

Credentialが期限切れであることを通知します。

4

javax.security.auth.login.FailedLoginException

認証が失敗したことを通知します。

また，ユーザ認証ライブラリ／シングルサインオンライブラリのログインモジュールでは，これらの例外にエラーメッセージ文字列を設定して送出します。エラーメッセージ文字列の一覧を次の表に示します。

なお，ここで示した例外以外でも，JAASのコンフィグレーションファイルの記述に誤りがある場合にLoginContextクラスをインスタンス化すると，java.lang.SecurityException例外が発生します。その場合は，次の表のエラーメッセージ文字列を参照して，JAASのコンフィグレーションファイルの内容を修正してください。

表15‒4　ユーザ認証ライブラリ／シングルサインオンライブラリのログインモジュールの例外

例外名

エラーメッセージ文字列

発生条件

javax.security.auth.login.FailedLoginException

data not found

認証情報が，渡されたパラメタ内にありません。

WebPasswordHandlerクラスに渡したHttpServletRequest内にユーザID／パスワードが格納されていません。

invalid data

ユーザID／パスワードに誤りがあり，認証できません。

証明書から取り出したユーザIDに対応したエントリが，リポジトリ内にありません。

no data

該当セッション内で認証済みである場合に，呼び出そうとしたレルムに対応したシングルサインオン用認証情報が定義されていません。

javax.security.auth.login.LoginException

invalid parameter

Credentialを作成しようとしたときの属性名と属性の一覧の指定内容に次のような誤りがあります。

属性名が指定されていません。

同じAliasが重複して指定されました。

SQLの例外名称

JDBCを使用したアクセスに失敗しました。この例外が発生した場合は，エラーメッセージ文字列を参照して対処してください。

JNDIの例外名称

LDAPのアクセスに失敗しました。

LDAPサーバが見つかりません（CommunicationException）。

バインドDNの指定ミスです（AuthenticationException）。

not supported

未サポートのCallbackHandlerを使用しました。

WebSSOLoginModuleまたはWebPasswordLoginModuleで必要とする情報が，CallbackHandlerで求められません。

handleメソッドで例外が発生しました。この例外は，上記の条件でユーザ管理が提供するCallbackHandlerだけで発生します。

no class for xxx

WebSSOLoginModuleから呼び出すクラスが使用できません（xxxはcom.cosminexus.admin.auth.sso.loginmoduleで指定された値）。

インスタンス化ができません。JAASのログインモジュールを継承していません。また，アクセス権限がない，クラスパスが設定されていない場合があります。

config error

JAASのコンフィグレーションファイルに必要な情報が記述されていないため，処理を続行できませんでした。

標準ログインモジュールによるユーザ管理のコンフィグレーションファイルに必要な情報が記述されていないため，処理を続行できませんでした。

invalid session

HttpSessionオブジェクトに関連づけようとしましたが，HttpSessionオブジェクトが無効になりました。

crypto error

暗号化／復号化で失敗しました。

JNI機能で呼び出すシングルサインオンライブラリの共用ライブラリが見つかりません（java.library.pathの設定に問題があります）。

復号化に失敗しました（暗号化と復号化で異なる鍵を使用しています）。

no sso data

シングルサインオン用の情報がありません。

シングルサインオンをするために必要な情報が定義されていませんでした。

no principal

Principalがないため，最初に認証したユーザを特定できませんでした。

class cast error

リポジトリから取り出した型と統合ユーザ管理のコンフィグレーションファイルに指定された型が不一致です。一致するようにしてください。ua.conf（統合ユーザ管理のコンフィグレーションファイル）のcom.cosminexus.admin.auth.ldap.password.encryptを参照してください。ua.confファイルについては，「14.2.2　ua.conf（統合ユーザ管理のコンフィグレーションファイル）」を参照してください。

not found driver

JDBCを使用しました。

WebPasswordJDBCLoginModuleでドライバが見つかりません。ドライバを正しい場所に格納してください。

その他

各システムのログインモジュールで発生しました。

WebSSOLoginModuleで，ユーザ認証ライブラリ以外のログインモジュールから発生しました。

15.32.2　この製品で提供するAPIの例外クラス

この製品で提供するAPI（JAAS以外）の例外クラスは，次の図に示す階層を持ちます。

図15‒2　例外クラスの階層

例外クラス一覧を次の表に示します。

表15‒5　この製品で提供するAPIの例外クラス一覧

項番

例外名

内容

1

com.cosminexus.admin.common.UAException

項番2〜8の親クラスです。

2

com.cosminexus.admin.common.ParameterError

各APIのパラメタの指定に誤りがありました。

3

com.cosminexus.admin.common.FormatError

Formatを持つものに対する指定に誤りがありました。

4

com.cosminexus.admin.common.ConfigError

コンフィグレーションファイルの内容に誤りがありました。

5

com.cosminexus.admin.auth.api.repository.ldap.ObjectClassError

オブジェクトクラスの指定に誤りがありました。

6

com.cosminexus.admin.auth.CryptoException

暗号化／復号化に失敗しました。

7

com.cosminexus.admin.auth.api.repository.event.ChangeDataFailedException

他システムの認証情報の更新に失敗した場合に，リスナクラスが呼び出されます。

8

com.cosminexus.admin.auth.api.repository.event.SSODataListenerException

他システムの認証情報の更新に失敗した場合に，LdapSSODataManagerクラスが呼び出されます。

16　統合ユーザ管理フレームワークで使用するタグライブラリ

この章では，統合ユーザ管理フレームワークで使用するJSPタグライブラリについて説明します。

16.1　タグライブラリのタグの一覧

統合ユーザ管理フレームワークでは，JSPで統合ユーザ管理フレームワークの機能を利用してユーザ認証を実装するためのJSPタグライブラリを提供します。

統合ユーザ管理フレームワークのJSPタグライブラリをJSPにインポートするためには，次のコードをJSPに記述します。

<%@ taglib uri="http://cosminexus.com/admin/auth/uatags" prefix="ua" %>

統合ユーザ管理フレームワークが提供するJSPタグライブラリに含まれるタグの一覧を次の表に示します。

表16‒1　JSPタグライブラリのタグの一覧

タグ名

概要

<ua:attributeEntries>Entries</ua:attributeEntries>タグ

<ua:attributeEntry/>タグと協調して，ログイン時に取得するユーザ属性の一覧を指定します。

<ua:attributeEntry/>タグ

ログイン時に取得する個々のユーザ属性を指定します。

<ua:chpw/>タグ

指定したユーザのパスワードを変更します。

<ua:exception>Body</ua:exception>タグ

例外が発生した場合の処理をBodyに記述します。

<ua:getPrincipalName/>タグ

ログインしているユーザのPrincipal名（ユーザID）を取得または表示します。

<ua:getAttribute/>タグ

ログインしているユーザのユーザ属性値を取得または表示します。

<ua:getAttributes/>タグ

ログインしているユーザのユーザ属性値（Multi-Value）を取得または表示します。

<ua:getAttributeNames/>タグ

ログインしているユーザのユーザ属性名の一覧を取得または表示します。

<ua:login/>タグ

ログインします。

<ua:logout/>タグ

ログアウトします。

<ua:notLogin>Body</ua:notLogin>タグ

ログインしていない場合の処理をBodyに記述します。各JSPページの先頭に記述することで，そのJSPページを処理する前にログインしているかどうか確認できます。

この章では，各タグのタグ属性について表形式で説明しています。表中の「型」はタグ属性の結果として定義されるスクリプト変数の型を，「C/R」はタグ属性の値をJSPコンパイル時に評価するか（C），実行時に評価するか（R）を示します。

16.2　タグライブラリのタグの詳細

16.2.1　<ua:attributeEntries>Entries</ua:attributeEntries>タグ

(1)　説明

<ua:attributeEntry/>タグと協調して，ログイン時に取得するユーザ属性の一覧を指定します。取得するユーザ属性の一覧は，Entriesに<ua:attributeEntry/>タグを複数記述して指定します。

<ua:attributeEntries id="ae">
  <ua:attributeEntry attrName="cn" />
  <ua:attributeEntry attrName="sn" />
  ...
</ua:attributeEntries>

(2)　タグ属性

タグ属性を次の表に示します。

表16‒2　タグ属性（<ua:attributeEntries>Entries</ua:attributeEntries>タグ）

タグ属性

説明

型

要否

C/R

id="id"

idにAttributeEntryクラスの配列のインスタンスを識別する識別子を指定します。さらに，idはこのインスタンスを参照するスクリプト変数の変数名としても利用されます。このインスタンスはscopeタグ属性で指定されたスコープを持ちます。ここで使用する識別子は，すべてのスコープで一意の識別子にする必要があります。

AttributeEntry[]

○

C

scope="scope"

scopeにidタグ属性で指定したスクリプト変数のスコープを指定します。指定できる値は，"page"，"request"，"session"，"application"のどれかです。それぞれの値の意味は<jsp:useBean/>タグを参照してください。scopeタグ属性を省略した場合は，"page"を仮定します。

−

△

C

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

16.2.2　<ua:attributeEntry/>タグ

(1)　説明

ログイン時に取得する個々のユーザ属性を指定します。詳細については，「16.2.1　<ua:attributeEntries>Entries</ua:attributeEntries>タグ」を参照してください。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒3　タグ属性（<ua:attributeEntry/>タグ）

タグ属性

説明

型

要否

C/R

attrName="attrName"

attrNameにログイン時に取得するユーザ属性の名称を指定します。

−

○

R

alias="alias"

aliasに取得するユーザ属性の別名を指定します。

−

△

R

subCxt="subCxt"

subCxtにユーザ管理コンテキストからのサブコンテキストを指定します。

−

△

R

（凡例）

○：必要です。

△：任意です。

−：該当しません。

R：タグ属性の値を実行時に評価します。

16.2.3　<ua:chpw/>タグ

(1)　説明

指定したユーザのパスワードを変更します。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒4　タグ属性（<ua:chpw/>タグ）

タグ属性

説明

型

要否

C/R

entry="JAAS entry"

JAAS entryにJAASコンフィグレーションファイルのエントリ名を指定します。

−

○

R

userid="userid"

useridにパスワードを変更するユーザのユーザIDを指定します。

−

○※

R

useridParam="useridParam"

useridParamにパスワードを変更するユーザのユーザIDが格納されたHTTPリクエストパラメタの名前を指定します。

−

R

oldpw="oldpw"

oldpwに現在のパスワードを平文で指定します。

−

○※

R

oldpwParam="oldpwParam"

oldpwParamに現在のパスワードが格納されたHTTPリクエストパラメタの名前を指定します。

−

R

newpw="newpw"

newpwに新しいパスワードを平文で指定します。

−

○※

R

newpwParam="newpwParam"

newpwParamに新しいパスワードが格納されたHTTPリクエストパラメタの名前を指定します。

−

R

excepId="excepId"

excepIdにパスワード変更処理中に発生した例外のインスタンスを識別する識別子を指定します。このインスタンスはexcepScopeタグ属性で指定されたスコープを持ちます。ここで使用する識別子は，すべてのスコープで一意の識別子にする必要があります。excepIdタグ属性を省略した場合は，パスワード変更処理中に発生した例外は，JspException例外として<ua:chpw/>タグの外側に伝わります。

−

△

C

excepScope="scope"

scopeにexcepIdタグ属性で指定したスクリプト変数のスコープを指定します。指定できる値は，"page"，"request"，"session"，"application"のどれかです。それぞれの値の意味は，<jsp:useBean/>タグを参照してください。excepScopeタグ属性を省略した場合は，"page"を仮定します。

−

△

C

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

R：タグ属性の値を実行時に評価します。

注※

どちらかを指定します。

16.2.4　<ua:exception>Body</ua:exception>タグ

(1)　説明

指定した例外が発生した場合の処理をBodyに記述します。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒5　タグ属性（<ua:exception>Body</ua:exception>タグ）

タグ属性

説明

型

要否

C/R

name="name"

nameに<ua:login/>タグや<ua:chpw/>タグなどで指定した例外オブジェクトの識別子（excepIdタグ属性で指定）を指定します。誤った識別子を指定した場合は何もしません。

−

○

C

type="type"

typeにcatchする例外オブジェクトのクラス名を，パッケージ名を含めた完全名で指定します。catchしようとする例外オブジェクトが指定したクラス名のクラスにキャストできる場合，Bodyが実行されます。typeタグ属性を省略した場合は，"java.lang.Throwable"を仮定します。

−

△

C

proceed="proceed"

proceedにBody処理後，残りのJSPページを処理するかどうかを指定します。"true"を指定した場合（Ignore Case）は残りのJSPページを処理し，そうでない場合は残りのJSPページを処理しません。proceedタグ属性を省略した場合は，"false"を仮定します。

−

△

R

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

R：タグ属性の値を実行時に評価します。

16.2.5　<ua:getPrincipalName/>タグ

(1)　説明

ログインしているユーザのPrincipal名（ユーザID）を取得または表示します。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒6　タグ属性（<ua:getPrincipalName/>タグ）

タグ属性

説明

型

要否

C/R

id="id"

idにログインしているユーザのPrincipal名（ユーザID）を参照するインスタンスを識別する識別子を指定します。さらに，idはこのインスタンスを参照するスクリプト変数の変数名としても利用されます。このインスタンスはページスコープを持ちます。そのため，同一JSPページ内で参照できます。したがって，idには，ページスコープで一意の識別子を指定する必要があります。idタグ属性を省略した場合は，取得したPrincipal名をJSPに埋め込みます。

String

△

C

name="name"

nameに<ua:login/>タグで指定したJAAS LoginContextオブジェクトの識別子（idタグ属性で指定）を指定します。誤った識別子を指定した場合は，idスクリプト変数にnullを設定します。

−

○

R

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

R：タグ属性の値を実行時に評価します。

16.2.6　<ua:getAttribute/>タグ

(1)　説明

ログインしているユーザのユーザ属性値を取得または表示します。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒7　タグ属性（<ua:getAttribute/>タグ）

タグ属性

説明

型

要否

C/R

id="id"

idにログインしているユーザのユーザ属性値を参照するインスタンスを識別する識別子を指定します。さらに，idはこのインスタンスを参照するスクリプト変数の変数名としても利用されます。このインスタンスはページスコープを持ちます。そのため，同一JSPページ内で参照できます。したがって，idには，ページスコープで一意の識別子を指定する必要があります。idタグ属性を省略した場合は，取得したユーザ属性値をtoStringメソッドを使用してJSPに埋め込みます。

typeタグ属性の値

△

C

name="name"

nameに<ua:login/>タグで指定したJAAS LoginContextオブジェクトの識別子（idタグ属性で指定）を指定します。誤った識別子を指定した場合は，idスクリプト変数にnullを設定します。

−

○

R

attrName="attrName"

attrNameに取得するユーザ属性の属性名を指定します。指定したユーザ属性がない場合，idスクリプト変数にnullを設定します。

−

○

R

type="type"

typeに取得する属性オブジェクトのクラス名を，パッケージ名を含めた完全名で指定します。typeタグ属性を省略した場合は，"java.lang.String"を仮定します。

−

△

C

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

R：タグ属性の値を実行時に評価します。

16.2.7　<ua:getAttributes/>タグ

(1)　説明

ログインしているユーザのユーザ属性値（Multi-Value）を取得または表示します。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒8　タグ属性（<ua:getAttributes/>タグ）

タグ属性

説明

型

要否

C/R

id="id"

idにログインしているユーザのユーザ属性値（Multi-Value）を参照するインスタンスを識別する識別子を指定します。さらに，idはこのインスタンスを参照するスクリプト変数の変数名としても利用されます。このスクリプト変数の型は，java.util. Enumerationです。このインスタンスはページスコープを持ちます。そのため，同一JSPページ内で参照できます。したがって，idには，ページスコープで一意の識別子を指定する必要があります。idタグ属性を省略した場合は，取得したユーザ属性値をtoStringメソッドを使用してJSPに1行ずつ埋め込みます。

java.util.Enumeration

△

C

name="name"

nameに<ua:login/>タグで指定したJAAS LoginContextオブジェクトの識別子（idタグ属性で指定）を指定します。誤った識別子を指定した場合は，idスクリプト変数にnullを設定します。

−

○

R

attrName="attrName"

attrNameに取得するユーザ属性の属性名を指定します。指定したユーザ属性がない場合，idスクリプト変数にnullを設定します。

−

○

R

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

R：タグ属性の値を実行時に評価します。

16.2.8　<ua:getAttributeNames/>タグ

(1)　説明

ログインしているユーザのユーザ属性名の一覧を取得または表示します。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒9　タグ属性（<ua:getAttributeNames/>タグ）

タグ属性

説明

型

要否

C/R

id="id"

idにログインしているユーザのユーザ属性名の一覧を参照するインスタンスを識別する識別子を指定します。さらに，idはこのインスタンスを参照するスクリプト変数の変数名としても利用されます。このスクリプト変数の型は，java.util.Enumerationです。このインスタンスはページスコープを持ちます。そのため，同一JSPページ内で参照できます。したがって，idには，ページスコープで一意の識別子を指定する必要があります。idタグ属性を省略した場合は，取得したユーザ属性名をtoStringメソッドを使用してJSPに1行ずつ埋め込みます。

java.util.Enumeration

△

C

name="name"

nameに<ua:login/>タグで指定したJAAS LoginContextオブジェクトの識別子（idタグ属性で指定）を指定します。誤った識別子を指定した場合は，idスクリプト変数にnullを設定します。

−

○

R

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

R：タグ属性の値を実行時に評価します。

16.2.9　<ua:login/>タグ

(1)　説明

指定したJAASコンフィグレーション・エントリを使用してログインします。このとき，HTTPリクエストオブジェクトに，com.cosminexus.admin.auth.nameパラメタおよびcom.cosminexus.admin.auth.passwordパラメタが設定されている必要があります。また，<ua:login/>タグに対応した<ua:logout/>タグが記述されていない場合は，セッション切断時に暗黙的にログアウトします。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒10　タグ属性（<ua:login/>タグ）

タグ属性

説明

型

要否

C/R

id="id"

idにJAAS LoginContextクラスのインスタンスを識別する識別子を指定します。さらに，idはこのインスタンスを参照するスクリプト変数の変数名としても利用されます。このインスタンスはセッションスコープを持ちます。つまり，同一セッションに参加する異なるJSPページで参照できます。ここで使用する識別子は，すべてのスコープで一意の識別子にする必要があります。

javax.security.auth.login.LoginContext

○

C

entry="JAAS entry"

JAAS entryにJAASコンフィグレーションファイルのエントリ名を指定します。

−

○

R

attrFile="attrFile"

attrFileにユーザ管理リポジトリから取得する属性を記述したファイルのファイル名を指定します。ファイルの形式については，シングルサインオン用認証情報のCSV形式ファイルを参照してください。シングルサインオン用認証情報のCSV形式ファイルについては，「14.3　シングルサインオン用認証情報のCSV形式ファイル」を参照してください。

−

△※

R

attrEntName="attrEntName"

attrEntNameに<ua:attributeEntries>タグのidタグ属性で指定した識別子を指定します。

−

R

excepId="excepId"

excepIdにログイン処理中に発生した例外のインスタンスを識別する識別子を指定します。このインスタンスはexcepScopeタグ属性で指定されたスコープを持ちます。ここで使用する識別子は，すべてのスコープで一意の識別子にする必要があります。excepIdタグ属性を省略した場合は，ログイン処理中に発生した例外はJspException例外として<ua:login/>タグの外側に伝わります。

−

△

C

excepScope="scope"

scopeにexcepIdタグ属性で指定したスクリプト変数のスコープを指定します。指定できる値は，"page"，"request"，"session"，"application"のどれかです。それぞれの値の意味は，<jsp:useBean/>タグを参照してください。excepScopeタグ属性を省略した場合は，"page"を仮定します。

−

△

C

（凡例）

○：必要です。

△：任意です。

−：該当しません。

C：タグ属性の値をJSPコンパイル時に評価します。

R：タグ属性の値を実行時に評価します。

注※

指定する場合はどちらかを指定します。

16.2.10　<ua:logout/>タグ

(1)　説明

ログアウトします。事前にログインしていない場合は，何もしません。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒11　タグ属性（<ua:logout/>タグ）

タグ属性

説明

型

要否

C/R

name="name"

nameに<ua:login/>タグで指定したJAAS LoginContextオブジェクトの識別子（idタグ属性で指定）を指定します。誤った識別子を指定した場合は，何もしません。

−

○

R

（凡例）

○：必要です。

−：該当しません。

R：タグ属性の値を実行時に評価します。

16.2.11　<ua:notLogin>Body</ua:notLogin>タグ

(1)　説明

ログインしていない場合の処理をBodyに記述します。各JSPページの先頭に記述することで，そのJSPページを処理する前にログインしているかどうかを確認できます。

(2)　タグ属性

タグ属性を次の表に示します。

表16‒12　タグ属性（<ua:notLogin>Body</ua:notLogin>タグ）

タグ属性

説明

型

要否

C/R

realm="realm"

realmにレルム名を指定します。指定したレルムにログインしていない場合，Bodyを実行します。realmタグ属性を省略した場合は，どのレルムにもログインしていない場合にBodyを実行します。

−

△

R

proceed="proceed"

proceedにBody処理後，残りのJSPページを処理するかどうかを指定します。"true"を指定した場合（Ignore Case）は残りのJSPページを処理し，そうでない場合は残りのJSPページを処理しません。proceedタグ属性を省略した場合は，"false"を仮定します。

−

△

R

（凡例）

△：任意です。

−：該当しません。

R：タグ属性の値を実行時に評価します。

17　EJBクライアントアプリケーションの実装で使用するAPI

この章では，EJBクライアントアプリケーションで使用するAPIのうち，セキュリティに関するクラスについて説明します。

17.1　LoginInfoManagerクラス

説明

J2EEサーバに設定したユーザとパスワードを使って，セキュリティ認証を実行します。

セキュリティ認証を実行するJ2EEサーバについて説明します。

ejbserver.security.service.urlプロパティを指定している場合

セキュリティ認証は，ejbserver.security.service.urlプロパティに指定したCORBAネーミングサービスに接続しているJ2EEサーバのうち，ejbserver.serverNameプロパティで指定したサーバ名称と一致するJ2EEサーバで実行されます。

ejbserver.security.service.urlプロパティは，java.naming.provider.urlプロパティに指定したCORBAネーミングサービスに接続していないJ2EEサーバでセキュリティ認証を実行する場合に，指定してください。

ejbserver.security.service.urlプロパティを指定していない場合

セキュリティ認証は，java.naming.provider.urlプロパティに指定したCORBAネーミングサービスに接続しているJ2EEサーバのうち，ejbserver.serverNameプロパティで指定したサーバ名称と一致するJ2EEサーバで実行されます。

JNDIラウンドロビン検索機能やCTM連携機能などを使った負荷分散構成の場合は，セキュリティ認証を実行できるJ2EEサーバが複数存在することになります。この場合，構成するJ2EEサーバすべてに同じユーザ，および同じロールの情報を設定した上で，セキュリティ認証用のJ2EEサーバを一つ決定してください。

各プロパティの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「12.　Javaアプリケーションで使用するファイル」を参照してください。EJBクライアントアプリケーションでのセキュリティの実装方法については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.6　EJBクライアントアプリケーションでのセキュリティの実装」を参照してください。

LoginInfoManagerクラスのパッケージ名は，com.hitachi.software.ejb.security.base.authenticationです。

メソッド一覧

メソッド名

機能

getLoginInfoManagerメソッド

LoginInfoManagerオブジェクトを取得します。

loginメソッド

J2EEサーバにログインします。

logoutメソッド

J2EEサーバからログアウトします。

注意事項

LoginInfoManagerクラスのメソッドを使用する場合は次の点に注意してください。

LoginInfoManagerクラスのメソッドは，EJBクライアントアプリケーションから発行することを推奨しています。JSP，サーブレット，またはEJB内から発行した場合，RunAs機能によって設定した情報が，リクエスト単位で削除されます。

loginメソッドを発行してJ2EEサーバを呼び出したあとは，必ずlogoutメソッドを発行してください。

loginメソッドおよびlogoutメソッドを入れ子で発行しないでください。logoutメソッドを発行しないでloginメソッドを連続で発行すると，1回目のloginメソッドで指定した情報が2回目のloginメソッドによって上書きされます。

getLoginInfoManagerメソッド

説明

LoginInfoManagerオブジェクトを取得します。

形式

public static LoginInfoManager getLoginInfoManager();

パラメタ

なし

例外

なし

戻り値

LoginInfoManagerオブジェクトを返却します。

loginメソッド

説明

J2EEサーバにログインします。

形式

public final boolean login(String username,
                           String password)
  throws NotFoundServerException,InvalidUserNameException,
         InvalidPasswordException;

パラメタ

username：

ユーザ名（plain text）を指定します。

password：

パスワード（plain text）を指定します。

例外

com.hitachi.software.ejb.security.base.authentication.NotFoundServerException：

J2EEサーバが見つかりません。

com.hitachi.software.ejb.security.base.authentication.InvalidUserNameException：

指定されたユーザ名が見つかりません。

com.hitachi.software.ejb.security.base.authentication.InvalidPasswordException：

指定したパスワードが不正です。

戻り値

true：

ログインに成功しました。

false：

ログインに失敗しました。

logoutメソッド

説明

J2EEサーバからログアウトします。

形式

public final void logout();

パラメタ

なし

例外

なし

戻り値

なし

18　APIによる直接接続を使用する負荷分散機の制御で使用するファイル

この章では，APIによる直接接続を使用する負荷分散機を，運用管理機能から制御する場合に使用するファイルの形式，格納先，機能，指定できるキーなどについて説明します。

18.1　APIによる直接接続を使用する負荷分散機の制御で使用するファイルの一覧

APIによる直接接続を使用する負荷分散機の制御で使用するファイルの一覧を次の表に示します。

表18‒1　APIによる直接接続を使用する負荷分散機の制御で使用するファイルの一覧

ファイル名

分類

概要

参照先

lb.properties

負荷分散機定義プロパティファイル

負荷分散機へのアクセスに必要な接続情報を設定します。

18.2.1

<LB接続情報の識別名>.properties

仮想サーバマネージャ側の負荷分散機接続設定プロパティファイル

仮想サーバマネージャに，負荷分散機へのアクセスに必要な接続情報を設定します。

18.2.2

tierlb.properties

ティア側の負荷分散機接続設定プロパティファイル

負荷分散機へのアクセスに必要な接続情報をティアに設定します。

18.2.3

18.2　APIによる直接接続を使用する負荷分散機の制御で使用するファイルの詳細

18.2.1　lb.properties（負荷分散機定義プロパティファイル）

(1)　形式

Javaプロパティ形式です。

(2)　ファイルの格納先

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥config

UNIXの場合

/opt/Cosminexus/manager/config

(3)　機能

負荷分散機へのアクセスに必要な接続情報を設定します。Application Serverから負荷分散機を制御する場合に使用します。

(4)　設定できるキー

APIを使用した直接接続を使用する負荷分散機で設定できるキーとデフォルトを次に示します。

キー名称

内容

デフォルト

lb.list

負荷分散機の管理IPアドレスをドット記法（xxx.xxx.xxx.xxx）で設定します。xxxには0〜255の整数を指定します。なお，複数の負荷分散機を使用する場合は，コンマ「,」で区切り，複数の管理IPアドレスを設定します。

なし

lb.connect_type.<IPアドレス>※1※2

負荷分散機への接続形態を設定します。

「API」を指定してください。

何も指定しない場合，jp1_nc(旧VR互換)が指定されます。

jp1_nc

lb.enable_passwd.<IPアドレス>

負荷分散機に設定したPrivileged EXECレベルに必要なパスワードを負荷分散機ごとに設定します。

なお，このプロパティはACOSの場合に設定します。

なし

lb.API.user.<IPアドレス>

負荷分散機にAPIでログインするときのユーザ名を設定します。

なし

lb.API.passwd.<IPアドレス>

負荷分散機にAPIでログインするときのユーザのパスワードを設定します。

なし

lb.API.port.<IPアドレス>

負荷分散機のポート番号を設定します。指定できる値は1〜65534の整数です。範囲外の値を指定した場合，デフォルト値が設定されます。

443

lb.API.cookie_persistence_template.<Webシステム名>.<IPアドレス>

負荷分散機で作成したcookieパーシステンステンプレート名を設定します。

なし

lb.API.timeout.<IPアドレス>

APIメソッド実行時のタイムアウト時間（単位：秒）を設定します。

このキーで設定した時間内に，APIメソッドが完了しない場合は，Smart Composer機能のコマンド（cmx_build_systemなど）がタイムアウトエラーで異常終了します。

なお，指定できる値は1〜2147483の整数です。範囲外の値を指定した場合，デフォルト値が設定されます。

10

lb.API.protocol.<IPアドレス>

負荷分散機との通信で使用するプロトコルを指定します。

http：通信プロトコルにHTTPを使用します。

https：通信プロトコルにHTTPSを使用します。

https

javax.net.ssl.trustStore

負荷分散機の接続形態にAPIを指定した場合に，負荷分散機のサーバ証明書を登録したトラストストアを指定します。Javaの仕様に従って指定してください。

cacerts（JDKのデフォルトのトラストストア）

javax.net.ssl.trustStorePassword

負荷分散機の接続形態にAPIを指定した場合に，負荷分散機のサーバ証明書を登録したトラストストアのパスワードを指定します。Javaの仕様に従って指定してください。

cacerts（Javaの信頼を得たデフォルトのキーストアが使われる）

注※1

lb.listに指定した負荷分散機の管理IPアドレスを指定します。

注※2

指定できる値以外の値が指定された場合は，cmx_test_lbコマンド，cmx_build_systemコマンド，cmx_delete_systemコマンド，cmx_start_targetコマンド，およびcmx_stop_targetコマンドを実行したときにエラーになるので注意してください。

(5)　記述例

lb.list=192.168.10.100
lb.enable_passwd.192.168.10.100=adminpw

lb.connect_type.192.168.10.100=API
lb.API.user.192.168.10.100=user01
lb.API.passwd.192.168.10.100=user01pw
#lb.API.port.192.168.10.100=443
#lb.API.cookie_persistence_template.MyWebSystem.192.168.10.100=SC_COOKIE_TEMPNAME
#lb.API.timeout.192.168.10.100=10
javax.net.ssl.trustStore=C:¥¥work¥¥ACOS.keystore
javax.net.ssl.trustStorePassword=keystore_pass

(6)　注意事項

このファイルには，パスワードなどの情報が含まれているため，適切にファイルのアクセス権を設定してください。

Management Server起動中に設定ファイルを更新した場合，Management Serverの再起動後に更新情報が反映されます。

このファイルを更新した場合，またはManagement Serverマシンと負荷分散機との接続構成を変更した場合は，cmx_test_lbコマンドを使用して，負荷分散機への接続を確認してください。cmx_test_lbコマンドの詳細については，マニュアル「アプリケーションサーバリファレンス コマンド編」の「8.　Smart Composer機能で使用するコマンド」を参照してください。負荷分散機へ接続できない場合は，cmx_test_lbコマンドが出力したメッセージを基に，負荷分散機の設定および簡易構築定義ファイルの負荷分散機の定義（<load-balancer>タグの定義）の設定内容を確認してください。負荷分散機の設定については，「8.5　Management Server（Smart Composer機能）での負荷分散機の接続情報の設定」を，簡易構築定義ファイルの負荷分散機の定義（<load-balancer>タグの定義）については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.7.5　負荷分散機へ接続する環境を設定する」を参照してください。

18.2.2　<LB接続情報の識別名>.properties（仮想サーバマネージャ側の負荷分散機接続設定プロパティファイル）

(1)　形式

J2SEのプロパティファイル形式です。

(2)　ファイルの格納先

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥vmi¥config¥lb¥

UNIXの場合

/opt/Cosminexus/manager/vmi/config/lb/

(3)　機能

仮想サーバマネージャに，負荷分散機へのアクセスに必要な接続情報を設定します。

(4)　指定できるキー

指定できるキーを次に示します。なお「省略値」とは，キーの指定がない場合に仮定される値です。「VR」とは，キーが導入・変更されたアプリケーションサーバのバージョンです。

キー名称

内容

指定可能値

省略値

VR

lb.type

負荷分散機の種類を指定します。

指定できる値を次に示します。

BIG-IPv9

BIG-IPv10.1

BIG-IPv10.2

BIG-IPv11

ACOS

なし

08-53

lb.host

接続する負荷分散機の管理用IPアドレスを指定します。

IPv4ドット記法

なし

08-53

lb.protocol

負荷分散機への接続方式を指定します。

API：

APIを使用して接続します。

指定できる値を次に示します。

API

なし

08-53

lb.port

負荷分散機で使用するポート番号を指定します。

指定できる値を次に示します。

API

1〜65534

API：443

08-53

lb.user

負荷分散機に接続するときのユーザ名を指定します。

任意の文字列を指定します。

なし

08-53

lb.password

負荷分散機に接続するときのユーザのパスワードを指定します。

任意の文字列を指定します。

空文字

08-53

lb.persistence.cookie-insert.templatename

負荷分散機で作成したcookieパーシステンステンプレート名を指定します。

このキーの指定は，次の条件を満たす場合に有効になります。

＜LB接続情報の識別名＞.propertiesまたはtierlb.propertiesでlb.type=ACOSおよびlb.protocol=APIを指定

tier.propertiesでlb.persistence.method=cookie-insertを指定

英数字またはアンダースコア「_」で指定した1文字以上31文字以内の文字列を指定します。

なし

08-70

lb.timeout

負荷分散機へのログイン処理時，またはコマンド送信時のタイムアウト時間（単位：秒）を指定します。

このキーで設定した時間内に，負荷分散機へのログイン処理，または負荷分散機に対して発行したCLIコマンドが完了しない場合は，vmiunitコマンドがタイムアウトエラーで異常終了します。

1〜2147483

10

08-53

lb.API.protocol

負荷分散機との通信で使用するプロトコルを指定します。

http：

通信プロトコルにHTTPを使用します。

https：

通信プロトコルにHTTPSを使用します。

指定できる値を次に示します。

http

https

https

09-00

lb.ACOS.privilegedexec.password

ACOS上に設定したPrivileged EXECレベルに必要なパスワードを指定します。

このキーの指定は，負荷分散機の種類がACOSの場合だけ有効になります。

任意の文字列を指定します。

なし

08-53

javax.net.ssl.trustStore

負荷分散機のサーバ証明書を登録したトラストストアを指定します。

このキーの指定は，＜LB接続情報の識別名＞.propertiesまたはtierlb.propertiesで，次に示す値がすべて指定されている場合に，有効になります。

lb.type=ACOS

lb.protocol=API

lb.API.protocol=https

Javaの仕様に従います。

cacerts（JDKのデフォルトのトラストストア）

08-70

javax.net.ssl.trustStorePassword

負荷分散機のサーバ証明書を登録したトラストストアのパスワードを指定します。

このキーの指定は，＜LB接続情報の識別名＞.propertiesまたはtierlb.propertiesで，次に示す値がすべて指定されている場合に，有効になります。

lb.type=ACOS

lb.protocol=API

lb.API.protocol=https

Javaの仕様に従います。

cacerts（Javaの信頼を得たデフォルトのキーストアが使われる）

08-70

(5)　注意事項

このファイルには，パスワードなどの情報が含まれているため，適切にファイルのアクセス権を設定してください。

仮想サーバマネージャ起動中に設定ファイルを更新した場合，仮想サーバマネージャの再起動後に更新情報が反映されます。

18.2.3　tierlb.properties（ティア側の負荷分散機接続設定プロパティファイル）

(1)　形式

J2SEのプロパティファイル形式です。

(2)　ファイルの格納先

Windowsの場合

<定義ディレクトリ>¥<ティア別定義ディレクトリ>¥vmi¥

UNIXの場合

<定義ディレクトリ>/<ティア別定義ディレクトリ>/vmi/

次のテンプレートファイルをコピーして利用してください。

Windowsの場合

<Application Serverのインストールディレクトリ>¥manager¥vmi¥templates¥tierlb.properties

UNIXの場合

/opt/Cosminexus/manager/vmi/templates/tierlb.properties

(3)　機能

負荷分散機へのアクセスに必要な接続情報をティアに設定します。

(4)　指定できるキー

指定できるキーを次に示します。なお「省略値」とは，キーの指定がない場合に仮定される値または動作です。「VR」とは，キーが導入・変更されたアプリケーションサーバのバージョンです。

キー名称

内容

指定可能値

省略値

VR

lb.type

負荷分散機の種類を指定します。

指定できる値を次に示します。

BIG-IPv9

BIG-IPv10.1

BIG-IPv10.2

BIG-IPv11

ACOS

なし

08-53

lb.host

接続する負荷分散機の管理用IPアドレスを指定します。

IPv4ドット記法

なし

08-53

lb.protocol

負荷分散機への接続方式を指定します。

API：

APIを使用して接続します。

指定できる値を次に示します。

API

なし

08-53

lb.port

負荷分散機で使用するポート番号を指定します。

指定できる値を次に示します。

API

1〜65534

API：443

08-53

lb.user

負荷分散機に接続するときのユーザ名を指定します。

任意の文字列を指定します。

なし

08-53

lb.password

負荷分散機に接続するときのユーザのパスワードを指定します。

任意の文字列を指定します。

空文字

08-53

lb.persistence.cookie-insert.templatename

負荷分散機で作成したcookieパーシステンステンプレート名を指定します。

このキーの指定は，次の条件を満たす場合に有効になります。

＜LB接続情報の識別名＞.propertiesまたはtierlb.propertiesでlb.type=ACOSおよびlb.protocol=APIを指定

tier.propertiesでlb.persistence.method=cookie-insertを指定

英数字またはアンダースコア「_」で指定した1文字以上31文字以内の文字列

なし

08-70

lb.timeout

負荷分散機へのログイン処理時，またはコマンド送信時のタイムアウト時間（単位：秒）を指定します。

このキーで設定した時間内に，負荷分散機へのログイン処理，または負荷分散機に対して発行したCLIコマンドが完了しない場合は，vmiunitコマンドがタイムアウトエラーで異常終了します。

1〜2147483

10

08-53

lb.API.protocol

負荷分散機との通信で使用するプロトコルを指定します。

http：

通信プロトコルにHTTPを使用します。

https：

通信プロトコルにHTTPSを使用します。

指定できる値を次に示します。

http

https

https

09-00

lb.ACOS.privilegedexec.password

ACOS上に設定したPrivileged EXECレベルに必要なパスワードを指定します。

このキーの指定は，負荷分散機の種類がACOSの場合だけ有効になります。

任意の文字列を指定します。

なし

08-53

javax.net.ssl.trustStore

負荷分散機のサーバ証明書を登録したトラストストアを指定します。

このキーの指定は，＜LB接続情報の識別名＞.propertiesまたはtierlb.propertiesで，次に示す値がすべて指定されている場合に，有効になります。

lb.type=ACOS

lb.protocol=API

lb.API.protocol=https

Javaの仕様に従う

cacerts（JDKのデフォルトのトラストストア）

08-70

javax.net.ssl.trustStorePassword

負荷分散機のサーバ証明書を登録したトラストストアのパスワードを指定します。

このキーの指定は，＜LB接続情報の識別名＞.propertiesまたはtierlb.propertiesで，次に示す値がすべて指定されている場合に，有効になります。

lb.type=ACOS

lb.protocol=API

lb.API.protocol=https

Javaの仕様に従う

cacerts（Javaの信頼を得たデフォルトのキーストアが使われる）

08-70

19　セキュリティ管理機能で出力されるメッセージ

この章では，セキュリティ管理機能で出力されるメッセージについて説明します。

19.1　メッセージの記述形式

この章でのメッセージの記述形式を次に示します。

XXXXXnnnn-Y

メッセージテキスト

意味

英文のメッセージの意味

要因

メッセージが出力された要因

対処

ユーザが実施する対処

次に，各項目について説明します。

XXXXXnnnn

メッセージIDを表します。

メッセージIDを構成する要素について，次に説明します。

XXXXX

メッセージを出力した機能を示すID（プリフィックス）を表します。Webサービスセキュリティ機能で出力されるメッセージのプリフィックスを次に示します。

KDCGF

SOAPメッセージを受信中にエラーが発生した場合に出力されます。

KDCGK

共通鍵生成コマンドの処理が正常に終了した場合，または実行中にエラーが発生した場合に出力されます。

KDCGS

Webサービスセキュリティ機能定義ファイルの読み込み中にエラーが発生した場合に出力されます。

KDCGW

SOAPメッセージを送信中にエラーが発生した場合に出力されます。

KEOS

Managerを使用した構築・運用・保守でエラーが発生した場合に出力されます。

KEXS

XML Security - Coreでエラーが発生した場合に出力されます。

nnnn

メッセージを出力したプログラムで管理するメッセージ番号を表します。それぞれのメッセージには4けたの固有の番号が付いています。

Y

メッセージの種別を表します。メッセージの種別は英字1文字で示します。

メッセージ種別には次の種類があります。

E

エラーが発生した場合に出力されるメッセージであることを示します。このメッセージ種別を持つメッセージが出力された場合の対処方法については，19.2以降のメッセージの対処を参照してください。

I

処理が終了したことを通知するメッセージであることを示します。このメッセージ種別を持つメッセージが出力された場合，処理は正常に終了しているので，対処は必要ありません。

W

警告を通知するメッセージであることを示します。このメッセージ種別を持つメッセージが出力された場合の対処方法については，19.2以降のメッセージの対処を参照してください。

メッセージテキスト

Webサービスセキュリティ機能で出力されるメッセージのメッセージテキストを示します。なお，Webサービスセキュリティ機能のメッセージは，英文で出力されます。

意味

英文のメッセージの意味を説明します。

要因

メッセージが出力された要因を示します。

対処

ユーザが実施する対処方法を示します。

19.2　KDCGFで始まるメッセージ

Webサービスセキュリティ機能で出力されるKDCGF0001からKDCGF9999までのメッセージについて説明します。

KDCGFで始まるメッセージは，SOAPFault形式で出力されます。SOAPFault形式のメッセージには，次に示す四つの項目があります。

FaultCode

FaultCodeが出力されます。FaultCodeは，名前空間URIとローカル部で構成されます。KDCGFで始まるメッセージのFaultCodeの名前空間URIには，「{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}」が出力されます。ローカル部には，エラーの要因を示す文字列が出力されます。

FaultCodeの値は，次の方法で取得できます。

サーバ側の場合

SOAP 1.1の場合は，SOAP Faultメッセージのfaultcode要素からFaultCodeを取得できます。

SOAP 1.2の場合は，SOAP Faultメッセージのsoapenv12:Subcode要素（soapenv12:Code要素の子要素）に含まれるsoapenv12:Value要素からFaultCodeを取得できます。なお，soapenv12:Code要素のsoapenv12:Vaule要素の値は，soapenv12:Senderです。

クライアント側の場合

SOAP通信基盤が提供するC4Faultクラス，またはJAX-WS機能が提供するjavax.xml.ws.soap.SOAPFaultExceptionクラスを使用してFaultCodeを取得できます。

SOAP通信基盤が提供するAPIの仕様については，マニュアル「アプリケーションサーバ SOAPアプリケーション開発の手引」の「13.　SOAP通信基盤が提供するAPI」を参照してください。

JAX-WS機能でフォルトをバインディングする方法については，マニュアル「アプリケーションサーバ Webサービス開発ガイド」の「10.2　JAX-WSエンジンの動作」を参照してください。

FaultString

メッセージIDおよびメッセージの本文が出力されます。メッセージIDの見方については，「19.1　メッセージの記述形式」を参照してください。

FaultStringは次の方法で取得できます。

サーバ側の場合

SOAP 1.1の場合は，SOAP Faultメッセージのfaultstring要素からFaultStringを取得できます。

SOAP 1.2の場合は，SOAP Faultメッセージのsoapenv12:Reason要素のsoapenv12:Text要素からFaultStringを取得できます。

クライアント側の場合

SOAP通信基盤が提供するC4Faultクラス，またはJAX-WS機能が提供するjavax.xml.ws.soap.SOAPFaultExceptionクラスを使用してFaultStringを取得できます。

FaultActor

Faultの生成者が出力されます。

FaultActorは次の方法で取得できます。

サーバ側の場合

SOAP 1.1の場合は，SOAP Faultメッセージのfaultactor要素からFaultActorを取得できます。

SOAP 1.2の場合は，SOAP Faultメッセージのsoapenv12:Role要素からFaultActorを取得できます。

クライアント側の場合

SOAP通信基盤が提供するC4Faultクラス，またはJAX-WS機能が提供するjavax.xml.ws.soap.SOAPFaultExceptionクラスを使用してFaultActorを取得できます。

FaultDetails

Faultの詳細が出力されます。

FaultDetailsは次の方法で取得できます。

サーバ側の場合

SOAP 1.1の場合は，SOAP Faultメッセージのdetail要素からFaultDetailsを取得できます。

SOAP 1.2の場合は，SOAP Faultメッセージのsoapenv12:Detail要素からFaultDetailsを取得できます。

クライアント側の場合

SOAP通信基盤が提供するC4Faultクラス，またはJAX-WS機能が提供するjavax.xml.ws.soap.SOAPFaultExceptionクラスを使用してFaultDetailsを取得できます。

KDCGF0001-E

FaultCode：{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}UnsupportedSecurityToken

FaultString：KDCGF0001-E An unsupported security token was specified. (location = ＜発生場所＞)

FaultActor：なし

FaultDetails：なし

意味

<発生場所>でサポートされていないセキュリティトークン要素が使用されています。<発生場所>には次の内容が出力されます。

Server：サーバ側で受信したメッセージでエラーが発生した場合

Client：クライアント側で受信したメッセージでエラーが発生した場合

要因

次のうちのどれかがエラーの要因と考えられます。

BinarySecurityToken要素のEncodingType属性が指定されているにもかかわらず，属性値が「http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary」ではない。

BinarySecurityToken要素のValueType属性が指定されているにもかかわらず，属性値が「http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3」ではない。

KeyIdentifier要素にEncodingType属性が指定されているにもかかわらず，属性値が「http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary」ではない。

KeyIdentifier要素にValueType属性が指定されているにもかかわらず，属性値が「http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier」ではない。

WS-SecurityのReference要素にValueType属性が指定されているにもかかわらず，属性値が「http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3」ではない。

WS-SecurityのSecurityTokenReference要素の子要素に，Reference要素またはKeyIdentifier要素以外の要素が指定されている。

WS-SecurityのSecurity要素の子要素に，XML暗号のReference要素が指定されている。

対処

「要因」に示した内容に該当するSOAPメッセージを送信していないかどうか，メッセージの送信者に確認してください。

KDCGF0002-E

FaultCode：{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}UnsupportedAlgorithm

FaultString：KDCGF0002-E An unsupported signature or encryption algorithm was specified. (location = ＜発生場所＞)

FaultActor：なし

FaultDetails：なし

意味

<発生場所>でサポートされていない署名アルゴリズム，または暗号アルゴリズムが使用されています。<発生場所>には次の内容が出力されます。

Server：サーバ側で受信したメッセージでエラーが発生した場合

Client：クライアント側で受信したメッセージでエラーが発生した場合

要因

次のうちのどれかがエラーの要因と考えられます。

Canonicalization要素のAlgorithm属性にサポートされていないアルゴリズムが指定されている。

SignatureMethod要素のAlgorithm属性にサポートされていないアルゴリズムが指定されている。

Transform要素のAlgorithm属性にサポートされていないアルゴリズムが指定されている。

Canonicalization要素のAlgorithm属性にWebサービスセキュリティ方針定義ファイルで設定されていないアルゴリズムが指定されている。

SignatureMethod要素のAlgorithm属性にWebサービスセキュリティ方針定義ファイルに設定されていないアルゴリズムが指定されている。

Transform要素のAlgorithm属性にWebサービスセキュリティ方針定義ファイルで設定されていないアルゴリズムが指定されている。

XML暗号のEncryptionMethod要素のAlgorithm属性にサポートされていないアルゴリズムが指定されている。

XML暗号のEncryptionMethod要素のAlgorithm属性にWebサービスセキュリティ方針定義ファイルで設定されていないアルゴリズムが指定されている。

対処

「要因」に示した内容に該当するSOAPメッセージを送信していないかどうか，メッセージの送信者に確認してください。または，Webサービスセキュリティ方針定義ファイルの設定を見直してください。

Webサービスセキュリティ機能がサポートしているアルゴリズムおよびWebサービスセキュリティ方針定義ファイルの設定については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.2　Webサービスセキュリティ方針定義ファイル」を参照してください。

KDCGF0003-E

FaultCode：{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity

FaultString：KDCGF0003-E An error occurred during security header processing. (location = ＜発生場所＞)

FaultActor：なし

FaultDetails：なし

意味

<発生場所>のセキュリティヘッダ内でエラーが発生しました。<発生場所>には次の内容が出力されます。

Server：サーバ側で受信したメッセージでエラーが発生した場合

Client：クライアント側で受信したメッセージでエラーが発生した場合

要因

次のうちのどれかがエラーの要因と考えられます。

Webサービスセキュリティ方針定義ファイルのTimestamp要素でCreated要素を要求する指定がされているにもかかわらず，受信したSOAPメッセージにCreated要素がない。

Webサービスセキュリティ方針定義ファイルのTimestamp要素でExpires要素を要求する指定がされているにもかかわらず，受信したSOAPメッセージにExpires要素がない。

受信したSOAPメッセージのCreated要素およびExpires要素のValueType属性がxsd:dateTimeと異なる。

値が必要な要素（Created要素，Expires要素，BinarySecurityToken要素，KeyIdentifier要素）に値がない。

Webサービスセキュリティ方針定義ファイルでBinarySecurityToken要素を要求する指定がされているにもかかわらず，受信したSOAPメッセージにBinarySecurityToken要素がない。

Reference要素にURI属性が付与されていない。

Reference要素のURI属性に値が設定されていない。

Webサービスセキュリティ方針定義ファイルでSOAPボディに署名を要求する指定がされているにもかかわらず，受信したSOAPメッセージのSOAPボディに署名がない。

暗号化されたSOAPメッセージにKeyInfo要素がない。

暗号化されたSOAPメッセージのKeyName要素で示された鍵がWebサービスセキュリティ機能定義ファイルに記述されていない。

Webサービスセキュリティ方針定義ファイルでSOAPボディの要素の暗号化を要求する指定がされているにもかかわらず，受信したSOAPメッセージのSOAPボディの要素が暗号化されていない。

受信したSOAPメッセージに同じ属性値を持つId属性がある。

Webサービスセキュリティ方針定義ファイルのReceiverPortConfig要素のName属性とMy_role属性に対応したWebサービスセキュリティ機能定義ファイルの設定がない。

対処

「要因」に示した内容に該当するSOAPメッセージを送信していないかどうか，メッセージの送信者に確認してください。または，Webサービスセキュリティ方針定義ファイルの設定を見直してください。

Webサービスセキュリティ機能がサポートしているアルゴリズムおよびWebサービスセキュリティ方針定義ファイルの設定については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.2　Webサービスセキュリティ方針定義ファイル」を参照してください。

KDCGF0004-E

FaultCode：{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurityToken

FaultString：KDCGF0004-E An invalid security token was specified (location = ＜発生場所＞)

FaultActor：なし

FaultDetails：なし

意味

<発生場所>で不正なセキュリティトークンが使用されています。<発生場所>には次の内容が出力されます。

Server：サーバ側で受信したメッセージでエラーが発生した場合

Client：クライアント側で受信したメッセージでエラーが発生した場合

要因

次のうちのどちらかがエラーの要因と考えられます。

BinarySecurityToken要素のValueType属性が付与されていない。

受信したSOAPメッセージのBinarySecurityToken要素を，Webサービスセキュリティ方針定義ファイルに記述された証明書ファイルで検証した場合に，常に検証が失敗する。

対処

「要因」に示した内容に該当するSOAPメッセージを送信していないかどうか，メッセージの送信者に確認してください。または，Webサービスセキュリティ方針定義ファイルの設定を見直してください。

Webサービスセキュリティ機能がサポートしているアルゴリズムおよびWebサービスセキュリティ方針定義ファイルの設定については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.2　Webサービスセキュリティ方針定義ファイル」を参照してください。

KDCGF0005-E

FaultCode：{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}FailedAuthentication

FaultString：KDCGF0005-E A security token could not be authenticated or authorized. (location = ＜発生場所＞)

FaultActor：なし

FaultDetails：なし

意味

<発生場所>のセキュリティトークンは，認証または認可できません。<発生場所>には次の内容が出力されます。

Server：サーバ側で受信したメッセージでエラーが発生した場合

Client：クライアント側で受信したメッセージでエラーが発生した場合

要因

マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KDCGJ0001-E」の要因を参照してください。

対処

マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KDCGJ0001-E」の対処を参照してください。

KDCGF0006-E

FaultCode：{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}FailedCheck

FaultString：KDCGF0006-E A signature or decryption was invalid. (location = ＜発生場所＞)

FaultActor：なし

FaultDetails：なし

意味

<発生場所>の署名または復号化が不正です。<発生場所>には次の内容が出力されます。

Server：サーバ側で受信したメッセージでエラーが発生した場合

Client：クライアント側で受信したメッセージでエラーが発生した場合

要因

次のうちのどちらかがエラーの要因と考えられます。

受信したSOAPメッセージに不正な署名が付与されている。

受信したSOAPメッセージが不正に暗号化されている。

対処

「要因」に示した内容に該当するSOAPメッセージを送信していないかどうか，メッセージの送信者に確認してください。

KDCGF0007-E

FaultCode：{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}SecurityTokenUnavailable

FaultString：KDCGF0007-E A referenced security token cannot be found. (location = ＜発生場所＞)

FaultActor：なし

FaultDetails：なし

意味

<発生場所>で受信したSOAPメッセージの中で，参照先で示されるセキュリティトークン要素が見つかりませんでした。<発生場所>には次の内容が出力されます。

Server：サーバ側で受信したメッセージでエラーが発生した場合

Client：クライアント側で受信したメッセージでエラーが発生した場合

要因

WS-SecurityのReference要素で指定されているBinarySecurityToken要素が見つかりません。

WS-SecurityのKeyIdentifier要素で指定されているサブジェクトキー識別子を持つX.509証明書がWebサービスセキュリティ機能定義ファイルのVerificationKeyStore要素で指定しているキーストアファイルの中から見つかりません。

対処

「要因」に示した内容に該当するSOAPメッセージを送信していないかどうか，メッセージの送信者に確認してください。

19.3　KDCGKで始まるメッセージ

Webサービスセキュリティ機能で出力されるKDCGK0001からKDCGK9999までのメッセージについて説明します。

KDCGK0001-I

Generation of a secret key has finished. (file = ＜ファイル名＞)

意味

共通鍵の生成が完了しました。

<ファイル名>には，生成した共通鍵のファイル名が出力されます。

KDCGK0010-E

An argument is not specified. (argument = ＜引数＞)

意味

引数が指定されていません。

<引数>には，指定する必要がある引数の名称が出力されます。

要因

共通鍵生成コマンドで指定する必要がある引数が指定されていません。

対処

引数を指定してから，再度，共通鍵生成コマンドを実行してください。

共通鍵生成コマンドで指定する引数については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「4.1.1　共通鍵生成コマンド（CWSSCreateSecretKey）」を参照してください。

KDCGK0011-E

An invalid argument is specified. (argument = ＜引数＞)

意味

不正な引数が指定されています。

<引数>には，不正と判定された引数の名称が出力されます。

要因

共通鍵生成コマンドで使用できない，不正な引数が指定されています。

対処

不正と判定された引数を削除してから，再度，共通鍵生成コマンドを実行してください。

共通鍵生成コマンドで指定できる引数については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「4.1.1　共通鍵生成コマンド（CWSSCreateSecretKey）」を参照してください。

KDCGK0012-E

An invalid argument value is specified. (argument = ＜引数＞, value = ＜引数値＞)

意味

引数に不正な値が指定されています。

<引数>と<引数値>には，それぞれ次の内容が出力されます。

<引数>

引数の名称が出力されます。

<引数値>

引数に指定されている値が出力されます。

要因

共通鍵生成コマンドの引数に不正な値が指定されています。

対処

共通鍵生成コマンドの引数，および引数に指定されている値が正しいかどうかを確認してから，再度，共通鍵生成コマンドを実行してください。

共通鍵生成コマンドの引数に指定できる値については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「4.1.1　共通鍵生成コマンド（CWSSCreateSecretKey）」を参照してください。

KDCGK0013-E

A specified file already exists. (file = ＜ファイル名＞)

意味

指定した共通鍵のファイルはすでに存在します。

要因

共通鍵生成コマンドの-oオプションで指定したファイル名のファイルがすでに存在しています。

対処

すでに存在しているファイルとは異なるファイル名を指定して，再度，共通鍵生成コマンドを実行してください。

共通鍵生成コマンドで使用できるオプションについては，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「4.1.1　共通鍵生成コマンド（CWSSCreateSecretKey）」を参照してください。

KDCGK0100-E

An error occurred during output of the key to a file. (details = ＜詳細＞)

意味

ファイルを出力するときにエラーが発生しました。

<詳細>には，エラー内容の詳細が出力されます。

要因

共通鍵生成コマンドで生成した共通鍵をファイルに出力するときにエラーが発生しました。

対処

<詳細>に表示されるエラーの要因を解決してから，再度，共通鍵生成コマンドを実行してください。<詳細>に表示されたエラーの要因がわからない場合は，システム管理者に連絡してください。

KDCGK0101-E

An error occurred during key creation. (details = ＜詳細＞)

意味

鍵を生成するときにエラーが発生しました。

<詳細>には，エラー内容の詳細が出力されます。

要因

共通鍵生成コマンドで共通鍵を生成するときにエラーが発生しました。

対処

<詳細>に表示されるエラーの要因を解決してから，再度，共通鍵生成コマンドを実行してください。<詳細>に表示されたエラーの要因がわからない場合は，システム管理者に連絡してください。

KDCGK9000-E

An unexpected error occurred during processing. (details = ＜詳細＞)

意味

処理中に予期しないエラーが発生しました。

<詳細>には，エラー内容の詳細が出力されます。

要因

共通鍵生成コマンドを実行中に原因不明のエラーが発生しました。

対処

システム管理者に連絡してください。

19.4　KDCGSで始まるメッセージ

Webサービスセキュリティ機能で出力されるKDCGS0001からKDCGS9999までのメッセージについて説明します。

KDCGS0005-E

A URI or TargetId attribute value must start with #. (tag name = ＜要素名＞, attribute name = ＜属性名＞)

意味

URI属性またはTargetId属性の先頭は「＃」でなければなりません。

<要素名>および<属性名>には，それぞれ次の内容が出力されます。

<要素名>

指定されている値の先頭が「＃」ではない属性を持つ要素の名称が出力されます。

<属性名>

指定されている値の先頭が「＃」ではない属性の名称が出力されます。

要因

Webサービスセキュリティ機能定義ファイルの属性のうち，指定されている値の先頭が「＃」ではない属性があります。

対処

Webサービスセキュリティ機能定義ファイルを修正して，<属性名>の属性に指定する値の先頭に「#」を付けてください。

Webサービスセキュリティ機能定義ファイルの属性に指定する値については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.1　Webサービスセキュリティ機能定義ファイル」を参照してください。

KDCGS0007-E

The specified secret key file does not match the KeyType attribute. (secret key file = ＜共通鍵ファイル名＞, KeyType = ＜アルゴリズム識別子＞)

意味

共通鍵のファイルとkeytype属性での指定が一致しません。

<共通鍵ファイル名>および<アルゴリズム識別子>には，それぞれ次の内容が出力されます。

<共通鍵ファイル名>

共通鍵のファイル名が出力されます。

<アルゴリズム識別子>

keytype属性で指定されたアルゴリズム識別子が出力されます。

要因

Webサービスセキュリティ機能定義ファイルのSecretKeyFile要素のkeytype属性に指定したアルゴリズム識別子と，共通鍵ファイルの内容が異なっています。

対処

Webサービスセキュリティ機能定義ファイルを修正して，SecretKeyFile要素のkeytype属性と共通鍵ファイルの内容が同じになるようにしてください。keytype属性には，共通鍵生成コマンドの引数で指定したアルゴリズム識別子と同じものを指定する必要があります。

Webサービスセキュリティ機能定義ファイルのSecretKeyFile要素のkeytype属性に指定する値については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.1　Webサービスセキュリティ機能定義ファイル」を参照してください。共通鍵生成コマンドについては，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「4.1.1　共通鍵生成コマンド（CWSSCreateSecretKey）」を参照してください。

KDCGS0008-E

An error occurred during creation of a secret key. (details = ＜詳細＞)

意味

共通鍵を生成するときにエラーが発生しました。

<詳細>には，エラー内容の詳細が出力されます。

要因

Webサービスセキュリティ機能定義ファイルのSecretKeyFile要素に指定した共通鍵ファイルから共通鍵を生成するときにエラーが発生しました。次のうちのどちらかがエラーの要因と考えられます。

SecretKeyFile要素の指定が間違っている。

実行環境の設定が間違っている。

対処

<詳細>の内容に従って，Webサービスセキュリティ機能定義ファイルの設定または実行環境を見直してください。

KDCGS0009-E

The EmbedId attribute value is duplicated.

意味

EmbedId属性の値が重複しています。

要因

Webサービスセキュリティ機能定義ファイルのEmbedId属性に指定した値が重複しています。

対処

Webサービスセキュリティ機能定義ファイルを修正して，EmbedId属性の値が重複しないようにしてください。

Webサービスセキュリティ機能定義ファイルのEmbedId属性に指定する値については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.1　Webサービスセキュリティ機能定義ファイル」を参照してください。

KDCGS0014-E

An error occurred during reading of a KeyStore. (details = ＜詳細＞)

意味

キーストアの読み込み中にエラーが発生しました。＜詳細＞には，エラーの詳細な内容が出力されます。

要因

Webサービスセキュリティ機能定義ファイルのKeyStore要素のFile属性に指定したキーストアファイルの読み込みでエラーが発生しました。指定したキーストアファイルが存在しなかったり，ファイルに対するアクセス権がなかったり，ファイルの形式が間違っているおそれがあります。

対処

＜詳細＞の内容に従って，Webサービスセキュリティ機能定義ファイルのKeyStore要素のFile属性の指定を見直してください。

Webサービスセキュリティ機能定義ファイルで指定する要素および属性については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.1　Webサービスセキュリティ機能定義ファイル」を参照してください。

KDCGS0015-E

A definition is duplicated. (tag name = <要素名>)

意味

要素が重複しています。＜要素名＞には，重複している要素の名称が出力されます。

要因

Webサービスセキュリティ機能定義ファイルの中で，1回しか指定できない＜要素名＞を複数回指定しています。

対処

Webサービスセキュリティ機能定義ファイルを修正して，＜要素名＞を1回だけ指定するようにしてください。

Webサービスセキュリティ機能定義ファイルで指定する要素の指定回数については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.1　Webサービスセキュリティ機能定義ファイル」を参照してください。

19.5　KDCGWで始まるメッセージ

Webサービスセキュリティ機能で出力されるKDCGW0001からKDCGW9999までのメッセージについて説明します。

KDCGW0002-E

FaultCode：{http://www.hitachi.co.jp/soft/xml/cosminexus/ws/security/0760/faultcode}＜Server.SigningErrorまたはClient.SigningError＞

FaultString：KDCGW0002-E An error occurred during message signature processing. (details = ＜詳細＞)

FaultActor：なし

FaultDetails：なし

意味

メッセージの署名を処理するときにエラーが発生しました。

＜Server.SigningErrorまたはClient.SigningError＞および<詳細>には，それぞれ次の内容が出力されます。

＜Server.SigningErrorまたはClient.SigningError＞

エラーがサーバ側で発生したのか，クライアント側で発生したのかを示す文字列が出力されます。サーバ側でエラーが発生している場合は「Server.SigningError」が，クライアント側でエラーが発生している場合は「Client.SigningError」が出力されます。

<詳細>

エラーの詳細が出力されます。

要因

次のうちのどちらかが要因と考えられます。

Webサービスセキュリティ機能定義ファイルのCanonicalizationMethod要素，SignatureMethod要素，またはTransform要素で指定したアルゴリズムが間違っている。

Webサービスセキュリティ機能定義ファイルのSignatureTarget要素で指定した署名対象が間違っている。

対処

<詳細>に表示されるエラーの要因を解決してから，再度，処理を実行してください。処理を再度実行する場合は，SOAPアプリケーションまたはWebサービスも再度デプロイする必要があります。

<詳細>に表示されたエラーの要因がわからない場合は，システム管理者に連絡してください。

Webサービスセキュリティ機能定義ファイルの要素で指定する内容については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.1　Webサービスセキュリティ機能定義ファイル」を参照してください。

KDCGW0003-E

FaultCode：{http://www.hitachi.co.jp/soft/xml/cosminexus/ws/security/0760/faultcode}＜Server.EncryptingErrorまたはClient.EncryptingError＞

FaultString：KDCGW0003-E An error occurred during message encryption. (details = ＜詳細＞)

FaultActor：なし

FaultDetails：なし

意味

メッセージの暗号化を処理するときにエラーが発生しました。

＜Server.EncryptingErrorまたはClient.EncryptingError＞および<詳細>には，それぞれ次の内容が出力されます。

＜Server.EncryptingErrorまたはClient.EncryptingError＞

エラーがサーバ側で発生したのか，クライアント側で発生したのかを示す文字列が出力されます。サーバ側でエラーが発生している場合は「Server.EncryptingError」が，クライアント側でエラーが発生している場合は「Client.EncryptingError」が出力されます。

<詳細>

エラーの詳細が出力されます。

要因

次のうちのどちらかが要因と考えられます。

Webサービスセキュリティ機能定義ファイルのContentsEncryption要素またはKeyEncryption要素の子要素であるEncryptionMethod要素で指定したアルゴリズムが間違っている。

Webサービスセキュリティ機能定義ファイルのEncryptionTarget要素で指定した暗号化対象が間違っている。

対処

<詳細>に表示されるエラーの要因を解決してから，再度，処理を実行してください。処理を再度実行する場合は，SOAPアプリケーションまたはWebサービスも再度デプロイする必要があります。

<詳細>に表示されたエラーの要因がわからない場合は，システム管理者に連絡してください。

Webサービスセキュリティ機能定義ファイルの要素で指定する内容については，マニュアル「アプリケーションサーバ Webサービスセキュリティ構築ガイド」の「3.1.1　Webサービスセキュリティ機能定義ファイル」を参照してください。

19.6　KEOS02000からKEOS09999までのメッセージ

Managerを使用した構築・運用・保守で出力されるKEOS02000からKEOS09999までのメッセージについて説明します。

KEOS02020-E（C）

共有ライブラリのロードに失敗しました。 ライブラリ名=aa....aa

aa....aa：ライブラリ名

説明

処理を中止します。

対処

次の内容を確認したあと，再度実行してください。

JavaVM起動オプションで，java.library.pathが指定されているかどうか。

JavaVM起動オプションが正しく指定されている場合は，Keymate/Cryptoがインストールされているかどうか。

Keymate/Cryptoがインストールされている場合，メモリが不足している可能性があります。処理を実行したホストの管理者に連絡して，メモリ不足を解消してください。

上記以外の場合は，インストールが不完全である可能性があります（必要なファイルがない，または壊れています）。ユーザ管理をアンインストールしたあと，再インストールしてください。

KEOS02102-E（C）

指定されたSecretDataの暗号化に失敗しました。

説明

指定されたSecretDataの暗号化に失敗しました。または，暗号鍵ファイルにアクセスできませんでした。

処理を中止します。

対処

次の内容を確認したあと，再度実行してください。

ユーザ管理のコンフィグレーションファイルに暗号鍵の指定があるか（com.cosminexus.admin.auth.sso.keyfileの指定があるか）。

暗号鍵ファイルがあるか。

鍵ファイルのアクセス権があるか。

KEOS02152-E（C）

指定されたSecretDataの復号化に失敗しました。

説明

指定されたSecretDataの復号化に失敗しました。または，暗号鍵ファイルにアクセスできませんでした。

処理を中止します。

対処

次の内容を確認したあと，再度実行してください。

ユーザ管理のコンフィグレーションファイルに暗号鍵の指定があるか（com.cosminexus.admin.auth.sso.keyfileの指定があるか）。

暗号鍵ファイルがあるか。

鍵ファイルのアクセス権があるか。

登録時に使用した暗号鍵ファイルと異なる暗号鍵ファイルを指定していないか。

KEOS02202-E（C）

暗号鍵ファイルにアクセスできません。

説明

ユーザ管理のコンフィグレーションファイル内に暗号鍵ファイル名の指定がされていません。または，ディレクトリに書き込み権限がなく暗号鍵ファイルを作成できません。

処理を中止します。

対処

ユーザ管理のコンフィグレーションファイル内のcom.cosminexus.admin.auth.sso.keyfileを確認したあと，再度実行してください。

暗号鍵ファイル名が指定されているか。

ファイル名が指定されている場合，ディレクトリのアクセス権はあるか。

KEOS02300-E（C／F）

パスワードの復号化に失敗しました。詳細情報=aa....aa

aa....aa：詳細情報

説明

パスワードの復号化に失敗しました。復号化前の文字列をパスワードとして使用します。

デフォルトの設定で処理を継続します。

対処

パスワードがスクランブル化されているかどうか確認してください。

KEOS13105-E（W／F）

暗号鍵ファイルの作成に失敗しました。詳細情報=aa....aa

aa....aa：例外コード

説明

暗号鍵ファイルを設定情報に適用できませんでした。

［戻る］リンクを表示します。［戻る］リンクを選択すると，暗号鍵ファイルの設定画面に戻ります。

対処

指定ディレクトリに暗号鍵ファイルが存在することを確認してください。また，格納先ディレクトリと暗号鍵ファイルに読み込み権限があることを確認してください。

KEOS13106-E（W／F）

共有ライブラリのロードに失敗しました。詳細情報=aa....aa

aa....aa：例外コード

説明

共有ライブラリのロードに失敗しました。

［戻る］リンクを表示します。

［戻る］リンクを選択すると，呼び出し元画面に戻ります。

対処

Keymate/Cryptoがインストールされているかどうかを確認してください。Keymate/Cryptoがインストールされている場合，メモリが不足している可能性があります。処理を実行したホストの管理者に連絡して，メモリ不足を解消してください。

それ以外の場合は，インストールに必要なファイルが存在しない，またはファイルが壊れている可能性があります。製品をアンインストールしたあと，再度インストールしてください。

KEOS13107-E（W／F）

secretDataの暗号化に失敗しました。詳細情報=aa....aa

aa....aa：例外コード

説明

secretDataの暗号化に失敗しました。

［戻る］リンクを表示します。

［戻る］リンクを選択すると，呼び出し元画面に戻ります。

対処

暗号化ライブラリがインストールされていることを確認してください。

KEOS13119-I（W／F）

暗号鍵ファイルの設定を適用しました。

説明

暗号鍵ファイルが作成または適用されました。

［戻る］リンクを表示します。

対処

［戻る］リンクを選択してください。［戻る］リンクを選択すると，暗号鍵ファイルの設定画面に戻ります。

KEOS13125-E（W／F）

入力情報に不正な文字が含まれています。入力情報=aa....aa

aa....aa：入力情報

説明

入力情報が不正です。

［戻る］リンクを表示します。

［戻る］リンクを選択すると，呼び出し元画面に戻ります。

対処

次の内容に従って，入力情報を確認してください。

レルム名の場合は，英字（A〜Z，a〜z）および数字（0〜9）の文字列であることを確認してください。また，予約されている文字列「mappings」でないことを確認してください。

ユーザIDの場合は，英字（A〜Z，a〜z）および数字（0〜9）の文字列であることを確認してください。

パスワードまたはsecretDataの場合は，英字（A〜Z，a〜z），数字（0〜9），および特殊文字の文字列であることを確認してください。特殊文字は次に示す記号を意味します。

（空白）｜!｜"｜#｜$｜%｜&｜'｜(｜)｜*｜+｜,｜-｜.｜/｜:｜;｜<｜=｜>｜?｜@｜[｜¥｜]｜^｜_（アンダースコア）｜`｜{｜}｜|（垂直バー）｜~

KEOS13126-E（W／F）

secretDataが違います。

説明

入力されたsecretDataと再入力したsecretDataが一致しません。

［戻る］リンクを表示します。

［戻る］リンクを選択すると，呼び出し元画面に戻ります。

対処

secretDataをもう一度入力してください。

19.7　KEXSで始まるメッセージ

XML Security - Coreが出力するKEXS10001からKEXS99999までのメッセージについて説明します。

KEXS20006-E

JCEプロバイダが見つかりません。プロバイダ名 = {0}

（要因）

Javaセキュリティプロバイダの設定に誤りがあります。

{0}：プロバイダ名

（処理）

例外を通知します。

（対処）

java.securityファイルの設定を確認してください。

KEXS20007-E

JCEアルゴリズムが見つかりません。アルゴリズム名 = {0}, プロバイダ名 = {1}

（要因）

Javaセキュリティプロバイダの設定に誤りがあります。

{0}：アルゴリズム名

{1}：プロバイダ名

（処理）

例外を通知します。

（対処）

java.securityファイルの設定を確認してください。

KEXS20008-E

DSAの不正なASN.1フォーマットです。

（要因）

DSAのASN.1フォーマットが不正です。

（処理）

例外を通知します。

（対処）

java.securityファイルの設定を確認してください。

KEXS20009-E

無効な実装クラスが指定されました。クラス名 = {0}

（要因）

無効な実装クラスが指定されました。

{0}：クラス名

（処理）

例外を通知します。

（対処）

有効な実装クラスを指定してください。

KEXS30010-E

親ノードが存在しません。

（要因）

親ノードを持たないEncryptedDataを復号化モードで置換しようとしました。

（処理）

例外を通知します。

（対処）

親ノードを持つEncryptedDataを指定してください。

KEXS30011-E

不正なDOMFragmentです。

（要因）

DOMFragmentの各ノードに親が存在しない，またはDOMFragmentの各ノードが兄弟関係ではありません。

（処理）

例外を通知します。

（対処）

各ノードが親を持ち，兄弟関係となるDOMFragmentを指定してください。

KEXS40001-E

不正なモードです。

（要因）

実行しようとした処理に対して不正なモードが設定されています。

（処理）

例外を通知します。

（対処）

適切なモードを設定してください。

KEXS40002-E

アルゴリズムが見つかりません。カテゴリ = {0}, アルゴリズム識別子 = {1}

（要因）

無効なアルゴリズムが指定されました。

{0}：カテゴリ

{1}：アルゴリズム識別子

（処理）

例外を通知します。

（対処）

有効なアルゴリズムを指定してください。

KEXS40003-E

鍵リゾルバが設定されていません。

（要因）

鍵リゾルバが設定されていません。

（処理）

例外を通知します。

（対処）

鍵リゾルバを設定してください。

KEXS40004-E

無効なアルゴリズムパラメタが指定されました。

（要因）

無効なアルゴリズムパラメタが指定されました。

（処理）

例外を通知します。

（対処）

有効なアルゴリズムパラメタを指定してください。

KEXS40009-E

鍵解決に失敗しました。

（要因）

鍵解決で鍵を取得できませんでした。

（処理）

例外を通知します。

（対処）

鍵を取得できる，適切な鍵リゾルバを設定してください。

KEXS40010-E

不正なオブジェクトが含まれています。

（要因）

List や Map に不正なオブジェクトが含まれています。

（処理）

例外を通知します。

（対処）

不正なオブジェクトを含まないようにしてください。

KEXS40011-E

enveloped-signature変換またはXPath関数here()の使用方法に誤りがあります。

（要因）

enveloped-signature変換またはXPath関数here()にノードが結びついていません。

（処理）

例外を通知します。

（対処）

enveloped-signature変換またはXPath関数here()の使用方法が正しいか確認してください。

KEXS40012-E

出力先が設定されていません。

（要因）

XMLSerializer の出力先が設定されていません。

（処理）

例外を通知します。

（対処）

出力先を設定してください。

KEXS40013-E

結果はwell-formedではありません。モード = {0}

（要因）

次のような結果になる置換を実行しようとしました。

文書要素が二つになる。

DocumentTypeノードの前に要素がある。

Documentノードの子ノードにコメント，PI以外のノードが含まれる。

{0}：モード

（処理）

例外を通知します。

（対処）

結果がwell-formedになるようにしてください。

KEXS40014-E

無効な鍵長の鍵が指定されました。鍵長 = {0}

（要因）

Keyオブジェクトの鍵長が無効です。

{0}：鍵長

（処理）

例外を通知します。

（対処）

有効な鍵長の鍵を指定してください。

KEXS40015-E

無効な鍵合意コンテキストが指定されました。

（要因）

鍵合意コンテキストが無効です。

（処理）

例外を通知します。

（対処）

有効な鍵合意コンテキストを指定してください。

KEXS40016-E

不正な位置のノードが指定されました。モード = {0}

（要因）

暗号化時に，EncryptedDataをその子孫にあるDOMFragmentで置換しようとしました。または，復号化時に，DOMFragmentをその子孫または兄弟関係にあるEncryptedDataと置換しようとしました。

{0}：モード

（処理）

例外を通知します。

（対処）

適切な位置にあるEncryptedDataまたはDOMFragmentを指定してください。

KEXS50001-E

無効な要素が指定されました。要求要素 = {0}, 指定要素 = {1}

（要因）

無効な要素が指定されました。名前空間URIまたはローカル名に誤りがあります。

{0}：要求要素

{1}：指定要素

（処理）

例外を通知します。

（対処）

有効な要素を指定してください。

KEXS50002-E

KeyInfoコンテントを作成できません。名前空間URI = {0}, ローカル名 = {1}

（要因）

無効なKeyInfoコンテントが指定されました。

{0}：名前空間URI

{1}：ローカル名

（処理）

例外を通知します。

（対処）

有効なKeyInfoコンテントを指定してください。

KEXS50003-E

アルゴリズムパラメタが設定されていません。アルゴリズム識別子 = {0}

（要因）

アルゴリズムパラメタが設定されていません。

{0}：アルゴリズム識別子

（処理）

例外を通知します。

（対処）

アルゴリズムパラメタを設定してください。

KEXS50014-E

JCEアルゴリズムの処理に失敗しました。クラス名 = {0}, メソッド名 = {1}, プロバイダ名 = {2}

（要因）

JCEアルゴリズムの処理に失敗しました。またはKeyInfoコンテントに不正な値が設定されている可能性があります。

{0}：クラス名

{1}：メソッド名

{2}：プロバイダ名

（処理）

例外を通知します。

（対処）

java.securityファイルの設定を確認してください。

KEXS50015-E

整数フォーマットエラーです。テキスト = {0}

（要因）

整数として認識できないテキストが設定されています。

{0}：テキスト

（処理）

例外を通知します。

（対処）

整数として認識できるテキストを設定してください。

KEXS50016-E

DSAの不正なXML署名フォーマットです。

（要因）

SignatureValue要素のDSA署名値が不正な値です。

（処理）

例外を通知します。

（対処）

有効なDSA署名値を設定してください。

KEXS50017-E

対応するDOMノードが存在しません。

（要因）

既存のElementノードから作成されていないEncryptedDataに対して，decryptXMLメソッドを適用しようとしました。または，復号化モードで置換しようとしました。

（処理）

例外を通知します。

（対処）

XMLEncryptionFactoryクラスのnewEncryptedData(XMLSecurityContext,Element)メソッドで作成したEncryptedDataを使用してください。

KEXS50018-E

KeySize要素に無効な値が設定されています。KeySize = {0}

（要因）

KeySize要素に無効な値が設定されています。

{0}：KeySize要素の値

（処理）

例外を通知します。

（対処）

有効な値を設定してください。

KEXS50019-E

データのサイズが不正です。データサイズ = {0}

（要因）

指定されたアルゴリズムへの入力データが短過ぎます。またはアルゴリズムで指定されたブロック長の倍数になっていません。

{0}：データサイズ

（処理）

例外を通知します。

（対処）

有効な入力データを指定してください。

KEXS50020-E

完全性チェックに失敗しました。アルゴリズム識別子 = {0}

（要因）

入力データまたは鍵が不正です。

{0}：アルゴリズム識別子

（処理）

例外を通知します。

（対処）

有効な入力データまたは鍵を指定してください。

KEXS50021-E

鍵の作成に必要なパラメタが設定されていません。

（要因）

鍵の作成に必要なパラメタが設定されていません。

（処理）

例外を通知します。

（対処）

必要なパラメタを設定してください。

KEXS50022-E

復号化結果が空です。

（要因）

空のデータが暗号化されています。decryptXMLメソッドでは処理できません。

（処理）

例外を通知します。

（対処）

有効なデータを含むEncryptedDataを指定してください。

KEXS50023-E

パディングが不正です。アルゴリズム識別子 = {0}

（要因）

入力データまたは鍵が不正です。

{0}：アルゴリズム識別子

（処理）

例外を通知します。

（対処）

有効な入力データまたは鍵を指定してください。

19.8　SSLについてのメッセージ

ここでは，HTTP ServerのSSL処理で出力されるメッセージについて説明します。

19.8.1　メッセージの記述形式

この節でのメッセージの記述形式を次に示します。

XXnnnnn

メッセージテキスト

可変値に関する説明

エラーレベル：エラーログに出力するエラーのレベル

説明

メッセージテキストに対する補足説明

対処

ユーザが実施する対処

なお，「可変値に関する説明」，「対処」はメッセージによって記述しないものもあります。

次に，各項目について説明します。

XXnnnnn

メッセージIDを表します。

nnnnn

メッセージを出力したプログラムで管理するメッセージ番号を表します。それぞれのメッセージには5けたの固有の番号が付いています。

メッセージテキスト

SSL処理で出力されるメッセージテキストを示します。

なお，メッセージテキスト中の可変値（メッセージが出力される状況によって変わる値）は，「xx....xx」（xxは英小文字）の形式で示します。

（例）

aa....aa：ファイル名

bb....bb：アプリケーション名

エラーレベル

LogLevelディレクティブで指定したエラーレベルが表示されます。

出力されるエラーレベルは次のとおりです。

emergレベル

alertレベル

critレベル

errorレベル

warnレベル

noticeレベル

infoレベル

レベルなし

レベル不定

「レベルなし」のメッセージは，レベル設定のないメッセージで，メッセージテキストだけ出力されます。

「レベル不定」のメッセージは，出力されるメッセージによってエラーレベルが異なります。

説明

メッセージが通知された要因やメッセージを出力した構成ソフトウェアの動作など，メッセージに対する補足説明を示します。

対処

ユーザが実施する対処を表します。

19.8.2　注意事項

noticeレベルのメッセージは，LogLevelディレクティブの指定に関係なく出力されます。

HTTP Server起動時など，レベル指定解析前には，LogLevelディレクティブの指定に関係なくメッセージが出力される場合があります。

次に示すメッセージは一部を除き，記載していません。

HTTP Serverの起動時に出力される，コンフィグファイルの文法エラーに伴うメッセージ

HTTP Serverの起動後に出力される，エラーレベルがdebugのメッセージ

HTTP Serverの起動後に出力される，エラーレベルがないメッセージ

19.8.3　AHで始まるメッセージ

AH01876

mod_ssl/aa....aa compiled against Server: bb....bb cc....cc, Library: dd....dd

aa....aa：製品バージョン

bb....bb：製品名

cc....cc：製品バージョン

dd....dd：ライブラリ情報

エラーレベル：info

説明

OpenSSLのライブラリ情報およびSSLモジュール情報を出力します。

AH01883

Init: Initialized OpenSSL library

エラーレベル：info

説明

OpenSSLライブラリの初期化をします。

AH01887

Init: Initializing (virtual) servers for SSL

エラーレベル：info

説明

SSLについてサーバの初期化を行います。

AH01895

Unable to configure verify locations for client authentication

エラーレベル：emerg

説明

クライアント認証に使用するCA証明書を設定できませんでした。Webサーバを起動しません。

対処

SSLCACertificateFileおよびSSLCACertificatePathディレクティブの指定を見直してください。

AH01896

Unable to determine list of acceptable CA certificates for client authentication

エラーレベル：emerg

説明

クライアント認証に使用可能なCA証明書のリストを決定できませんでした。Webサーバを起動しません。

対処

SSLCACertificateFileおよびSSLCACertificatePathディレクティブの指定を見直してください。

AH01897

Init: Oops, you want to request client authentication, but no CAs are known for verification!? [Hint: SSLCACertificate*]

エラーレベル：warn

説明

クライアント認証の検証に必要なCAが存在しません。Webサーバは起動処理を続行します。

対処

SSLCACertificateFileおよびSSLCACertificatePathディレクティブの指定を見直してください。

AH01898

Unable to configure permitted SSL ciphers

エラーレベル：emerg

説明

許可するSSL暗号種別を設定できませんでした。Webサーバを起動しません。

対処

SSLCipherSuiteディレクティブの指定を見直してください。

AH01899

Host aa....aa:bb....bb: CRL checking has been enabled, but neither SSLCARevocationFile nor SSLCARevocationPath is configured

aa....aa：ホスト名

bb....bb：ポート番号

エラーレベル：emerg

説明

CRLのチェックが有効になっていますが，SSLCARevocationFileディレクティブが指定されていません。Webサーバを起動しません。

対処

SSLCARevocationCheckおよびSSLCARevocationFileディレクティブの指定を見直してください。

AH01901

Host aa....aa:bb....bb: unable to configure X.509 CRL storage for certificate revocation

aa....aa：ホスト名

bb....bb：ポート番号

エラーレベル：emerg

説明

証明書失効用のCRLを設定できませんでした。Webサーバを起動しません。

対処

SSLCARevocationFileディレクティブの指定を見直してください。

AH01902

Host aa....aa:bb....bb: X.509 CRL storage locations configured, but CRL checking (SSLCARevocationCheck) is not enabled

aa....aa：ホスト名

bb....bb：ポート番号

エラーレベル：warn

説明

CRLの格納場所は設定されていますが，CRLのチェックが有効になっていません。Webサーバは起動処理を続行します。

対処

CRLのチェックを有効にする場合は，SSLCARevocationCheckディレクティブを見直してください。

AH01909

aa....aa:bb....bb:cc....cc server certificate does NOT include an ID which matches the server name

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：インデックス番号

エラーレベル：warn

説明

サーバ証明書にサーバ名称と一致するIDが含まれていません。Webサーバは起動処理を続行します。

対処

サーバ証明書とサーバ名称が一致しているか確認してください。

AH01914

Configuring server aa....aa:bb....bb for SSL protocol

aa....aa：ホスト名

bb....bb：ポート番号

エラーレベル：info

説明

SSLについてサーバの設定を行います。

AH01915

Init: (aa....aa:bb....bb) You configured HTTPS(443) on the standard HTTP(80) port!

aa....aa：ホスト名

bb....bb：ポート番号

エラーレベル：warn

説明

SSLが有効となっていますが，HTTPプロトコル標準のポート番号80が設定されています。Webサーバは起動処理を続行します。

対処

サーバがリクエストを受け付けるポート番号について見直してください。

AH01916

Init: (aa....aa:bb....bb) You configured HTTP(80) on the standard HTTPS(443) port!

aa....aa：ホスト名

bb....bb：ポート番号

エラーレベル：warn

説明

SSLが無効となっていますが，HTTPSプロトコル標準のポート番号443が設定されています。Webサーバは起動処理を続行します。

対処

サーバがリクエストを受け付けるポート番号について見直してください。

AH01962

Unable to create a new SSL connection from the SSL context

エラーレベル：error

説明

SSLコンテキストからSSLコネクションを生成できませんでした。SSLによる接続ができません。

対処

同時に出力されるエラーメッセージを参照してください。

AH01963

Unable to set session id context to 'aa....aa'

aa....aa：サーバを識別するデータ

エラーレベル：error

説明

セションIDコンテキストにデータをセットできませんでした。SSLによる接続ができません。

対処

同時に出力されるエラーメッセージを参照してください。

AH01996

SSL handshake failed: HTTP spoken on HTTPS port; trying to send HTML error page

エラーレベル：info

説明

SSLハンドシェイクに失敗しました：HTTPSを受け付けるポートにHTTPのリクエストを受信しました。

AH01998

Connection closed to child aa....aa with abortive shutdown (server bb....bb:cc....cc)

aa....aa：サーバを識別するユニークなID

bb....bb：ホスト名

cc....cc：ポート番号

エラーレベル：info

説明

IDで示すサーバとのコネクションが切断されました。

AH02011

No acceptable peer certificate available

エラーレベル：info

説明

アクセス可能なクライアント証明書がありません。

AH02036

Faking HTTP Basic Auth header: "Authorization: aa....aa"

aa....aa：ヘッダ値

エラーレベル：info

説明

クライアント証明書によるBasic認証を実行します。

AH02039

Certificate Verification: Error (aa....aa): bb....bb

aa....aa：エラー番号

bb....bb：エラー文字列

エラーレベル：error

説明

クライアント認証に失敗しました。SSLリクエスト処理を終了します。

AH02040

Certificate Verification: Certificate Chain too long (chain has aa....aa certificates, but maximum allowed are only bb....bb)

aa....aa：CAのチェイン数

bb....bb：SSLVerifyDepth値

エラーレベル：error

説明

SSLVerifyDepthディレクティブの指定値より深い階層に位置するクライアント証明書が送られてきたため，検証に失敗しました。SSLリクエスト処理を終了します。

対処

SSLVerifyDepthディレクティブの指定値を確認してください。クライアント証明書を受け付けないときは対処する必要はありません。

AH02042

rejecting client initiated renegotiation

エラーレベル：error

説明

クライアントからのリネゴシエーション要求を拒否しました。

SSLリクエスト処理を終了します。

AH02219

access to aa....aa failed, reason: SSL connection required

aa....aa：要求されたファイル

エラーレベル：error

説明

SSLRequireSSLディレクティブを指定したパスに対して，SSLを使用しないでアクセスしました。ステータスコード「403 Forbidden」をクライアントに返し，リクエスト処理を中断します。

AH02231

No SSL protocols available [hint: SSLProtocol]

エラーレベル：emerg

説明

SSLProtocolディレクティブに利用可能なプロトコルが指定されていません。Webサーバを起動しません。

対処

SSLProtocolディレクティブの指定を見直してください。

AH02311

Fatal error initialising mod_ssl, exiting. See aa....aa for more information

aa....aa：エラーログファイル名

エラーレベル：emerg

説明

mod_sslの初期化中に致命的なエラーが発生しました。Webサーバを起動しません。

対処

メッセージで示すエラーログファイルを参照して，このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

AH02312

Fatal error initialising mod_ssl, exiting.

エラーレベル：emerg

説明

mod_sslの初期化中に致命的なエラーが発生しました。Webサーバを起動しません。

対処

このメッセージのほかに出力されているメッセージのエラーの原因について見直してください。

AH02562

Failed to configure certificate aa....aa:bb....bb:cc....cc (with chain), check dd....dd

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：インデックス番号

dd....dd：証明書のファイル名

エラーレベル：emerg

説明

サーバ証明書の設定に失敗しました。Webサーバを起動しません。

対処

SSLCertificateFileディレクティブで指定した証明書のファイルを見直してください。

AH02564

Failed to configure encrypted (?) private key aa....aa:bb....bb:cc....cc, check dd....dd

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：インデックス番号

dd....dd：秘密鍵のファイル名

エラーレベル：emerg

説明

サーバ秘密鍵の設定に失敗しました。Webサーバを起動しません。

対処

SSLCertificateKeyFileディレクティブで指定したサーバ秘密鍵のファイルを見直してください。

AH02565

Certificate and private key aa....aa:bb....bb:cc....cc from dd....dd and ee....ee do not match

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：インデックス番号

dd....dd：証明書のファイル名

ee....ee：秘密鍵のファイル名

エラーレベル：emerg

説明

サーバ証明書とサーバ秘密鍵の対応が不正です。Webサーバを起動しません。

対処

秘密鍵と証明書が正しいペアで設定されているかどうかSSLCertificateFileディレクティブおよびSSLCertificateKeyFileディレクティブを確認してください。

AH02568

Certificate and private key aa....aa:bb....bb:cc....cc configured from dd....dd and ee....ee

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：インデックス番号

dd....dd：証明書のファイル名

ee....ee：秘密鍵のファイル名

エラーレベル：info

説明

サーバ証明書とサーバ秘密鍵を設定しました。

AH02569

Illegal attempt to re-initialise SSL for server (SSLEngine On should go in the VirtualHost, not in global scope.)

エラーレベル：emerg

説明

サーバに対して不当にSSLの再初期化を実行しようとしました。Webサーバを起動しません。

対処

バーチャルホスト内のSSLの設定を確認してください（バーチャルホスト外でSSLの設定が有効である場合，バーチャルホスト内で一つ以上のSSL関連ディレクティブを設定しなければなりません）。

AH02572

Failed to configure at least one certificate and key for aa....aa:bb....bb

aa....aa：ホスト名

bb....bb：ポート番号

エラーレベル：emerg

説明

サーバ証明書とサーバ秘密鍵が設定されていません。Webサーバを起動しません。

対処

SSLを有効にする場合，少なくとも一つのサーバ証明書とサーバ秘密鍵を設定する必要があります。

AH02576

Attempting to load encrypted (?) private key aa....aa:bb....bb:cc....cc

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：インデックス番号

エラーレベル：info

説明

パスワード保護されたサーバ秘密鍵を読み込みます。

AH02577

Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file aa....aa)

aa....aa：サーバ秘密鍵ファイル名

エラーレベル：emerg

説明

Windows版ではパスワード保護された秘密鍵に対する対話式でのパスワード入力はサポートしていません。Webサーバを起動しません。

対処

サーバ秘密鍵のパスワード保護の解除を検討してください。

AH10104

aa....aa:bb....bb, SSLSrvConfigRec shared from cc....cc:dd....dd

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：ホスト名

dd....dd：ポート番号

エラーレベル：warn

説明

SSLの設定が共有されています。Webサーバは起動処理を続行します。

対処

SSLの設定を共有してよいかどうか，<VirtualHost>の設定を見直してください。

19.8.4　KHで始まるメッセージ

KH00189

SSL handshake interrupted by system: client port aa....aa(bb....bb)(cc....cc)(dd....dd):ee....ee

aa....aa：ポート番号

bb....bb：SSLハンドシェイク処理時間

cc....cc：エラーナンバー値

dd....dd：サーバプロセスID

ee....ee：SSLハンドシェイク処理の状態

エラーレベル：info

説明

SSLハンドシェイク処理が正しく終了しませんでした。

SSLリクエスト処理を終了します。

KH00190

SSL handshake interrupted by system: client port aa....aa

aa....aa：ポート番号

エラーレベル：info

説明

SSLハンドシェイク処理が正しく終了しませんでした。

SSLリクエスト処理を終了します。

KH00435

Unsupported protocol is ignored: SSLv3

エラーレベル：warn

説明

SSLProtocolディレクティブに未サポートのSSLv3プロトコルが指定されました。SSLv3プロトコルの指定を無視して，起動処理を続行します。

対処

SSLProtocolディレクティブの指定を見直してください。

KH00436

Certificate Verification: Error (aa....aa): bb....bb [cc....cc]

aa....aa：エラー番号

bb....bb：エラー文字列

cc....cc：証明書情報

エラーレベル：error

説明

クライアント認証に失敗しました。SSLリクエスト処理を終了します。

KH00439

SSL Library Error: aa....aa

aa....aa：詳細情報

エラーレベル：不定

説明

SSL ライブラリでエラーが発生しました。

Web サーバ起動中の場合は，起動処理を中断します。SSL リクエスト処理中の場合は，SSL リクエスト処理を中断します。

対処

このメッセージで出力される詳細情報について見直してください。

KH00440

SSL library error aa....aa in handshake (server bb....bb:cc....cc) (dd....dd)(ee....ee)(ff....ff):gg....gg

aa....aa：エラー番号

bb....bb：ホスト名

cc....cc：ポート番号

dd....dd：SSLハンドシェイク処理時間

ee....ee：エラーナンバー値

ff....ff：サーバプロセスID

gg....gg：SSLハンドシェイク処理の状態

エラーレベル：error

説明

SSLハンドシェイク処理が正しく終了しませんでした。

SSLリクエスト処理を終了します。

KH00441

SSL library error aa....aa in handshake (server bb....bb:cc....cc)

aa....aa：エラー番号

bb....bb：ホスト名

cc....cc：ポート番号

エラーレベル：error

説明

SSLハンドシェイク処理が正しく終了しませんでした。

SSLリクエスト処理を終了します。

KH00442

access to aa....aa failed, reason: Cipher bb....bb is forbidden

aa....aa：ファイル名

bb....bb：暗号種別

エラーレベル：error

説明

SSLBanCipherディレクティブで指定した暗号種別を使用してアクセスしました。

ステータスコード「403 Forbidden」を返してリクエスト処理を終了します。

KH00443

ap_os_proc_filepath() failed.

エラーレベル：error

説明

起動コマンドの絶対パス取得に失敗しました。

Webサーバは起動処理を中断します。

KH00444

apr_filepath_merge() failed.

エラーレベル：error

説明

SSLライブラリのパス生成に失敗しました。

Webサーバは起動処理を中断します。

KH00445

Could not load the ssl library aa..aa

aa....aa：ファイル名

エラーレベル：error

説明

SSLライブラリのロードに失敗しました。

Webサーバは起動処理を中断します。

付録

付録A　各バージョンでの主な機能変更

ここでは，11-50よりも前のアプリケーションサーバの各バージョンでの主な機能の変更について，変更目的ごとに説明します。11-50での主な機能変更については，「1.4　アプリケーションサーバ 11-50での主な機能変更」を参照してください。

説明内容は次のとおりです。

アプリケーションサーバの各バージョンで変更になった主な機能と，その概要を説明しています。機能の詳細については，「参照先マニュアル」の「参照個所」の記述を確認してください。「参照先マニュアル」および「参照個所」には，その機能についての11-50のマニュアルでの主な記載個所を記載しています。

「参照先マニュアル」に示したマニュアル名の「アプリケーションサーバ」は省略しています。

付録A.1　11-40での主な機能変更

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒1　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Java SE 17への対応

Java SE 17の機能が使用できるようになりました。

システム設計ガイド

2.1

機能解説 保守／移行編

9章

メモリ管理方式にZGCを追加

メモリ管理方式にZGCを追加しました。

システム設計ガイド

7.17

接続できるデータベースにAzure SQL Databaseを追加

DB Connectorを使用して接続できるデータベースにAzure SQL Databaseを追加しました。

機能解説 基本・開発編(コンテナ共通機能)

3.6.18

付録A.2　11-30での主な機能変更

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒2　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

JDBC4.3への対応

JDBC4.3に対応しました。

アプリケーションサーバ & BPM/ESB基盤 概説

4.6.2

接続できるデータベースにMySQL，PostgreSQLを追加

DB Connectorを使用して接続できるデータベースに，MySQL，PostgreSQLを追加しました。

機能解説 基本・開発編(コンテナ共通機能)

3.6

パッケージ名変換機能の追加

jakartaパッケージ名を前提とするアプリケーションをアプリケーションサーバで動作させる機能を追加しました。

機能解説 基本・開発編(コンテナ共通機能)

20章

付録A.3　11-20での主な機能変更

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒3　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

JSF 2.3への対応

JSF 2.3に対応しました。

機能解説 基本・開発編(Web コンテナ)

3章

JAX-RS 2.1への対応

JAX-RS 2.1に対応しました。

機能解説 基本・開発編(Web コンテナ)

4章

WebSocket 1.1への対応

WebSocket 1.1に対応しました。

機能解説 基本・開発編(Web コンテナ)

5章

Servlet 4.0への対応

Servlet 4.0に対応しました。これに伴い，NIO HTTPサーバでHTTP/2に対応しました。

機能解説 基本・開発編(Web コンテナ)

8章

CDI Managed BeanでのJPA利用

CDI Managed BeanでのJPA利用に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

5章

JPA 2.2への対応

JPA 2.2に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

6章

CDI 2.0への対応

CDI 2.0に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

9章

WEB-INF/lib内のCDIへの対応

WARファイルのWEB-INF/lib以下のJARファイルからCDIを利用できるようにしました。

機能解説 基本・開発編(コンテナ共通機能)

9章

BV 2.0への対応

BV 2.0に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

10章

JSON-P 1.1への対応

JSON-P 1.1に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

12章

JSON-B 1.0への対応

JSON-B 1.0に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

13章

付録A.4　11-10での主な機能変更

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A‒4　導入・構築の容易性強化を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

ライブラリ競合回避機能の追加

クラス・リソースをロードするときの検索順序を変更し，ユーザアプリケーションに含まれるライブラリを優先して参照できるようにする機能を追加しました。

機能解説 基本・開発編(コンテナ共通機能)

付録B.4

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒5　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

JSP2.3への対応

JSP2.3に対応しました。

機能解説 基本・開発編(Web コンテナ)

8章

コンテナ管理のEntityManagerへの対応

JPA 2.1に対応したコンテナ管理のEntityManagerに対応しました。

機能解説 基本・開発編(コンテナ共通機能)

5章

Interceptors 1.2への対応

Interceptors 1.2に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

15章

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒6　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

セッションマネージャの指定機能の追加

クラウド環境利用時にHTTPセッションのセッションフェイルオーバを利用できるようにする機能を追加しました。

機能解説 基本・開発編(Web コンテナ)

2.22

付録A.5　11-00での主な機能変更

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A‒7　導入・構築の容易性強化を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

開発環境のWindows Server対応

クラウド環境上にアプリケーション開発環境を構築できるよう，uCosminexus DeveloperのサポートOSにWindows Server OSを追加しました。

−

−

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒8　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Servlet 3.0/3.1への対応

Servlet 3.0の非同期サーブレット，およびServlet 3.1の非同期I/O系APIに対応しました。

機能解説 基本・開発編(Webコンテナ)

8.1

EL 3.0への対応

EL 3.0に対応しました。

機能解説 基本・開発編(Webコンテナ)

2.3.3

JSF 2.2への対応

JSF 2.2に対応しました。

機能解説 基本・開発編(Webコンテナ)

3章

JAX-RS 2.0への対応

JAX-RS 2.0に対応しました。

機能解説 基本・開発編(Webコンテナ)

4章

WebSocket 1.0への対応

WebSocket 1.0に対応しました。

機能解説 基本・開発編(Webコンテナ)

5章

NIO HTTPサーバ機能の追加

従来のリダイレクタ機能やインプロセスHTTPサーバ機能に代わり，非同期サーブレットやWebSocketなどのノンブロッキングI/O処理に対応したインプロセスのHTTPサーバとして，NIO HTTPサーバ機能を追加しました。

機能解説 基本・開発編(Webコンテナ)

7章

JPA 2.1への対応

JPA 2.1に対応し，JPA 2.1対応のJPAプロバイダを利用できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

6章

CDI 1.2への対応

CDI 1.2に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

9章

BV 1.1への対応

Bean Validation 1.1に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

10章

Java Batch 1.0への対応

Batch Applications for the Java Platform （Java Batch） 1.0に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

11章

JSON-P 1.0への対応

Java API for JSON Processing（JSON-P） 1.0に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

12章

Concurrency Utilities 1.0への対応

Concurrency Utilities for Java EE 1.0に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

14章

WebSocket通信への対応

HTTP ServerからJ2EEサーバにWebSocket通信を中継する機能を追加しました。

HTTP Server

4.15

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒9　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

暗号化通信モジュールの変更

HTTP Serverの暗号化通信モジュールとしてmod_sslを採用しました。

HTTP Server

5章，付録D

(4)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒10　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

V9互換モードの追加

Version 9以前のJ2EEサーバから移行するユーザ向けに，Version 9との互換性を維持するためのV9互換モードを追加しました。

機能解説 保守／移行編

10.3.4

付録A.6　09-87での主な機能変更

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒11　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Java SE 11への対応

Java SE 11の機能が使用できるようになりました。

機能解説 保守／移行編

9章

付録A.7　09-80での主な機能変更

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒12　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

JAX-RS機能におけるラムダ式の使用

web.xmlのサーブレット初期化パラメタに指定したパッケージとそのサブパッケージに含まれるクラスで，ラムダ式が使用できるようになりました。

Webサービス開発ガイド

11.2

Java SE 9への対応

Java SE 9の機能が使用できるようになりました。

機能解説 保守／移行編

9章

(2)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒13　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

WebサーバのApache2.4のサポート

WebサーバのベースバージョンとしてApache2.4をサポートしました。

HTTP Server

6章，付録C

SSL通信での楕円曲線暗号の利用

楕円曲線暗号を利用したSSL通信ができるようになりました。

HTTP Server

5章，付録C

SSLライブラリの変更

SSL機能を提供するSSLライブラリをOpenSSLに変更しました。

HTTP Server

5章，付録C

付録A.8　09-70での主な機能変更

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒14　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

運用管理ポータルでのJSPコンパイルバージョンの追加

J2EEサーバでのJSPから生成されたサーブレットのコンパイル方法に「JDK1.7の仕様に従ったコンパイル」と「JDK7の仕様に従ったコンパイル」を追加しました。

運用管理ポータル操作ガイド

10.8.4

リファレンス 定義編(サーバ定義)

4.11.2

JDK8でのメタスペース対応

JavaVMの起動で使用しているPermanent領域用のオプションをMetaspace領域用のオプションに変更しました。

システム構築・運用ガイド

付録A.2

運用管理ポータル操作ガイド

10.8.7

リファレンス 定義編(サーバ定義)

5.2.1，5.2.2，8.2.3

統合ユーザ管理でのユーザ認証のSHA-2対応

統合ユーザ管理でのユーザ認証のハッシュアルゴリズムとしてSHA-224，SHA-256，SHA-384，SHA-512を追加しました。

このマニュアル

5.3.1，5.3.9，5.10.7，11.4.3，12.4.3，12.5.3，13.2，14.2.2

Red Hat Enterprise Linux Server 7での自動起動と自動再起動および自動停止の追加

Red Hat Enterprise Linux Server 7でのManagement Serverと運用管理エージェントの自動起動と自動再起動および自動停止方法を追加する。

機能解説 運用／監視／連携編

2.6.3，2.6.4，2.6.5

リファレンス コマンド編

7.2

(2)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A‒15　運用性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

V9.7へのバージョンアップ対応

バージョンアップ時のJavaVMの起動で使用しているPermanent領域用のオプションをMetaspace領域用のオプションに変更する手順を追加しました。

機能解説 保守／移行編

10.3.1，10.3.2，10.3.5

WARによる運用

WARファイルだけで構成されたWARアプリケーションをJ2EEサーバにデプロイできるようになりました。

機能解説 基本・開発編(Webコンテナ)

2.2.1

機能解説 基本・開発編(コンテナ共通機能)

18.9

リファレンス コマンド編

cjimportwar（WARアプリケーションのインポート）

運用管理機能の同期実行による起動と停止

運用管理機能（Management Serverおよび運用管理エージェント）の起動および停止を，同期実行するオプションを追加しました。

機能解説 運用／監視／連携編

2.6.1，2.6.2，2.6.3，2.6.4

リファレンス コマンド編

adminagentctl（運用管理エージェントの起動と停止），mngautorun（自動起動および自動再起動の設定／設定解除），mngsvrctl（Management Serverの起動／停止／セットアップ）

明示管理ヒープ機能でのExplicitメモリブロックの強制解放

javagcコマンドで，Explicitメモリブロックの解放処理を任意のタイミングで実行できるようになりました。

機能解説 拡張編

7.6.1，7.9

リファレンス コマンド編

javagc（GCの強制発生）

(3)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒16　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

snapshotログの収集対象

snapshotログの収集対象としてJavaVMイベントログとManagement Serverのスレッドダンプを追加しました。

機能解説 保守／移行編

付録A.2

cjenvsetupコマンドのログ出力

Component Container管理者のセットアップ（cjenvsetupコマンド）の実行情報がメッセージログに出力されるようになりました。

システム構築・運用ガイド

4.1.4

機能解説 保守／移行編

4.20

リファレンス コマンド編

cjenvsetup（Component Container管理者のセットアップ）

BIG-IP v11のサポート

使用できる負荷分散機の種類にBIG-IP v11が追加になりました。

システム構築・運用ガイド

4.7.2

仮想化システム構築・運用ガイド

2.1

明示管理ヒープ機能のイベントログへのCPU時間の出力

Explicitメモリブロック解放処理に掛かったCPU時間が，明示管理ヒープ機能のイベントログに出力されるようになりました。

機能解説 保守／移行編

5.11.3

ユーザ拡張性能解析トレースの機能拡張

ユーザ拡張性能解析トレースで，次の機能を追加しました。

トレース対象の指定方法を通常のメソッド単位の指定方法に加えて，パッケージ単位またはクラス単位で指定できるようになりました。

使用できるイベントIDの範囲を拡張しました。

ユーザ拡張性能解析トレース設定ファイルに指定できる行数の制限を緩和しました。

ユーザ拡張性能解析トレース設定ファイルでトレース取得レベルを指定できるようになりました。

機能解説 保守／移行編

7.5.2，7.5.3，8.25.1

Session Beanの非同期呼び出し使用時の情報解析向上

PRFトレースのルートアプリケーション情報を使用して，呼び出し元と呼び出し先のリクエストを突き合わせることができるようになりました。

機能解説 基本・開発編(EJBコンテナ)

2.17.3

付録A.9　09-60での主な機能変更

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒17　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

G1GCへの対応

G1GCを選択できるようになりました。

システム設計ガイド

7.15

リファレンス 定義編(サーバ定義)

14.5

圧縮オブジェクトポインタ機能への対応

圧縮オブジェクトポインタ機能を使用できるようになりました。

機能解説 保守/移行編

9.16

(2)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒18　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

ファイナライズ滞留解消機能の追加

ファイナライズ処理の滞留を解消でき，OS資源の解放遅れなどの発生を抑止できるようになりました。

機能解説 保守/移行編

9.17

(3)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒19　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

ログファイルの非同期出力機能の追加

ログのファイル出力を非同期でできるようになりました。

リファレンス 定義編(サーバ定義)

14.2

付録A.10　09-50での主な機能変更

(1)　開発生産性の向上

開発生産性の向上を目的として変更した項目を次の表に示します。

表A‒20　開発生産性の向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Eclipseセットアップの簡略化

GUIを利用してEclipse環境をセットアップできるようになりました。

アプリケーション開発ガイド

1.1.5，2.4

ユーザ拡張性能解析トレースを使ったデバッグ支援

ユーザ拡張性能解析トレース設定ファイルを開発環境で作成できるようになりました。

アプリケーション開発ガイド

1.1.3，6.4

(2)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A‒21　導入・構築の容易性強化を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

仮想化環境でのシステム構成パターンの拡充

仮想化環境で使用できるティアの種類（http-tier，j2ee-tierおよびctm-tier）が増えました。これによって，次のシステム構成パターンが構築できるようになりました。

WebサーバとJ2EEサーバを別のホストに配置するパターン

フロントエンド（サーブレット，JSP）とバックエンド（EJB）を分けて配置するパターン

CTMを使用するパターン

仮想化システム構築・運用ガイド

1.1.2

(3)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒22　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

JDBC 4.0仕様への対応

DB ConnectorでJDBC 4.0仕様のHiRDB Type4 JDBC Driver，およびSQL ServerのJDBCドライバに対応しました。

機能解説 基本・開発編(コンテナ共通機能)

3.6.3

Portable Global JNDI名での命名規則の緩和

Portable Global JNDI名に使用できる文字を追加しました。

機能解説 基本・開発編(コンテナ共通機能)

2.4.3

Servlet 3.0仕様への対応

Servlet 3.0のHTTP Cookieの名称，およびURLのパスパラメタ名の変更が，Servlet 2.5以前のバージョンでも使用できるようになりました。

機能解説 基本・開発編(Webコンテナ)

2.7

Bean Validationと連携できるアプリケーションの適用拡大

CDIやユーザアプリケーションでもBean Validationを使って検証できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

10章

JavaMailへの対応

JavaMail 1.4に準拠したAPIを使用したメール送受信機能を利用できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

8章

javacoreコマンドが使用できるOSの適用拡大

javacoreコマンドを使って，Windowsのスレッドダンプを取得できるようになりました。

リファレンス コマンド編

javacore（スレッドダンプの取得／Windowsの場合）

(4)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒23　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

コードキャッシュ領域の枯渇回避

システムで使用しているコードキャッシュ領域のサイズを確認して，領域が枯渇する前にしきい値を変更して領域枯渇するのを回避できるようになりました。

システム設計ガイド

7.2.6

機能解説 保守／移行編

5.7.2，5.7.3

リファレンス 定義編(サーバ定義)

14.1，14.2，14.4

明示管理ヒープ機能の効率的な適用への対応

自動解放処理時間を短縮し，明示管理ヒープ機能を効率的に適用するための機能として，Explicitヒープに移動するオブジェクトを制御できる次の機能を追加しました。

Explicitメモリブロックへのオブジェクト移動制御機能

明示管理ヒープ機能適用除外クラス指定機能

Explicitヒープ情報へのオブジェクト解放率情報の出力

システム設計ガイド

7.14.6

機能解説 拡張編

7.2.2，7.6.5，7.10，7.13.1，7.13.3

機能解説 保守／移行編

5.5

クラス別統計情報の出力範囲拡大

クラス別統計情報を含んだ拡張スレッドダンプに，staticフィールドを基点とした参照関係を出力できるようになりました。

機能解説 保守／移行編

9.6

(5)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A‒24　運用性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

EADsセッションフェイルオーバ機能のサポート

EADsと連携してセッションフェイルオーバ機能を実現するEADsセッションフェイルオーバ機能をサポートしました。

機能解説 拡張編

5章

WARによる運用

WARファイルだけで構成されたWARアプリケーションをJ2EEサーバにデプロイできるようになりました。

機能解説 基本・開発編(Webコンテナ)

2.2.1

機能解説 基本・開発編(コンテナ共通機能)

18.9

リファレンス コマンド編

cjimportwar（WARアプリケーションのインポート）

運用管理機能の同期実行による起動と停止

運用管理機能（Management Serverおよび運用管理エージェント）の起動および停止を，同期実行するオプションを追加しました。

機能解説 運用／監視／連携編

2.6.1，2.6.2，2.6.3，2.6.4

リファレンス コマンド編

adminagentctl（運用管理エージェントの起動と停止），mngautorun（自動起動および自動再起動の設定／設定解除），mngsvrctl（Management Serverの起動／停止／セットアップ）

明示管理ヒープ機能でのExplicitメモリブロックの強制解放

javagcコマンドで，Explicitメモリブロックの解放処理を任意のタイミングで実行できるようになりました。

機能解説 拡張編

7.6.1，7.9

リファレンス コマンド編

javagc（GCの強制発生）

(6)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒25　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

定義情報の取得

snapshotlog（snapshotログの収集）コマンドで定義ファイルだけを収集できるようになりました。

機能解説 保守／移行編

2.3

リファレンス コマンド編

snapshotlog（snapshotログの収集）

cjenvsetupコマンドのログ出力

Component Container管理者のセットアップ（cjenvsetupコマンド）の実行情報がメッセージログに出力されるようになりました。

システム構築・運用ガイド

4.1.4

機能解説 保守／移行編

4.20

リファレンス コマンド編

cjenvsetup（Component Container管理者のセットアップ）

BIG-IP v11のサポート

使用できる負荷分散機の種類にBIG-IP v11が追加になりました。

システム構築・運用ガイド

4.7.2

仮想化システム構築・運用ガイド

2.1

明示管理ヒープ機能のイベントログへのCPU時間の出力

Explicitメモリブロック解放処理に掛かったCPU時間が，明示管理ヒープ機能のイベントログに出力されるようになりました。

機能解説 保守／移行編

5.11.3

ユーザ拡張性能解析トレースの機能拡張

ユーザ拡張性能解析トレースで，次の機能を追加しました。

トレース対象の指定方法を通常のメソッド単位の指定方法に加えて，パッケージ単位またはクラス単位で指定できるようになりました。

使用できるイベントIDの範囲を拡張しました。

ユーザ拡張性能解析トレース設定ファイルに指定できる行数の制限を緩和しました。

ユーザ拡張性能解析トレース設定ファイルでトレース取得レベルを指定できるようになりました。

機能解説 保守／移行編

7.5.2，7.5.3，8.25.1

Session Beanの非同期呼び出し使用時の情報解析向上

PRFトレースのルートアプリケーション情報を使用して，呼び出し元と呼び出し先のリクエストを突き合わせることができるようになりました。

機能解説 基本・開発編(EJBコンテナ)

2.17.3

付録A.11　09-00での主な機能変更

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A‒26　導入・構築の容易性強化を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

仮想化環境での構築・運用の操作対象単位の変更

仮想化環境の構築・運用時の操作対象単位が仮想サーバから仮想サーバグループへ変更になりました。仮想サーバグループの情報を定義したファイルを使用して，複数の仮想サーバを管理ユニットへ一括で登録できるようになりました。

仮想化システム構築・運用ガイド

1.1.2

セットアップウィザードによる構築環境の制限解除

セットアップウィザードを使用して構築できる環境の制限が解除されました。ほかの機能で構築した環境があってもアンセットアップされて，セットアップウィザードで構築できるようになりました。

システム構築・運用ガイド

2.2.7

構築環境の削除手順の簡略化

Management Serverを使用して構築したシステム環境を削除する機能（mngunsetupコマンド）の追加によって，削除手順を簡略化しました。

システム構築・運用ガイド

4.1.37

運用管理ポータル操作ガイド

3.6，5.4

リファレンス コマンド編

mngunsetup（Management Serverの構築環境の削除）

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒27　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Servlet 3.0への対応

Servlet 3.0に対応しました。

機能解説 基本・開発編(Webコンテナ)

8章

EJB 3.1への対応

EJB 3.1に対応しました。

機能解説 基本・開発編(EJBコンテナ)

2章

JSF 2.1への対応

JSF 2.1に対応しました。

機能解説 基本・開発編(Webコンテナ)

3章

JSTL 1.2への対応

JSTL 1.2に対応しました。

機能解説 基本・開発編(Webコンテナ)

3章

CDI 1.0への対応

CDI 1.0に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

9章

Portable Global JNDI名の利用

Portable Global JNDI名を利用したオブジェクトのルックアップができるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

2.4

JAX-WS 2.2への対応

JAX-WS 2.2に対応しました。

Webサービス開発ガイド

1.1，16.1.5，16.1.7，16.2.1，16.2.6，16.2.10，16.2.12，16.2.13，16.2.14，16.2.16，16.2.17，16.2.18，16.2.20，16.2.22，19.1，19.2.3，37.2，37.6.1，37.6.2，37.6.3

JAX-RS 1.1への対応

JAX-RS 1.1に対応しました。

Webサービス開発ガイド

1.1，1.2.2，1.3.2，1.4.2，1.5.1，1.6，2.3，11章，12章，13章，17章，24章，39章

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒28　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

SSL/TLS通信でのTLSv1.2の使用

RSA BSAFE SSL-Jを使用して，TLSv1.2を含むセキュリティ・プロトコルでSSL/TLS通信ができるようになりました。

このマニュアル

7.3

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A‒29　運用性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Webコンテナ全体の実行待ちキューの総和の監視

Webコンテナ全体の実行待ちキューの総和を稼働情報に出力して監視できるようになりました。

機能解説 運用／監視／連携編

3章

アプリケーションの性能解析トレース（ユーザ拡張トレース）の出力

ユーザが開発したアプリケーションの処理性能を解析するための性能解析トレースを，アプリケーションの変更をしないで出力できるようになりました。

機能解説 保守／移行編

7章

仮想化環境でのユーザスクリプトを使用した運用

任意のタイミングでユーザ作成のスクリプト（ユーザスクリプト）を仮想サーバ上で実行できるようになりました。

仮想化システム構築・運用ガイド

7.8

運用管理ポータル改善

運用管理ポータルの次の画面で，手順を示すメッセージを画面に表示するように変更しました。

［設定情報の配布］画面

Webサーバ，J2EEサーバおよびSFOサーバの起動画面

WebサーバクラスタとJ2EEサーバクラスタの一括起動，一括再起動および起動画面

運用管理ポータル操作ガイド

10.10.1，11.9.2，11.10.2，11.10.4，11.10.6，11.11.2，11.12.2，11.12.4，11.12.6

運用管理機能の再起動機能の追加

運用管理機能（Management Serverおよび運用管理エージェント）で自動再起動が設定できるようになり，運用管理機能で障害が発生した場合でも運用が継続できるようになりました。また，自動起動の設定方法も変更になりました。

機能解説 運用／監視／連携編

2.4.1，2.4.2，2.6.3，2.6.4

リファレンス コマンド編

mngautorun（自動起動および自動再起動の設定／設定解除）

(5)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒30　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

ログ出力時のファイル切り替え単位の変更

ログ出力時に，日付ごとに出力先のファイルを切り替えられるようになりました。

機能解説 保守／移行編

3.2.1

Webサーバの名称の変更

アプリケーションサーバに含まれるWebサーバの名称をHTTP Serverに変更しました。

HTTP Server

−

BIG-IPのAPI（SOAPアーキテクチャ）を使用した直接接続への対応

BIG-IP（負荷分散機）でAPI（SOAPアーキテクチャ）を使用した直接接続に対応しました。

また，APIを使用した直接接続を使用する場合に，負荷分散機の接続環境を設定する方法が変更になりました。

システム構築・運用ガイド

4.7.3，付録J

仮想化システム構築・運用ガイド

2.1，付録C

このマニュアル

8.2，8.4，8.5，8.6，18.2.1，18.2.2，18.2.3

（凡例）−：マニュアル全体を参照する

付録A.12　08-70での主な機能変更

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A‒31　導入・構築の容易性強化を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

運用管理ポータル改善

運用管理ポータルの画面で，リソースアダプタの属性を定義するプロパティ（Connector属性ファイルの設定内容）の設定，および接続テストができるようになりました。また，運用管理ポータルの画面で，J2EEアプリケーション（earファイルおよびzipファイル）をManagement Serverにアップロードできるようになりました。

ファーストステップガイド

3.5

運用管理ポータル操作ガイド

−

page/tagディレクティブのimport属性暗黙インポート機能の追加

page/tagディレクティブのimport属性暗黙インポート機能を使用できるようになりました。

機能解説 基本・開発編(Webコンテナ)

2.3.7

仮想化環境でのJP1製品に対する環境設定の自動化対応

仮想サーバへのアプリケーションサーバ構築時に，仮想サーバに対するJP1製品の環境設定を，フックスクリプトで自動的に設定できるようになりました。

仮想化システム構築・運用ガイド

7.7.2

統合ユーザ管理機能の改善

ユーザ情報リポジトリでデータベースを使用する場合に，データベース製品のJDBCドライバを使用して，データベースに接続できるようになりました。DABroker LibraryのJDBCドライバによるデータベース接続はサポート外になりました。

簡易構築定義ファイルおよび運用管理ポータルの画面で，統合ユーザ管理機能に関する設定ができるようになりました。

また，Active Directoryの場合，DNで日本語などの2バイト文字に対応しました。

このマニュアル

5章

運用管理ポータル操作ガイド

3.5，10.8.1

このマニュアル

14.2.2

HTTP Server設定項目の拡充

簡易構築定義ファイルおよび運用管理ポータルの画面で，HTTP Serverの動作環境を定義するディレクティブ（httpsd.confの設定内容）を直接設定できるようになりました。

システム構築・運用ガイド

4.1.21

運用管理ポータル操作ガイド

10.9.1

リファレンス 定義編(サーバ定義)

4.10

（凡例）−：マニュアル全体を参照する

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒32　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

ejb-jar.xmlの指定項目の追加

ejb-jar.xmlに，クラスレベルインターセプタおよびメソッドレベルインターセプタを指定できるようになりました。

機能解説 基本・開発編(EJBコンテナ)

2.15

パラレルコピーガーベージコレクションへの対応

パラレルコピーガーベージコレクションを選択できるようになりました。

リファレンス 定義編(サーバ定義)

14.5

Connector 1.5仕様に準拠したInboundリソースアダプタのグローバルトランザクションへの対応

Connector 1.5仕様に準拠したリソースアダプタでTransacted Deliveryを使用できるようにしました。これによって，Message-driven Beanを呼び出すEISがグローバルトランザクションに参加できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

3.16.3

TP1インバウンドアダプタのMHPへの対応

TP1インバウンドアダプタを使用してアプリケーションサーバを呼び出すOpenTP1のクライアントとして，MHPを使用できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

4章

cjrarupdateコマンドのFTPインバウンドアダプタへの対応

cjrarupdateコマンドでバージョンアップできるリソースアダプタにFTPインバウンドアダプタを追加しました。

リファレンス コマンド編

2.2

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒33　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

データベースセッションフェイルオーバ機能の改善

性能を重視するシステムで，グローバルセッション情報を格納したデータベースのロックを取得しないモードを選択できるようになりました。また，データベースを更新しない，参照専用のリクエストを定義できるようになりました。

機能解説 拡張編

6章

OutOfMemoryハンドリング機能の対象となる処理の拡大

OutOfMemoryハンドリング機能の対象となる処理を追加しました。

機能解説 保守／移行編

2.5.4

リファレンス 定義編(サーバ定義)

14.2

HTTPセッションで利用するExplicitヒープの省メモリ化機能の追加

HTTPセッションで利用するExplicitヒープのメモリ使用量を抑止する機能を追加しました。

機能解説 拡張編

7.11

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A‒34　運用性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

仮想化環境でのJP1製品を使用したユーザ認証への対応（クラウド運用対応）

JP1連携時に，JP1製品の認証サーバを利用して，仮想サーバマネージャを使用するユーザを管理・認証できるようになりました。

仮想化システム構築・運用ガイド

1.2.2，3章，4章，5章，6章，7.9

(5)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒35　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

負荷分散機へのAPI（RESTアーキテクチャ）を使用した直接接続の対応

負荷分散機への接続方法として，API（RESTアーキテクチャ）を使用した直接接続に対応しました。

また，使用できる負荷分散機の種類にACOS（AX2500）が追加になりました。

システム構築・運用ガイド

4.7.2，4.7.3

仮想化システム構築・運用ガイド

2.1

リファレンス 定義編(サーバ定義)

4.2.4

snapshotログ収集時のタイムアウトへの対応と収集対象の改善

snapshotログの収集が指定した時間で終了（タイムアウト）できるようになりました。一次送付資料として収集される内容が変更になりました。

機能解説 保守／移行編

付録A

付録A.13　08-53での主な機能変更

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A‒36　導入・構築の容易性強化を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

さまざまなハイパーバイザに対応した仮想化環境の構築

さまざまなハイパーバイザを使用して実現する仮想サーバ上に，アプリケーションサーバを構築できるようになりました。

また，複数のハイパーバイザが混在する環境にも対応しました。

仮想化システム構築・運用ガイド

2章，3章，5章

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒37　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

トランザクション連携に対応したOpenTP1からの呼び出し

OpenTP1からアプリケーションサーバ上で動作するMessage-driven Beanを呼び出すときに，トランザクション連携ができるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

4章

JavaMail

POP3に準拠したメールサーバと連携して，JavaMail 1.3に準拠したAPIを使用したメール受信機能を利用できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

8章

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒38　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

JavaVMのトラブルシュート機能強化

JavaVMのトラブルシュート機能として，次の機能が使用できるようになりました。

OutOfMemoryError発生時の動作を変更できるようになりました。

JITコンパイル時に，Cヒープ確保量の上限値を設定できるようになりました。

スレッド数の上限値を設定できるようになりました。

拡張verbosegc情報の出力項目を拡張しました。

機能解説 保守／移行編

4章，5章，9章

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A‒39　運用性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

JP1/ITRMへの対応

ITリソースを一元管理する製品であるJP1/ITRMに対応しました。

仮想化システム構築・運用ガイド

1.3，2.1

(5)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒40　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

Microsoft IIS 7.0およびMicrosoft IIS 7.5への対応

WebサーバとしてMicrosoft IIS 7.0およびMicrosoft IIS 7.5に対応しました。

−

−

HiRDB Version 9およびSQL Server 2008への対応

データベースとして次の製品に対応しました。

HiRDB Server Version 9

HiRDB/Developer's Kit Version 9

HiRDB/Run Time Version 9

SQL Server 2008

また，SQL Server 2008に対応するJDBCドライバとして，SQL Server JDBC Driverに対応しました。

機能解説 基本・開発編(コンテナ共通機能)

3章

（凡例）−：該当なし。

付録A.14　08-50での主な機能変更

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A‒41　導入・構築の容易性強化を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Webサービスプロバイダ側でのweb.xmlの指定必須タグの変更

Webサービスプロバイダ側でのweb.xmlで，listenerタグ，servletタグおよびservlet-mappingタグの指定を必須から任意に変更しました。

リファレンス 定義編(サーバ定義)

2.2.3

論理サーバのネットワークリソース使用

J2EEアプリケーションからほかのホスト上にあるネットワークリソースやネットワークドライブにアクセスするための機能を追加しました。

機能解説 運用／監視／連携編

1.2.3，5.2，5.7

サンプルプログラムの実行手順の簡略化

一部のサンプルプログラムをEAR形式で提供することによって，サンプルプログラムの実行手順を簡略化しました。

ファーストステップガイド

3.5

システム構築・運用ガイド

付録L

運用管理ポータルの画面の動作の改善

画面の更新間隔のデフォルトを「更新しない」から「3秒」に変更しました。

運用管理ポータル操作ガイド

7.4.1

セットアップウィザードの完了画面の改善

セットアップウィザード完了時の画面に，セットアップで使用した簡易構築定義ファイルおよびConnector属性ファイルが表示されるようになりました。

システム構築・運用ガイド

2.2.6

仮想化環境の構築

ハイパーバイザを使用して実現する仮想サーバ上に，アプリケーションサーバを構築する手順を追加しました。

仮想化システム構築・運用ガイド

3章，5章

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A‒42　標準機能・既存機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

OpenTP1からの呼び出しへの対応

OpenTP1からアプリケーションサーバ上で動作するMessage-driven Beanを呼び出せるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

4章

JMSへの対応

JMS 1.1仕様に対応したCJMSプロバイダ機能を使用できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

7章

Java SE 6への対応

Java SE 6の機能が使用できるようになりました。

機能解説 保守／移行編

5.5，5.8.1

ジェネリクスの使用への対応

EJBでジェネリクスを使用できるようになりました。

機能解説 基本・開発編(EJBコンテナ)

4.2.18

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒43　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

明示管理ヒープ機能の使用性向上

自動配置設定ファイルを使用して，明示管理ヒープ機能を容易に使用できるようになりました。

システム設計ガイド

7.2，7.7.3，7.11.4，7.12.1

機能解説 拡張編

7章

データベースセッションフェイルオーバ機能のURI単位での抑止

データベースセッションフェイルオーバ機能を使用する場合に，機能の対象外にするリクエストをURI単位で指定できるようになりました。

機能解説 拡張編

5.6.1

仮想化環境での障害監視

仮想化システムで，仮想サーバを監視し，障害の発生を検知できるようになりました。

仮想化システム構築・運用ガイド

−

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A‒44　運用性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

管理ユーザアカウントの省略

運用管理ポータル，Management Serverのコマンド，またはSmart Composer機能のコマンドで，ユーザのログインIDおよびパスワードの入力を省略できるようになりました。

システム構築・運用ガイド

4.1.15

運用管理ポータル操作ガイド

2.2，7.1.1，7.1.2，7.1.3，8.1，8.2.1，付録E.2

リファレンス コマンド編

1.4，mngsvrctl（Management Serverの起動／停止／セットアップ），mngsvrutil（Management Serverの運用管理コマンド），8.3，cmx_admin_passwd（Management Serverの管理ユーザアカウントの設定）

仮想化環境の運用

仮想化システムで，複数の仮想サーバを対象にした一括起動・一括停止，スケールイン・スケールアウトなどを実行する手順を追加しました。

仮想化システム構築・運用ガイド

4章，6章

(5)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒45　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

Tenured領域内不要オブジェクト統計機能

Tenured領域内で不要となったオブジェクトだけを特定できるようになりました。

機能解説 保守／移行編

9.8

Tenured増加要因の基点オブジェクトリスト出力機能

Tenured領域内不要オブジェクト統計機能を使って特定した，不要オブジェクトの基点となるオブジェクトの情報を出力できるようになりました。

9.9

クラス別統計情報解析機能

クラス別統計情報をCSV形式で出力できるようになりました。

9.10

論理サーバの自動再起動回数オーバー検知によるクラスタ系切り替え

Management Serverを系切り替えの監視対象としているクラスタ構成の場合，論理サーバが異常停止状態(自動再起動回数をオーバーした状態，または自動再起動回数の設定が0のときに障害を検知した状態)になったタイミングでの系切り替えができるようになりました。

機能解説 運用／監視／連携編

18.4.3，18.5.3，16.2.2，16.3.3，16.3.4

ホスト単位管理モデルを対象とした系切り替えシステム

クラスタソフトウェアと連携したシステム運用で，ホスト単位管理モデルを対象にした系切り替えができるようになりました。

16章

ACOS（AX2000，BS320）のサポート

使用できる負荷分散機の種類にACOS（AX2000，BS320）が追加になりました。

システム構築・運用ガイド

4.7.2，4.7.3，4.7.5，4.7.6，付録J，付録J.2

リファレンス 定義編(サーバ定義)

4.2.4，4.3.2，4.3.4，4.3.5，4.3.6，4.7.1

CMTでトランザクション管理をする場合にStateful Session Bean（SessionSynchronization）に指定できるトランザクション属性の追加

CMTでトランザクション管理をする場合に，Stateful Session Bean（SessionSynchronization）にトランザクション属性としてSupports，NotSupportedおよびNeverを指定できるようになりました。

機能解説 基本・開発編(EJBコンテナ)

2.7.3

OutOfMemoryError発生時の運用管理エージェントの強制終了

JavaVMでOutOfMemoryErrorが発生したときに，運用管理エージェントが強制終了するようになりました。

機能解説 保守／移行編

2.5.5

スレッドの非同期並行処理

TimerManagerおよびWorkManagerを使用して，非同期タイマ処理および非同期スレッド処理を実現できるようになりました。

機能解説 拡張編

−

付録A.15　08-00での主な機能変更

(1)　開発生産性の向上

開発生産性の向上を目的として変更した項目を次の表に示します。

表A‒46　開発生産性の向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

ほかのアプリケーションサーバ製品からの移行容易化

ほかのアプリケーションサーバ製品からの移行を円滑に実施するため，次の機能を使用できるようになりました。

HTTPセッションの上限が例外で判定できるようになりました。

JavaBeansのIDが重複している場合や，カスタムタグの属性名とTLDの定義で大文字・小文字が異なる場合に，トランスレーションエラーが発生することを抑止できるようになりました。

機能解説 基本・開発編(Webコンテナ)

2.3，2.7.5

cosminexus.xmlの提供

アプリケーションサーバ独自の属性をcosminexus.xmlに記載することによって，J2EEアプリケーションをJ2EEサーバにインポート後，プロパティの設定をしないで開始できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

16.3

(2)　標準機能への対応

標準機能への対応を目的として変更した項目を次の表に示します。

表A‒47　標準機能への対応を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

Servlet 2.5への対応

Servlet 2.5に対応しました。

機能解説 基本・開発編(Webコンテナ)

2.2，2.5.4，2.6，8章

JSP 2.1への対応

JSP 2.1に対応しました。

機能解説 基本・開発編(Webコンテナ)

2.3.1，2.3.3，2.5，2.6，8章

JSPデバッグ

MyEclipseを使用した開発環境でJSPデバッグができるようになりました。※

機能解説 基本・開発編(Webコンテナ)

2.4

タグライブラリのライブラリJARへの格納とTLDのマッピング

タグライブラリをライブラリJARに格納した場合に，Webアプリケーション開始時にWebコンテナによってライブラリJAR内のTLDファイルを検索し，自動的にマッピングできるようになりました。

機能解説 基本・開発編(Webコンテナ)

2.3.4

application.xmlの省略

J2EEアプリケーションでapplication.xmlが省略できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

16.4

アノテーションとDDの併用

アノテーションとDDを併用できるようになり，アノテーションで指定した内容をDDで更新できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

17.5

アノテーションのJava EE 5標準準拠（デフォルトインターセプタ）

デフォルトインターセプタをライブラリJARに格納できるようになりました。また，デフォルトインターセプタからDIできるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

16.4

@Resourceの参照解決

@Resourceでリソースの参照解決ができるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

17.4

JPAへの対応

JPA仕様に対応しました。

機能解説 基本・開発編(コンテナ共通機能)

6章

注※　09-00以降では，WTPを使用した開発環境でJSPデバッグ機能を使用できます。

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A‒48　信頼性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

セッション情報の永続化

HTTPセッションのセッション情報をデータベースに保存して引き継げるようになりました。

機能解説 拡張編

5章，6章

FullGCの抑止

FullGCの要因となるオブジェクトをJavaヒープ外に配置することで，FullGC発生を抑止できるようになりました。

機能解説 拡張編

7章

クライアント性能モニタ

クライアント処理に掛かった時間を調査・分析できるようになりました。

−

−

（凡例）−：09-00で削除された機能です。

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A‒49　運用性の維持・向上を目的とした変更

項目

変更の概要

参照先マニュアル

参照個所

運用管理ポータルでのアプリケーション操作性向上

アプリケーションおよびリソースの操作について，サーバ管理コマンドと運用管理ポータルの相互運用ができるようになりました。

運用管理ポータル操作ガイド

1.1.3

(5)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A‒50　そのほかの目的による変更

項目

変更の概要

参照先マニュアル

参照個所

無効なHTTP Cookieの削除

無効なHTTP Cookieを削除できるようになりました。

機能解説 基本・開発編(Webコンテナ)

2.7.4

ネーミングサービスの障害検知

ネーミングサービスの障害が発生した場合に，EJBクライアントが，より早くエラーを検知できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

2.9

コネクション障害検知タイムアウト

コネクション障害検知タイムアウトのタイムアウト時間を指定できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

3.15.1

Oracle11gへの対応

データベースとしてOracle11gが使用できるようになりました。

機能解説 基本・開発編(コンテナ共通機能)

3章

バッチ処理のスケジューリング

バッチアプリケーションの実行をCTMによってスケジューリングできるようになりました。

機能解説 拡張編

4章

バッチ処理のログ

バッチ実行コマンドのログファイルのサイズ，面数，ログの排他処理失敗時のリトライ回数とリトライ間隔を指定できるようになりました。

リファレンス 定義編(サーバ定義)

3.2.5

snapshotログ

snapshotログの収集内容が変更されました。

機能解説 保守／移行編

付録A.1，付録A.2

メソッドキャンセルの保護区公開

メソッドキャンセルの対象外となる保護区リストの内容を公開しました。

機能解説 運用／監視／連携編

付録C

統計前のガーベージコレクション選択機能

クラス別統計情報を出力する前に，ガーベージコレクションを実行するかどうかを選択できるようになりました。

機能解説 保守／移行編

9.7

Survivor領域の年齢分布情報出力機能

Survivor領域のJavaオブジェクトの年齢分布情報をJavaVMログファイルに出力できるようになりました。

機能解説 保守／移行編

9.11

ファイナライズ滞留解消機能

JavaVMのファイナライズ処理の状態を監視して，処理の滞留を解消できるようになりました。

−

−

サーバ管理コマンドの最大ヒープサイズの変更

サーバ管理コマンドが使用する最大ヒープサイズが変更されました。

リファレンス 定義編(サーバ定義)

5.2.1，5.2.2

推奨しない表示名を指定された場合の対応

J2EEアプリケーションで推奨しない表示名を指定された場合にメッセージが出力されるようになりました。

メッセージ(構築／運用／開発用)

KDJE42374-W

（凡例）−：09-00で削除された機能です。

付録B　例外リストの登録（Windowsの場合）

Windowsの場合に，ファイアウォールを有効にするときは，ファイアウォールの例外リストに構成ソフトウェアのプログラムを登録する必要があります。登録する例外リストは，構成ソフトウェアによって異なります。

次の表に示す構成ソフトウェアをインストールしている場合に，ファイアウォールを有効にするときは，コマンドプロンプトでコマンドを実行して，例外リストを登録してください。構成ソフトウェアごとに実行する例外リスト登録コマンドを次の表に示します。なお，アプリケーションサーバおよびBPM/ESB基盤の製品を利用して作成したプログラムも，例外リストに追加する必要があります。例外リスト登録コマンドなどを使用して，作成したプログラムを例外リストに登録してください。

表B‒1　構成ソフトウェアごとに実行する例外リスト登録コマンド

インストール済みの構成ソフトウェア

例外リスト登録の実施条件

実行する例外リスト登録コマンド

Component Container

必ず実施

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CC¥server¥bin¥cjstartsv.exe" name="Cosminexus Component Container" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CC¥web¥bin¥cjstartweb.exe" name="Cosminexus Component Container" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CC¥client¥bin¥cjclstartap.exe" name="Cosminexus Component Container" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥manager¥bin¥adminagent.exe" name="Cosminexus Component Container" mode=ENABLE

サーバ管理コマンドを実行する場合

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥vbj.exe" name="Cosminexus Component Container" mode=ENABLE※1

バッチコマンドでスケジューリング機能を使用する場合

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CC¥batch¥bin¥cjexecjob.exe" name="Cosminexus Component Container" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CC¥batch¥bin¥cjkilljob.exe" name="Cosminexus Component Container" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CC¥batch¥bin¥cjlistjob.exe" name="Cosminexus Component Container" mode=ENABLE

仮想サーバのサーバ通信エージェントを使用する場合

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥sinagent¥bin¥sinaviagent.exe" name="uCosminexus SI Navigation System Agent" mode=ENABLE

Component Transaction Monitor

必ず実施

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmchpara.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmd.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmdmd.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmdmstart.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmdmstop.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmgetior.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmholdque.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmidl2cpp.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmidl2j.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmlsque.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmnaminfo.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmregltd.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmridinfo.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmrlesque.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmstart.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmstop.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmstartgw.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmstopgw.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥CTM¥bin¥ctmtscgwd.exe" name="Cosminexus Component Transaction Monitor" mode=ENABLE

HTTP Server

必ず実施

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥httpsd¥httpsd.exe" name="Cosminexus HTTP Server"mode=ENABLE

TPBroker※2

必ず実施

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥events.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥gatekeeper.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥irep.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥nameserv.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥oad.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥osagent.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥osfind.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥admd.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥otsd.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥trnctxsv.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥tsstoptrnctxsv.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥tscommit.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥tslstrn.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥tsrollback.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥tsstat.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥tsstop.exe" name="Cosminexus TPBroker" mode=ENABLE

netsh firewall add allowedprogram program="<Application Serverのインストールディレクトリ>¥TPB¥bin¥tstrnsts.exe" name="Cosminexus TPBroker" mode=ENABLE

HiRDB/Single Server Version 10

DeveloperまたはService Architectで組み込みデータベースを使用する場合

for %%p in (<DeveloperまたはService Architectのインストールディレクトリ>¥DB¥bin¥*.exe) do netsh firewall set allowedprogram %%p "Cosminexus Developer(DB)"

for %%p in (<DeveloperまたはService Architectのインストールディレクトリ>¥DB¥lib¥servers¥*.exe) do netsh firewall set allowedprogram %%p "Cosminexus Developer(DB)"

for %%p in (<DeveloperまたはService Architectのインストールディレクトリ>¥DB¥SAMPLE¥sampleconf¥*.exe) do netsh firewall set allowedprogram %%p "Cosminexus Developer(DB)"

for %%p in (<DeveloperまたはService Architectのインストールディレクトリ>¥DB¥SAMPLE¥tools¥*.exe) do netsh firewall set allowedprogram %%p "Cosminexus Developer(DB)"

for %%p in (<DeveloperまたはService Architectのインストールディレクトリ>¥DB¥PDISTUP¥bin¥*.exe) do netsh firewall set allowedprogram %%p "Cosminexus Developer(DB)"

注※1　vbjコマンドを使用しているEJBクライアントも，ファイアウォールのフィルタリング対象から除外されるので，注意してください。

注※2　tssetfwコマンドを使用して例外リストを登録することもできます。tssetfwコマンドについては，「TPBroker追加機能 取扱説明書」を参照してください。

付録C　用語解説

マニュアルで使用する用語について

マニュアル「アプリケーションサーバ & BPM/ESB基盤 用語解説」を参照してください。

索引

記号

<LB接続情報の識別名>.properties[1]

<security-constraint>要素の設定[1]

<security-identity>要素の設定[1]

<ua:attributeEntries>Entries</ua:attributeEntries>タグ[1]

<ua:attributeEntry/>タグ[1]

<ua:chpw/>タグ[1]

<ua:exception>Body</ua:exception>タグ[1]

<ua:getAttribute/>タグ[1]

<ua:getAttributeNames/>タグ[1]

<ua:getAttributes/>タグ[1]

<ua:getPrincipalName/>タグ[1]

<ua:login/>タグ[1]

<ua:logout/>タグ[1]

<ua:notLogin>Body</ua:notLogin>タグ[1]

「リソース監視」で出力されるJDBC接続の障害情報[1]

「リソース監視」で出力されるLDAP接続の障害情報[1]

「リソース監視」のサーバビューの構成[1]

「リソース監視」のツリーペインの構成[1]

「リソース監視」のホストビューの構成[1]

「リポジトリ管理」での注意事項[1]

「リポジトリ管理」のツリーペインの構成[1]

-nosecurityオプション[1]

数字

09-70での主な機能変更[1]

09-80での主な機能変更[1]

09-87での主な機能変更[1]

11-00での主な機能変更[1]

11-10での主な機能変更[1]

11-20での主な機能変更[1]

11-30での主な機能変更[1]

11-40での主な機能変更[1]

A

Active Directoryを使用する場合の設定[1]

addAttributeメソッド[1]、[2]

addSSODataListenerメソッド[1]

addSSODataメソッド[1]

addUserDataメソッド（形式1）[1]

addUserDataメソッド（形式2）[1]

APIとSPIの関係[1]

APIによる実装時の注意事項[1]

APIの例外クラス[1]

API用パラメタ[1]

APIを使用したユーザ認証の実装[1]

Application〔JAASのコンフィグレーションファイルのオプション〕[1]

AttributeEntryクラス[1]

AttributeEntryコンストラクタ[1]

C

ChangeDataFailedExceptionクラス[1]

ChangeDataFailedExceptionコンストラクタ[1]

changePasswordメソッド[1]

checkメソッド（形式1）[1]

checkメソッド（形式2）[1]

closeメソッド[1]

com.cosminexus.admin.auth.api.repository.event.ChangeDataFailedException[1]

com.cosminexus.admin.auth.api.repository.event.SSODataListenerException[1]

com.cosminexus.admin.auth.api.repository.ldap.config〔API用パラメタ〕[1]

com.cosminexus.admin.auth.api.repository.ldap.ObjectClassError[1]

com.cosminexus.admin.auth.CryptoException[1]

com.cosminexus.admin.auth.custom.lm〔DelegationLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.custom.modules〔カスタムログインモジュールのパラメタ〕[1]

com.cosminexus.admin.auth.gsession.keep_password〔WebPasswordJDBCLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.gsession.keep_password〔WebPasswordLDAPLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.gsession.keep_password〔WebPasswordLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.gsession.keep_password〔標準ログインモジュールのパラメタ〕[1]

com.cosminexus.admin.auth.jdbc.conn.password〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.conn.retry.count〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.conn.retry.wait〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.conn.url〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.conn.user〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.driver[1]

com.cosminexus.admin.auth.jdbc.password.encrypt.ex〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.password.encrypt〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.password.type〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.pool.enable〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.pool.gc_interval〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.pool.max_spare〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.pool.max〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.pool.min_spare〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.jdbc.r〔WebPasswordJDBCLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.jdbc.sql〔JDBC用パラメタ〕[1]

com.cosminexus.admin.auth.keep_password.encrypt〔WebPasswordJDBCLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.keep_password.encrypt〔WebPasswordLDAPLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.keep_password.encrypt〔WebPasswordLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.keep_password.encrypt〔標準ログインモジュールのパラメタ〕[1]

com.cosminexus.admin.auth.keep_password〔WebPasswordJDBCLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.keep_password〔WebPasswordLDAPLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.keep_password〔WebPasswordLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.keep_password〔標準ログインモジュールのパラメタ〕[1]

com.cosminexus.admin.auth.ldap.attr.password〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.attr.userid〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.basedn〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.certificate.attr.userid〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.conn.read_timeout〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.conn.retry.count〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.conn.retry.wait〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.directory.kind〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.password.encrypt.ex〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.password.encrypt〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.pool.enable〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.pool.gc_interval〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.pool.max_spare〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.pool.max〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.pool.min_spare〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.r〔WebCertificateLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.ldap.r〔WebPasswordLDAPLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.ldap.r〔WebPasswordLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.ldap.search.scope〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.search.userrdn〔JNDI用パラメタ〕[1]

com.cosminexus.admin.auth.ldap.w〔WebPasswordLDAPLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.ldap.w〔WebPasswordLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.param_check.enable〔標準ログインモジュールのパラメタ〕[1]

com.cosminexus.admin.auth.realm〔DelegationLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.realm〔WebCertificateLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.realm〔WebPasswordJDBCLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.realm〔WebPasswordLDAPLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.realm〔WebPasswordLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.realm〔WebSSOLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.sfo.disable〔セッションフェイルオーバ対応のパラメタ〕[1]

com.cosminexus.admin.auth.sso.encrypt〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso.keyfile〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso.ldap.r〔WebSSOLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.sso.ldap.r〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso.ldap.w〔WebPasswordLDAPLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.sso.ldap.w〔WebPasswordLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.sso.ldap.w〔WebSSOLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.sso.ldap.w〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso.lm〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso.param.pubdat〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso.param.secdat〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso.param.userid〔シングルサインオン用パラメタ〕[1]

com.cosminexus.admin.auth.sso〔WebSSOLoginModuleに指定するオプション〕[1]

com.cosminexus.admin.auth.trace.level〔トレースのパラメタ〕[1]

com.cosminexus.admin.auth.trace.prefix〔トレースのパラメタ〕[1]

com.cosminexus.admin.auth.trace.rotate〔トレースのパラメタ〕[1]

com.cosminexus.admin.auth.trace.size〔トレースのパラメタ〕[1]

com.cosminexus.admin.common.ConfigError[1]

com.cosminexus.admin.common.FormatError[1]

com.cosminexus.admin.common.ParameterError[1]

com.cosminexus.admin.common.UAException[1]

com.sun.jndi.ldap.connect.timeout〔JNDI用パラメタ〕[1]

convpw[1]

cosminexus.xmlを含まないアプリケーションのプロパティ設定[1]

CSV形式ファイルの記述例[1]

CSV形式ファイルの基本仕様[1]

D

DDの設定によるWebコンテナのユーザ認証[1]

DDの設定によるWebコンテナのユーザ認証の機能[1]

DelegationLoginModule[1]

DelegationLoginModuleクラス[1]

DelegationLoginModuleに指定するオプション[1]

E

EJBクライアントアプリケーションでのセキュリティの実装[1]

EJBクライアントアプリケーションの実装で使用するAPI[1]

encryptメソッド[1]

Enterprise Beanのセキュリティアイデンティティ[1]

Enterprise Beanのセキュリティロールリファレンスの定義[1]

F

Flag〔JAASのコンフィグレーションファイルのオプション〕[1]

G

getAliasメソッド[1]

getAttributeEntriesメソッド[1]、[2]

getAttributeNamesメソッド[1]、[2]

getAttributeNameメソッド[1]

getAttributesメソッド[1]、[2]

getAttributeメソッド[1]、[2]

getExceptionメソッド[1]

getListenersメソッド[1]

getLoginInfoManagerメソッド[1]

getMappingRealmsメソッド[1]

getMappingメソッド[1]

getNameメソッド[1]

getObjectClassesメソッド[1]

getOldPublicDataメソッド[1]

getOldSecretDataメソッド[1]

getOptionメソッド[1]

getPasswordメソッド[1]

getPublicDataメソッド[1]、[2]

getRequestメソッド[1]、[2]、[3]

getResponseメソッド[1]、[2]、[3]

getSecretDataメソッド[1]

getSessionメソッド[1]

getSSODataListenersメソッド[1]

getSSODataメソッド[1]

getSubcontextメソッド[1]、[2]

getSubjectIDメソッド[1]

getTagEntryメソッド[1]、[2]、[3]

getTagIDメソッド[1]、[2]、[3]

getUserDataメソッド[1]

getUserIdメソッド[1]

getUserIDメソッド[1]

H

handleメソッド[1]、[2]、[3]、[4]

hasMoreElementsメソッド[1]

hasMoreメソッド[1]

HTTP ServerのSSLの設定[1]

I

IDS[1]

J

JAAS[1]

jaas.conf[1]

jaas.confの再読み込み[1]

jaas.confの作成[1]

jaas.confの設定例[1]

JAAS対応ユーザ管理[1]、[2]

JAASでのユーザ認証の有効期限[1]

JAASのコンフィグレーションファイル[1]

JAASのコンフィグレーションファイルの定義例[1]

JAASのログインモジュールの例外クラス[1]

java.naming.provider.url〔JNDI用パラメタ〕[1]

java.naming.security.credentials〔JNDI用パラメタ〕[1]

java.naming.security.principal〔JNDI用パラメタ〕[1]

JavaVMのプロパティの設定[1]

javax.net.ssl.trustStorePassword〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

javax.net.ssl.trustStore〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

javax.security.auth.login.AccountExpiredException[1]

javax.security.auth.login.CredentialExpiredException[1]

javax.security.auth.login.FailedLoginException[1]、[2]

javax.security.auth.login.LoginException[1]、[2]

Java標準仕様（JAAS）に準拠したユーザ認証[1]

JDBC接続の障害情報の表示[1]

JDBC接続の定義情報の表示[1]

JDBC接続プールの空き待ち監視のリセット[1]

JDBC接続プールモニタの表示[1]

JDBC接続モニタの監視[1]

JNDI用パラメタ[1]

JSPタグライブラリ[1]

L

lb.ACOS.privilegedexec.password〔負荷分散機接続設定プロパティファイルのキー〕[1]、[2]

lb.API.protocol〔負荷分散機接続設定プロパティファイルのキー〕[1]、[2]

lb.host〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

lb.password〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

lb.persistence.cookie-insert.templatename〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

lb.port〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

lb.properties[1]

lb.protocol〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

lb.timeout〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

lb.type〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

lb.user〔負荷分散機定義プロパティファイルのキー〕[1]、[2]

LdapSSODataManagerクラス[1]

LdapSSODataManagerコンストラクタ[1]

LdapUserDataManagerクラス[1]

LdapUserDataManagerコンストラクタ[1]

LdapUserEnumerationインタフェース[1]

LDAP接続の障害情報の表示[1]

LDAP接続の定義情報の表示[1]

LDAP接続プールの空き待ち監視のリセット[1]

LDAP接続プールモニタの表示[1]

LDAP接続モニタの監視[1]

LDAPディレクトリサーバの設置[1]

LDAPディレクトリサーバの設定[1]

LDAPディレクトリサーバの多重化による接続フェイルオーバ[1]

LDAPディレクトリサーバの多重化の構成例[1]

LDAPディレクトリサーバの多重化の構成例（マルチマスタ構成）[1]

LDAPディレクトリサーバへのユーザ情報の登録[1]

LINK_xxxx[1]

listUsersメソッド（形式1）[1]、[2]

listUsersメソッド（形式2）[1]、[2]

LoginInfoManagerクラス[1]

LoginModuleインタフェースの実装時の留意点[1]

LoginUtilクラス[1]

loginメソッド[1]

logoutメソッド[1]

M

modifySSODataメソッド[1]

modifyUserDataメソッド[1]

ModuleOptions〔JAASのコンフィグレーションファイルのオプション〕[1]

N

nextElementメソッド[1]

nextメソッド[1]

O

ObjectClassEntryクラス[1]

ObjectClassEntryコンストラクタ[1]

OPERATION[1]

P

PasswordCryptographyインタフェース[1]

PasswordUtilクラス[1]

Principalインタフェース[1]

Principalオブジェクトの実装時の留意点[1]

PUBLICDATA[1]

R

Realm[1]

REALMNAME[1]

removeAttributeメソッド[1]、[2]

removeMappingメソッド[1]

removeSSODataListenerメソッド[1]

removeSSODataメソッド[1]

removeUserDataメソッド[1]

Run as機能[1]

S

SECRETDATA[1]

SecurityManagerの機能によるJ2EEサーバの実行時の保護[1]

setAliasメソッド[1]

setAttributeEntriesメソッド[1]、[2]

setAttributeNameメソッド[1]

setExceptionメソッド[1]

setMappingメソッド[1]

setNameメソッド[1]

setObjectClassesメソッド[1]

setOptionメソッド[1]

setPasswordメソッド[1]、[2]

setPublicDataメソッド[1]

setRequestメソッド[1]、[2]、[3]

setResponseメソッド[1]、[2]、[3]

setSecretDataメソッド[1]

setSessionメソッド[1]

setSubcontextメソッド[1]、[2]

setSubjectIDメソッド[1]

setTagEntryメソッド[1]、[2]、[3]

setTagIDメソッド[1]、[2]、[3]

setUserIDメソッド[1]

sizeメソッド[1]、[2]

SSLアクセラレータ[1]、[2]

SSL使用による認証情報とデータの暗号化[1]

SSLによる暗号化[1]

ssoDataAddedメソッド[1]

SSODataEventクラス[1]

SSODataEventコンストラクタ[1]

SSODataListenerExceptionクラス[1]

SSODataListenerExceptionコンストラクタ[1]

SSODataListenerインタフェース[1]

ssoDataModifiedメソッド[1]

ssoDataRemovedメソッド[1]

SSODataクラス[1]

SSODataコンストラクタ[1]

ssoexport[1]

ssogenkey[1]

ssoimport[1]

T

tierlb.properties[1]

U

ua.conf[1]

ua.confの作成[1]

ua.confの設定例[1]

ua.confの設定例（UNIXの場合）[1]

uachpw[1]

uachpwコマンド[1]

UserAttributesインタフェース[1]

UserDataクラス[1]

UserDataコンストラクタ[1]

USERID[1]

W

WebCertificateCallbackクラス[1]

WebCertificateCallbackコンストラクタ[1]

WebCertificateHandlerクラス[1]

WebCertificateHandlerコンストラクタ[1]

WebCertificateLoginModule[1]

WebCertificateLoginModuleクラス[1]

WebCertificateLoginModuleに指定するオプション[1]

WebLogoutCallbackクラス[1]

WebLogoutCallbackコンストラクタ[1]

WebLogoutHandlerクラス[1]

WebLogoutHandlerコンストラクタ[1]

WebPasswordCallbackクラス[1]

WebPasswordCallbackコンストラクタ[1]

WebPasswordHandlerクラス[1]

WebPasswordHandlerコンストラクタ[1]

WebPasswordJDBCLoginModule[1]

WebPasswordJDBCLoginModuleクラス[1]

WebPasswordJDBCLoginModuleに指定するオプション[1]

WebPasswordLDAPLoginModule[1]

WebPasswordLDAPLoginModuleクラス[1]

WebPasswordLDAPLoginModuleに指定するオプション[1]

WebPasswordLoginModule[1]

WebPasswordLoginModuleクラス[1]

WebSSOCallbackクラス[1]

WebSSOCallbackコンストラクタ[1]

WebSSOHandlerクラス[1]

WebSSOHandlerコンストラクタ[1]

WebSSOLoginModule[1]

WebSSOLoginModuleクラス[1]

WebSSOLoginModuleに指定するオプション[1]

Webサーバの認証機能[1]

Webサービスセキュリティの機能によるSOAPメッセージの暗号化[1]

あ

アプリケーションサーバ 11-50での主な機能変更[1]

アプリケーションサーバの機能[1]

アプリケーション集中型の構成[1]

アプリケーションで利用できる認証機能[1]

アプリケーションの実行基盤としての機能[1]

アプリケーションの実行基盤を運用・保守するための機能[1]

アプリケーションの設定による認証[1]

アプリケーション分散型の構成[1]

暗号鍵ファイルの作成[1]、[2]

暗号鍵ファイルの作成（シングルサインオンを使用する場合）[1]

暗号鍵ファイルの設定[1]

暗号鍵ファイルの変更[1]

暗号拡張[1]

う

運用管理ポータルによる統合ユーザ管理の運用[1]

運用管理ポータルによるリポジトリ管理（統合ユーザ管理）[1]

お

オブジェクトクラスとユーザ定義属性の拡張[1]

か

カスタムログインモジュール[1]、[2]、[3]

カスタムログインモジュールの実装時の留意点[1]

カスタムログインモジュールの実装例[1]

カスタムログインモジュールのセッション[1]

カスタムログインモジュールのパラメタ[1]

カスタムログインモジュールの呼び出し[1]

カスタムログインモジュールを使用したユーザ認証の実装[1]

仮想サーバマネージャ側の負荷分散機接続設定プロパティファイル[1]

き

機能とマニュアルの対応[1]

機能の分類[1]

く

クライアント認証〔Webサーバの機能〕[1]

こ

このマニュアルに記載している機能の説明[1]

コマンドによる登録[1]、[2]

コンテナセキュリティとアクセス権管理[1]

コンフィグレーションファイルの作成[1]

コンフィグレーションファイルの設定例[1]

さ

サーバ管理コマンドによるセキュリティロールとアプリケーションの操作[1]

サーバ認証〔Webサーバの機能〕[1]

サーブレットとJSPのセキュリティアイデンティティ[1]

サーブレットとJSPのセキュリティロールリファレンスの定義[1]

作業手順書[1]

し

システムの目的と機能の対応[1]

シングルサインオン[1]、[2]

シングルサインオン情報リポジトリ[1]

シングルサインオン情報リポジトリに対するシングルサインオン用のユーザ情報の編集[1]

シングルサインオン情報リポジトリのDIT構造[1]

シングルサインオン情報リポジトリの参照[1]

シングルサインオン情報リポジトリの登録[1]

シングルサインオンへの対応例（カスタムログインモジュールの場合）[1]

シングルサインオンへの対応例（標準ログインモジュールの場合）[1]

シングルサインオン用認証情報のCSV形式ファイル[1]

シングルサインオン用パラメタ[1]

シングルサインオンライブラリ[1]

侵入検知システム[1]、[2]、[3]

せ

セキュリティアイデンティティ[1]

セキュリティアイデンティティの機能[1]

セキュリティアイデンティティの設定[1]

セキュリティアイデンティティを使用した認証[1]

セキュリティアイデンティティを使用した認証の設定[1]

セキュリティの定義（セキュリティアイデンティティ）[1]

セキュリティの定義（メソッドパーミッション）[1]

セキュリティロールの設定[1]

セキュリティロールのリファレンス定義[1]

セッションの種類[1]

そ

操作する画面（統合ユーザ管理のリソース監視）[1]

操作する画面（統合ユーザ管理のリポジトリ管理）[1]

属性の一覧の設定例[1]

た

タグライブラリのタグの一覧[1]

タグライブラリを使用したユーザ認証の実装[1]

て

ティア側の負荷分散機接続設定プロパティファイル[1]

と

統合ユーザ管理機能の設定手順[1]

統合ユーザ管理で使用するコマンド[1]

統合ユーザ管理で使用するコマンドの一覧[1]

統合ユーザ管理で使用するコマンドの詳細[1]

統合ユーザ管理で使用するファイル[1]

統合ユーザ管理で使用するファイルの一覧[1]

統合ユーザ管理で使用するユーザ情報の管理方法[1]

統合ユーザ管理による認証[1]

統合ユーザ管理のコンフィグレーションファイル[1]

統合ユーザ管理の処理の流れ[1]

統合ユーザ管理のセッション[1]

統合ユーザ管理のセッション管理[1]

統合ユーザ管理のセッションに登録したユーザIDの削除[1]

統合ユーザ管理のセッションの停止[1]

統合ユーザ管理のリソース監視で確認できる項目[1]

統合ユーザ管理のリソースの監視[1]

統合ユーザ管理フレームワーク[1]、[2]、[3]

統合ユーザ管理フレームワークが提供するAPI[1]

統合ユーザ管理フレームワークで使用するAPI[1]

統合ユーザ管理フレームワークで使用するタグライブラリ[1]

統合ユーザ管理フレームワークと個別のユーザ管理の関連[1]

統合ユーザ管理フレームワークによるユーザ認証の実装[1]

統合ユーザ管理フレームワークのライブラリ[1]

統合ユーザ管理フレームワークのライブラリによる登録[1]、[2]

統合ユーザ管理フレームワークのリポジトリのDIT構造[1]

統合ユーザ管理を使用する場合の処理の流れ[1]

登録するユーザ情報の文法[1]、[2]

に

認証機能[1]

認証機能を併用するときの注意[1]

認証状態の引き継ぎ[1]

認証処理[1]

認証に成功したSubjectをHttpSessionに登録する実装[1]

認証用プログラムのコーディング例（Windowsの場合）[1]

は

バインド情報の設定[1]

パスワード認証時の暗号拡張[1]

パスワード認証時の暗号拡張の実装[1]

パスワードの暗号化[1]

パスワードの変更[1]

ひ

標準ログインモジュール[1]、[2]、[3]

標準ログインモジュールのパラメタ[1]

ふ

ファイアウォール[1]、[2]、[3]

ファイルのデプロイ[1]

負荷分散機定義プロパティファイル[1]

プログラムセキュリティ[1]

め

メソッドパーミッションの設定方法[1]

ゆ

ユーザIDの取得の実装（APIを使用する場合）[1]

ユーザエントリの検索[1]

ユーザエントリの構造[1]

ユーザエントリの削除[1]

ユーザエントリの作成[1]

ユーザエントリの作成（シングルサインオン用）[1]

ユーザエントリのスキーマ定義[1]

ユーザエントリのスキーマ定義（シングルサインオン用）[1]

ユーザエントリの編集[1]

ユーザエントリの編集（シングルサインオン用）[1]

ユーザ情報の管理[1]

ユーザ情報の登録[1]

ユーザ情報の登録（シングルサインオンを使用する場合）[1]

ユーザ情報リポジトリ[1]

ユーザ情報リポジトリに対するユーザ情報の編集[1]

ユーザ情報リポジトリのDIT構造[1]

ユーザ情報を取得するための定義ファイル[1]

ユーザ情報を追加および変更するための定義ファイル[1]

ユーザ認証の有効期間[1]

ユーザ認証ライブラリ[1]

ユーザ認証ライブラリおよびシングルサインオンライブラリの位置づけ[1]

ユーザ認証リポジトリ[1]

ユーザの設定[1]

ユーザの登録とアクセス権の設定[1]

ユーザマッピング[1]、[2]

ユーザマッピング機能[1]

ユーザマッピングと認証情報の定義ファイル[1]

ら

ラインオペレーション[1]

り

リソース監視（統合ユーザ管理）[1]

リバースプロキシサーバ[1]

リポジトリ管理[1]

リポジトリ管理によるユーザ情報の編集[1]

れ

例外クラス〔統合ユーザ管理フレームワークで使用するAPI〕[1]

レルム[1]、[2]

レルムの削除[1]

レルムの作成[1]

レルム名[1]

レルム名の決定[1]

ろ

ロールにユーザを登録[1]

ロールの設定[1]

ロールの登録[1]

ログアウトの実装（APIを使用する場合）[1]

ログインしたユーザIDの登録[1]

ログインしているかどうかを確認する方法[1]

ログインセッションの監視[1]

ログインセッションモニタの表示[1]

ログインの実装（APIを使用する場合）[1]

ログインモジュールが使用するコンフィグレーションファイルのパラメタ[1]

ログインモジュール名〔JAASのコンフィグレーションファイルのオプション〕[1]