Cosminexus アプリケーションサーバ V8

Webサービスセキュリティ 使用の手引

解説・手引・文法書

3020-3-U32-20

目　　次

前書き

変更内容

はじめに

1.　Webサービスセキュリティの概要

1.1　Webサービスセキュリティとは

1.1.1　WebサービスセキュリティとSOAPとの関係

1.1.2　WebサービスセキュリティとXMLセキュリティとの関係

1.2　Cosminexusが提供するWebサービスセキュリティ機能

1.2.1　SOAPメッセージの完全性を保証する

1.2.2　SOAPメッセージの秘匿性を保証する

1.2.3　SOAPメッセージの認証をサポート

2.　開発または実行に必要な製品

2.1　開発に必要な製品

2.1.1　開発時の前提OS

2.1.2　開発時の前提プログラム

2.1.3　開発時のプログラム構成例

2.2　実行に必要な製品

2.2.1　実行時の前提OS

2.2.2　実行時の前提プログラム

2.2.3　実行時のプログラム構成例

3.　Webサービスセキュリティ機能を使用する

3.1　定義ファイルの設定

3.1.1　Webサービスセキュリティ機能定義ファイル

3.1.2　Webサービスセキュリティ方針定義ファイル

3.2　署名付与／検証機能を設定する

3.2.1　署名を付与する個所をパート名で指定する

3.2.2　署名を付与する個所をID属性で指定する

3.3　暗号化／復号化機能を設定する

3.3.1　暗号化する個所をパート名で指定する

3.3.2　暗号化する個所をID属性で指定する

3.4　認証機能を設定する

3.5　メッセージに有効期限を設定する

3.6　定義ファイルの構文をチェックする

3.7　定義ファイルに関する注意事項

3.8　実行環境に合わせて設定を変更する

3.8.1　環境設定ファイルの記述規則

3.8.2　環境設定ファイルの設定項目

3.9　Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）

3.9.1　サーバ側の実装手順

3.9.2　クライアント側がWebアプリケーションの場合の実装手順

3.9.3　クライアント側がコマンドラインJavaアプリケーションの場合の実装手順

3.9.4　JAASログインモジュールの実装時の注意

3.10　Webサービスセキュリティ機能の実装手順（JAX-WS機能を使用する場合）

3.10.1　Webサービスの実装手順（WSDL起点）

3.10.2　Webサービスの実装手順（SEI起点）

3.10.3　Webサービスクライアントの実装手順

3.10.4　認証情報の取得・設定手順

3.11　Webサービスセキュリティ機能の実装手順（ポリシーを使用する場合）

3.11.1　Webサービスの実装手順

3.11.2　Webサービスクライアントの実装手順

3.11.3　定義ファイルの編集

4.　Webサービスセキュリティ機能が提供するコマンド

4.1　共通鍵生成コマンド（CWSSCreateSecretKey）

4.2　定義ファイル構文チェックコマンド（CWSSConfCheck）

5.　Webサービスセキュリティ機能が提供するAPI

5.1　インタフェースおよびクラスの一覧

5.2　WSSElementProxyBuilderクラス

newInstance

createWSSElementProxy

5.3　 WSSElementProxyFactoryクラス（セキュリティ項目操作クラスの生成）

newWSSElementProxy（スタブクラスから生成）

newWSSElementProxy（メッセージクラスから生成）

newWSSElementProxy（実装クラスから生成）

getWSSElementProxy（スタブクラスから生成）

getWSSElementProxy（メッセージクラスから生成）

getWSSElementProxy（実装クラスから生成）

5.4　WSSElementProxyクラス（セキュリティ項目の操作）

getWSSUsernameToken

setWSSUsernameToken

removeWSSUsernameToken

getRole

setRole

5.5　WSSConstantsインタフェース

5.6　WSSUsernameTokenクラス（UsernameToken要素の操作）

コンストラクタ

getUsername

setUsername

getPassword

setPassword

getId

setId

getPasswordType

setPasswordType

getNonce

getCreated

5.7　WSSUsernameToken.PasswordTypeインタフェース（PasswordType要素の操作）

5.8　 WSSExceptionクラス（例外情報の取得）

getMessage

6.　障害対策

6.1　トレースを収集する

6.1.1　トレースの内容

6.1.2　トレースの出力先

6.1.3　トレースの重要度

付録

付録A　標準仕様への対応

付録A.1　WS-Security仕様のサポート範囲

付録A.2　XML署名標準仕様のサポート範囲

付録A.3　XML暗号標準仕様のサポート範囲

付録A.4　WS-Policy 1.5仕様のサポート範囲

付録A.5　WS-SecurityPolicy 1.3仕様のサポート範囲

付録B　下位バージョンからの移行手順

付録C　定義ファイルの項目の詳細

付録C.1　Webサービスセキュリティ機能定義ファイルの項目

付録C.2　Webサービスセキュリティ方針定義ファイルの項目

付録D　このマニュアルの参考情報

付録D.1　関連マニュアル

付録D.2　このマニュアルでの表記

付録D.3　英略語

付録D.4　常用漢字以外の漢字の使用について

付録D.5　KB（キロバイト）などの単位表記について

付録E　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2008, 2010, Hitachi, Ltd.

前書き

■ 対象製品

●適用OS：Windows Server 2003，Windows Server 2003 R2，Windows Server 2003（x64），Windows Server 2003 R2（x64），Windows Server 2008 x86，Windows Server 2008 x64，Windows Server 2008 R2

P-2443-7D84　 uCosminexus Application Server Standard　 08-50
P-2443-7K84　 uCosminexus Application Server Enterprise　 08-50
P-2443-7S84　 uCosminexus Service Platform　 08-50※

●適用OS：Windows Server 2003，Windows Server 2003 R2，Windows Vista，Windows XP，Windows 7

P-2443-7F84　 uCosminexus Developer Professional　 08-50
P-2443-7T84　 uCosminexus Service Architect　 08-50※

●適用OS：Windows Server 2003（x64），Windows Server 2003 R2（x64），Windows Server 2008 x64，Windows Server 2008 R2

P-2943-7D84　 uCosminexus Application Server Standard　 08-50※
P-2943-7K84　 uCosminexus Application Server Enterprise　 08-50※
P-2943-7S84　 uCosminexus Service Platform　 08-50※

●適用OS：AIX 5L V5.3，AIX V6.1

P-1M43-7D81　 uCosminexus Application Server Standard　 08-50※
P-1M43-7K81　 uCosminexus Application Server Enterprise　 08-50※
P-1M43-7S81　 uCosminexus Service Platform　 08-50※

●適用OS：HP-UX 11i V2（IPF），HP-UX 11i V3（IPF）

P-1J43-7D81　 uCosminexus Application Server Standard　 08-50※
P-1J43-7K81　 uCosminexus Application Server Enterprise　 08-50※
P-1J43-7S81　 uCosminexus Service Platform　 08-50※

●適用OS：Red Hat Enterprise Linux AS 4（x86），Red Hat Enterprise Linux 5 Advanced Platform（x86），Red Hat Enterprise Linux ES 4（x86），Red Hat Enterprise Linux 5（x86），Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5（AMD/Intel 64）

P-9S43-7D81　 uCosminexus Application Server Standard　 08-50※
P-9S43-7K81　 uCosminexus Application Server Enterprise　 08-50※
P-9S43-7S81　 uCosminexus Service Platform　 08-50※

●適用OS：Red Hat Enterprise Linux AS 4（IPF），Red Hat Enterprise Linux 5（Intel Itanium），Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium）

P-9V43-7D81　 uCosminexus Application Server Standard　 08-50※
P-9V43-7K81　 uCosminexus Application Server Enterprise　 08-50※
P-9V43-7S81　 uCosminexus Service Platform　 08-50※

※印の製品については，サポート時期をご確認ください。
上記のプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。
本製品では日立トレース共通ライブラリをインストールします。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。
AIX 5Lは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
Java及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems,Inc.の商標または登録商標です。
JDKは，米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Red Hatは，米国およびその他の国でRed Hat, Inc. の登録商標若しくは商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
Solarisは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
すべてのSPARC商標は，米国SPARC International, Inc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。SPARC商標がついた製品は，米国Sun Microsystems, Inc. が開発したアーキテクチャに基づくものです。
Sun，Sun Microsystems，Javaは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

■ マイクロソフト製品の表記について

このマニュアルでは，マイクロソフト製品の名称を次のように表記しています。

製品名 | 表記
Microsoft(R) Windows(R) 7 Enterprise | Windows 7 | Windows
Microsoft(R) Windows(R) 7 Professional
Microsoft(R) Windows(R) 7 Ultimate
Microsoft(R) Windows Server(R) 2003，Enterprise Edition 日本語版 | Windows Server 2003 Enterprise Edition | Windows Server 2003
Microsoft(R) Windows Server(R) 2003，Standard Edition 日本語版 | Windows Server 2003 Standard Edition
Microsoft(R) Windows Server(R) 2003 R2，Enterprise Edition 日本語版 | Windows Server 2003 R2 Enterprise Edition | Windows Server 2003 R2
Microsoft(R) Windows Server(R) 2003 R2，Standard Edition 日本語版 | Windows Server 2003 R2 Standard Edition
Microsoft(R) Windows Server(R) 2003，Enterprise x64 Edition 日本語版 | Windows Server 2003 Enterprise x64 Edition | Windows Server 2003（x64）
Microsoft(R) Windows Server(R) 2003，Standard x64 Edition 日本語版 | Windows Server 2003 Standard x64 Edition
Microsoft(R) Windows Server(R) 2003 R2，Enterprise x64 Edition 日本語版 | Windows Server 2003 R2 Enterprise x64 Edition | Windows Server 2003 R2（x64）
Microsoft(R) Windows Server(R) 2003 R2，Standard x64 Edition 日本語版 | Windows Server 2003 R2 Standard x64 Edition
Microsoft(R) Windows Server(R) 2008 Enterprise 32-bit 日本語版 | Windows Server 2008 x86 | Windows Server 2008
Microsoft(R) Windows Server(R) 2008 Standard 32-bit 日本語版
Microsoft(R) Windows Server(R) 2008 Enterprise 日本語版 | Windows Server 2008 x64
Microsoft(R) Windows Server(R) 2008 Standard 日本語版
Microsoft(R) Windows Server(R) 2008 R2 Enterprise 日本語版 | Windows Server 2008 R2
Microsoft(R) Windows Server(R) 2008 R2 Standard 日本語版
Microsoft(R) Windows Vista(R) Business | Windows Vista Business | Windows Vista
Microsoft(R) Windows Vista(R) Enterprise | Windows Vista Enterprise
Microsoft(R) Windows Vista(R) Ultimate | Windows Vista Ultimate
Microsoft(R) Windows(R) XP Professional Operating System | Windows XP

■ 発行

2008年 11月 (第1版) 3020-3-U32
2010年 2月 (第2版) 3020-3-U32-20

■ 著作権

All Rights Reserved. Copyright (C) 2008, 2010, Hitachi, Ltd.

変更内容

変更内容（3020-3-U32-20）uCosminexus Application Server Enterprise 08-50，uCosminexus Application Server Standard 08-50，uCosminexus Developer Professional 08-50，uCosminexus Service Architect 08-50，uCosminexus Service Platform 08-50

追加・変更内容
変更個所

CosminexusのJAX-WS機能で開発したWebサービスおよびWebサービスクライアントに対してもセキュリティを設定できるようになりました。
1.1.1，1.2，2.1，2.2，3.10，3.11，5.1，5.2，5.5，6.1.2，6.1.3，付録E

開発時の前提OSにWindows 7を追加しました。
2.1.1

実行時の前提OSにWindows Server 2008 R2を追加しました。
2.2.1

新規にWSSElementProxyBuilderクラスおよびWSSConstantsインタフェースをサポートしました。
5.1，5.2，5.5

WS-Policy 1.5仕様をサポートしました。
付録A.4

WS-SecurityPolicy 1.3仕様をサポートしました。
付録A.5

次の製品の適用OSにWindows Server 2008 R2を追加した。

uCosminexus Application Server Standard

uCosminexus Application Server Enterprise

uCosminexus Service Platform

－

次の製品の適用OSからSolarisを削除した。

uCosminexus Application Server Standard

uCosminexus Application Server Enterprise

－

次の製品の適用OSにWindows 7を追加した。

uCosminexus Developer Professional

uCosminexus Service Architect

－

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

なお，「はじめに」の記載の一部を「このマニュアルの参考情報」に移動しました。

はじめに

このマニュアルは，Cosminexusが提供するWebサービスセキュリティ機能について説明したものです。

このマニュアルの対象となるWebサービスセキュリティ機能については，Cosminexusを構成する次のプログラムプロダクトで提供されています。

uCosminexus Application Server Standard

uCosminexus Application Server Enterprise

uCosminexus Service Platform

uCosminexus Developer Professional

uCosminexus Service Architect

なお，XML署名・暗号処理機能については，マニュアル「Cosminexus XML Security - Core ユーザーズガイド」を参照してください。

対象読者

このマニュアルは，Cosminexusが提供するSOAPアプリケーション開発支援機能を利用して開発したSOAPアプリケーション，またはCosminexusのJAX-WS機能を利用して開発したWebサービスに対して，Webサービスセキュリティ機能を使用する方を対象としています。また，このマニュアルをご利用になる方は，XML，SOAP，およびセキュリティに関する基本的な事項を理解されていることを前提としています。

Webサービスセキュリティ機能で出力されるメッセージの説明について

Webサービスセキュリティ機能で出力されるメッセージの説明については，マニュアル「Cosminexus アプリケーションサーバ メッセージ1」に記載しています。

図中で使用している記号

このマニュアルの図中で使用している記号を，次のように定義します。

文法で使用している記号

このマニュアルで使用している記号を次のように定義します。

記号 | 意味
< > | < >で囲まれた部分は状況に応じて変化する内容であることを示します。

このマニュアルで使用している名前空間

このマニュアルで使用するプレフィクスと名前空間URIの対応を次に示します。特に断りがないかぎり，次のプレフィクスを使用します。

プレフィクス | 名前空間URI
ds | http://www.w3.org/2000/09/xmldsig#
soap | http://schemas.xmlsoap.org/wsdl/soap/
soapenv | http://schemas.xmlsoap.org/soap/envelope/
soapenv12 | http://www.w3.org/2003/05/soap-envelope
sp | http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702
wsdl | http://schemas.xmlsoap.org/wsdl/
wsp | http://www.w3.org/ns/ws-policy
wsse | http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
wsu | http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
xsd | http://www.w3.org/2001/XMLSchema

1.　Webサービスセキュリティの概要

この章では，Webサービスセキュリティとは何か，また，WebサービスセキュリティとSOAP，およびXMLセキュリティとの関係について説明します。また，Cosminexusが提供するWebサービスセキュリティ機能についても説明します。

＜この章の構成＞

1.1　Webサービスセキュリティとは

1.2　Cosminexusが提供するWebサービスセキュリティ機能

1.1　Webサービスセキュリティとは

Webサービスセキュリティとは，広義にはWebサービスを安全に実現するためのセキュリティ技術全般を指します。現在，代表的なWebサービスセキュリティは，XML署名およびXML暗号を利用したXMLセキュリティです。また，Webサービスの実現には，SOAPを使用するのが一般的です。この節では，WebサービスセキュリティとSOAP，およびXMLセキュリティとの関係について説明します。

＜この節の構成＞

1.1.1　WebサービスセキュリティとSOAPとの関係

1.1.2　WebサービスセキュリティとXMLセキュリティとの関係

1.1.1　WebサービスセキュリティとSOAPとの関係

Webサービスの多くは，SOAPメッセージを送受信することで実現します。SOAPメッセージはXML形式のデータです。そのため，ネットワークを経由して，そのままSOAPメッセージを送信した場合，データの内容を改ざんされたり，カード番号などの重要な情報を第三者に盗聴されたりしてしまうおそれがあります。このような改ざんや盗聴を防止するための技術がWebサービスセキュリティです。

Cosminexus Web Services - Securityは，Cosminexus Component ContainerのSOAP通信基盤またはJAX-WSエンジンに組み込んで，Webサービスセキュリティに対応したSOAPメッセージを送受信する場合に使用します。

1.1.2　WebサービスセキュリティとXMLセキュリティとの関係

W3Cが規定しているXML署名およびXML暗号の仕様をXMLセキュリティと呼びます。XMLセキュリティを利用すると，SOAPメッセージにXML署名を付与したり，SOAPメッセージを暗号化したりできます。代表的なWebサービスセキュリティは，OASISで規定されているもので，XMLセキュリティを利用した安全なWebサービスを実現します。

Cosminexus Web Services - Securityは，XML署名・暗号処理機能を利用したWebサービスセキュリティ機能を提供します。XML署名・暗号処理機能については，マニュアル「Cosminexus XML Security - Core ユーザーズガイド」を参照してください。

1.2　Cosminexusが提供するWebサービスセキュリティ機能

Cosminexusでは，Cosminexus Web Services - Securityを利用してWebサービスセキュリティを実現します。Cosminexus Web Services - Securityが提供する機能のうち，SOAPメッセージの完全性や秘匿性などのセキュリティを提供する機能をWebサービスセキュリティ機能と呼びます。

Cosminexus Component ContainerでWebサービスセキュリティ対応のSOAPアプリケーションまたはWebサービスを開発する場合，Cosminexus Web Services - Securityを使用します。SOAPアプリケーションの開発の詳細はマニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を，Webサービスの開発の詳細はマニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

参考

このマニュアルでは，CosminexusのSOAPアプリケーション開発支援機能を使用して開発したプログラムをSOAPアプリケーション，CosminexusのJAX-WS機能を使用して開発したプログラムをWebサービスと呼びます。ただし，Webサービスという用語については，SOAPアプリケーションも含めたWebサービス全般を指している場合もあります。

＜この節の構成＞

1.2.1　SOAPメッセージの完全性を保証する

1.2.2　SOAPメッセージの秘匿性を保証する

1.2.3　SOAPメッセージの認証をサポート

1.2.1　SOAPメッセージの完全性を保証する

Webサービスセキュリティ機能は，SOAPメッセージの完全性を保証します。SOAPメッセージが送受信中に改ざんされないよう，SOAPメッセージの完全性を保証するための方法として，署名を利用する方法があります。

Webサービスセキュリティ機能を使用すると，SOAPメッセージに署名を付与できます。SOAPメッセージに署名が付与されている場合，SOAPメッセージを受信したときに署名を検証することによって，SOAPメッセージが送受信中に改ざんされていないかどうかを調べられます。また，SOAPメッセージに証明書が付与されている場合は，Webサービスセキュリティ機能で証明書も検証できます。

1.2.2　SOAPメッセージの秘匿性を保証する

Webサービスセキュリティ機能は，SOAPメッセージの秘匿性を保証します。SOAPメッセージが送受信中に第三者によって盗聴されないよう，SOAPメッセージの秘匿性を保証するための方法として，SOAPメッセージを暗号化する方法があります。

Webサービスセキュリティ機能を使用すると，必要な部分だけを指定してSOAPメッセージを暗号化することができます。Webサービスセキュリティ機能では，暗号化にXML暗号を使用します。暗号化することによって，SOAPメッセージの送受信中に第三者にメッセージの内容を盗聴されるおそれがなくなります。

1.2.3　SOAPメッセージの認証をサポート

Webサービスセキュリティ機能は，SOAPメッセージの認証および証明書の検証をサポートしています。SOAPメッセージの送信者を特定する必要がある場合は，ユーザー名やパスワードをSOAPメッセージに含めるように設定できます。

2.　開発または実行に必要な製品

この章では，Webサービスセキュリティ機能の前提OSおよび前提プログラムを，開発時と実行時に分けて説明します。また，開発時と実行時のプログラム構成例をそれぞれ紹介します。

＜この章の構成＞

2.1　開発に必要な製品

2.2　実行に必要な製品

2.1　開発に必要な製品

この節では，Cosminexus Web Services - Securityが提供するWebサービスセキュリティ機能を組み込んでSOAPアプリケーションまたはWebサービスを開発する場合の，前提OSおよび前提プログラムについて説明します。また，開発時のプログラム構成例についても説明します。

なお，開発にSOAPアプリケーション開発支援機能を使用した場合は，実行環境にもSOAP通信基盤を利用する必要があります。同様に，開発にCosminexusのJAX-WS機能を使用した場合は，実行環境ではJAX-WSエンジンを利用する必要があります。

＜この節の構成＞

2.1.1　開発時の前提OS

2.1.2　開発時の前提プログラム

2.1.3　開発時のプログラム構成例

2.1.1　開発時の前提OS

Webサービスセキュリティ機能を組み込んだSOAPアプリケーションまたはWebサービスを開発する場合の前提OSは，次のどれかです。

Windows 7

Windows Vista

Windows XP

Windows Server 2003

Windows Server 2003 R2

2.1.2　開発時の前提プログラム

Webサービスセキュリティ機能を使用してSOAPアプリケーションまたはWebサービスを開発する場合に，必要となる前提プログラムを次の表に示します。前提プログラムのバージョンについては「リリースノート」でご確認ください。

表2-1　前提プログラム一覧（開発時）

分類 | プログラム名
J2EEサーバ，SOAPアプリケーション開発支援機能またはJAX-WS機能 | Cosminexus Component Container
JavaTM2SDK | Cosminexus Developer's Kit for JavaTM
XMLプロセッサ | Cosminexus XML Processor

2.1.3　開発時のプログラム構成例

Webサービスセキュリティ機能を使用してSOAPアプリケーションまたはWebサービスを開発する場合のプログラム構成例を次に示します。

図2-1　Webサービスセキュリティ機能を組み込む場合のプログラム構成例

2.2　実行に必要な製品

この節では，Cosminexus Web Services - Securityが提供するWebサービスセキュリティ機能を使用して開発されたSOAPアプリケーションまたはWebサービスを実行する場合の，前提OSおよび前提プログラムについて説明します。また，実行時のプログラム構成例についても説明します。

なお，SOAP通信基盤で実行できるのは，SOAPアプリケーション開発支援機能で開発したSOAPアプリケーションだけです。同様に，JAX-WSエンジンで実行できるのは，CosminexusのJAX-WS機能で開発されたWebサービスだけです。

＜この節の構成＞

2.2.1　実行時の前提OS

2.2.2　実行時の前提プログラム

2.2.3　実行時のプログラム構成例

2.2.1　実行時の前提OS

Webサービスセキュリティ機能を組み込んだSOAPアプリケーションまたはWebサービスを実行する場合の前提OSは，次のどれかです。

Windows Server 2003

Windows Server 2003（x64）

Windows Server 2003 R2

Windows Server 2003 R2（x64）

Windows Server 2008 x86

Windows Server 2008 x64

Windows Server 2008 R2

Red Hat Enterprise Linux AS 4（x86）

Red Hat Enterprise Linux 5 Advanced Platform（x86）

Red Hat Enterprise Linux ES 4（x86）

Red Hat Enterprise Linux 5（x86）

Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T）

Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64）

Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T）

Red Hat Enterprise Linux 5（AMD/Intel 64）

Red Hat Enterprise Linux AS 4（IPF）

Red Hat Enterprise Linux 5（Intel Itanium）

Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium）

Solaris 9（SPARC）

Solaris 10（SPARC）

Solaris 10（x64）

AIX 5L V5.3

AIX V6.1

HP-UX 11i V2（IPF）

HP-UX 11i V3（IPF）

2.2.2　実行時の前提プログラム

Webサービスセキュリティ機能を使用して開発されたSOAPアプリケーションまたはWebサービスを実行する場合に必要となる前提プログラムを次の表に示します。前提プログラムのバージョンについては「リリースノート」でご確認ください。

表2-2　前提プログラム一覧（実行時）

分類
プログラム名

Webサーバ

Windowsの場合：

Cosminexus Component Containerが動作するWebサーバ※

その他のOSの場合：

Hitachi Web Server

J2EEサーバ，SOAP通信基盤またはJAX-WSエンジン
Cosminexus Component Container

JavaTM2SDK
Cosminexus Developer's Kit for JavaTM

XMLプロセッサ
Cosminexus XML Processor

注※

Cosminexus Component Containerが動作するWebサーバについての詳細は，マニュアル「Cosminexus アプリケーションサーバ 概説」を参照してください。

2.2.3　実行時のプログラム構成例

Webサービスセキュリティ機能を使用して開発されたSOAPアプリケーションまたはWebサービスを実行する場合の，クライアント側とサーバ側のプログラム構成例を次に示します。

図2-2　Webサービスセキュリティ機能を組み込んだSOAPアプリケーションまたはWebサービスを実行する場合のプログラム構成例

3.　Webサービスセキュリティ機能を使用する

この章では，開発したSOAPアプリケーションまたはWebサービスに対して，Webサービスセキュリティ機能を使用する手順について説明します。

＜この章の構成＞

3.1　定義ファイルの設定

3.2　署名付与／検証機能を設定する

3.3　暗号化／復号化機能を設定する

3.4　認証機能を設定する

3.5　メッセージに有効期限を設定する

3.6　定義ファイルの構文をチェックする

3.7　定義ファイルに関する注意事項

3.8　実行環境に合わせて設定を変更する

3.9　Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）

3.10　Webサービスセキュリティ機能の実装手順（JAX-WS機能を使用する場合）

3.11　Webサービスセキュリティ機能の実装手順（ポリシーを使用する場合）

3.1　定義ファイルの設定

Webサービスセキュリティ機能を使用するためには，次に示す二つの定義ファイルに必要な項目を設定する必要があります。

Webサービスセキュリティ機能定義ファイル（security-config.xml）

Webサービスセキュリティ方針定義ファイル（policy-config.xml）

これらの定義ファイルは，Webサービス（サーバ側）およびWebサービスクライアント（クライアント側）の両方に配置する必要があります。

次に，各定義ファイルの概要を説明します。

＜この節の構成＞

3.1.1　Webサービスセキュリティ機能定義ファイル

3.1.2　Webサービスセキュリティ方針定義ファイル

3.1.1　Webサービスセキュリティ機能定義ファイル

Webサービスセキュリティ機能定義ファイルは，Webサービスセキュリティ機能の動作を定義するためのファイルです。例えば，SOAPメッセージに署名を付与する場合，署名に用いる証明書を指定します。または，SOAPメッセージを暗号化する場合は，どの暗号化アルゴリズムを用いるのか，などを定義します。

Webサービスセキュリティ機能定義ファイルは，次の要素を持っています。

BindingConfig
Webサービスセキュリティの各機能で共通して使用する情報を設定します。

RequestSenderConfig
リクエストメッセージ送信時のWebサービスセキュリティ機能を設定します。

ResponseSenderConfig
レスポンスメッセージ送信時のWebサービスセキュリティ機能を設定します。

RequestReceiverConfig
リクエストメッセージ受信時のWebサービスセキュリティ機能を設定します。

ResponseReceiverConfig
レスポンスメッセージ受信時のWebサービスセキュリティ機能を設定します。

クライアントとサーバでは，必要な要素が異なります。

Webサービスセキュリティ機能を使用するために，クライアントおよびサーバで設定する必要がある要素を次の表に示します。

表3-1　設定が必要な要素（Webサービスセキュリティ機能定義ファイル）

要素名 | クライアント | サーバ
BindingConfig | ○ | ○
RequestSenderConfig | ○ | ×
ResponseSenderConfig | × | ○
RequestReceiverConfig | × | ○
ResponseReceiverConfig | ○ | ×

（凡例）

○：必要

×：不要

Webサービスセキュリティ機能定義ファイルの項目については，「付録C.1　Webサービスセキュリティ機能定義ファイルの項目」を参照してください。

3.1.2　Webサービスセキュリティ方針定義ファイル

Webサービスセキュリティ方針定義ファイルは，受信したSOAPメッセージを検証するときの方針を定義するためのファイルです。Webサービスセキュリティ機能では，この方針定義ファイルを基に，SOAPメッセージが受信側の意図したものかどうかを検証します。

Webサービスセキュリティ方針定義ファイルは，次の要素を持っています。

GlobalConfig
Webサービスセキュリティ機能の方針定義で共通して使用する項目を設定します。

RequestReceiverConfig
リクエストメッセージ受信時の方針を設定します。

ResponseReceiverConfig
レスポンスメッセージ受信時の方針を設定します。

クライアントとサーバでは，必要な要素が異なります。

Webサービスセキュリティ機能を使用するために，クライアントおよびサーバで設定する必要がある要素を次の表に示します。

表3-2　設定が必要な要素（Webサービスセキュリティ方針定義ファイル）

要素名 | クライアント | サーバ
GlobalConfig | ○ | ○
RequestReceiverConfig | × | ○
ResponseReceiverConfig | ○ | ×

（凡例）

○：必要

×：不要

Webサービスセキュリティ方針定義ファイルの項目については，「付録C.2　Webサービスセキュリティ方針定義ファイルの項目」を参照してください。

3.2　署名付与／検証機能を設定する

署名付与／検証機能は，送信するメッセージに対して，XML署名を付与したり，受信するSOAPメッセージに付与されているXML署名を検証したりする機能です。署名付与機能は，メッセージ送信時に，署名検証機能はメッセージ受信時に使用します。

署名付与／検証機能を使用する場合のプログラムの構成を次の図に示します。矢印およびその番号は，送受信するデータの処理の流れを示しています。

図3-1　Webサービスセキュリティ機能使用時のプログラム構成（署名付与／検証）

署名付与／検証機能を使用する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

＜送信側＞
SecurityConfig
├─ BindingConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　├─ BinarySecurityTokenConfig
　　　└─ SignatureConfig
＜受信側＞
SecurityConfig
├─ BindingConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└─ VerificationConfig

署名付与／検証機能を使用する際の，Webサービスセキュリティ方針定義ファイルの設定項目を次に示します。

PolicyConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　├┬ SecurityTokenConfig
　　│└─ BinarySecurityTokenConfig
　　└─ VerificationConfig

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

Windowsの場合，定義ファイルのサンプルは次のディレクトリに格納されていますので，これらを参考に定義ファイルを作成してください。なお，作成した定義ファイルの格納場所については，「3.9　Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）」を参照してください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

signature/message/client/WEB-INF/classes
signature/message/service/WEB-INF/classes
signature/rpc/client/WEB-INF/classes
signature/rpc/service/WEB-INF/classes

また，Windowsの場合，コーディングのサンプルは，次のディレクトリに格納されていますので，参考にしてください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

signature/KeyStore
signature/message/client/WEB-INF/classes/messagesampleclient
signature/message/service/WEB-INF/classes/messagesampleservice
signature/rpc/client/WEB-INF/classes/localhost
signature/rpc/service/WEB-INF/classes/localhost

署名付与の設定情報について

署名付与に必要な情報は，Webサービスセキュリティ機能定義ファイルに指定された設定情報から取得します。

署名に用いる秘密鍵は，環境設定ファイルで指定したキーストアファイルを使用します。環境設定ファイルの詳細については，「3.8.2　環境設定ファイルの設定項目」を参照してください。

署名に関する仕様のサポート範囲については，「付録A.2　XML署名標準仕様のサポート範囲」を参照してください。

署名検証の設定情報について

署名検証に必要な情報は，Webサービスセキュリティ機能定義ファイル，およびWebサービスセキュリティ方針定義ファイルに指定された設定情報から取得します。

証明書検証に用いる証明書は，環境設定ファイルで指定した証明書ファイルを使用します。環境設定ファイルの詳細については，「3.8.2　環境設定ファイルの設定項目」を参照してください。

注意事項

署名付与／検証で使用するキーストアファイルは，読み取り権限を限定するなど，第三者に読み取られないようにご注意ください。

＜この節の構成＞

3.2.1　署名を付与する個所をパート名で指定する

3.2.2　署名を付与する個所をID属性で指定する

3.2.1　署名を付与する個所をパート名で指定する

署名を付与する個所をパート名という名称で指定します。Cosminexus Web Services - Securityで，署名を付与する際に指定できるパート名は，"Body"だけです。"Body"を指定した場合，SOAPメッセージのBody要素そのものを意味します。

署名個所をパート名で指定する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

SecurityConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　└┬ SignatureConfig
　　　　└─ SignatureTarget

署名個所をパート名で指定する際の，Webサービスセキュリティ方針定義ファイルの設定項目を次に示します。

PolicyConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└┬ VerificationConfig
　　　└─ SignatureTarget

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

3.2.2　署名を付与する個所をID属性で指定する

署名を付与する個所を，ID属性で指定し，そのID値が含まれる要素に対して署名します。なお，受信側ではID属性を検証できません。

署名個所をIDで指定する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

SecurityConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　└┬ SignatureConfig
　　　　└─ SignatureTarget

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

3.3　暗号化／復号化機能を設定する

暗号化／復号化機能は，送受信するメッセージを，暗号化／復号化する機能です。暗号化機能はメッセージの送信時に，復号化機能はメッセージ受信時に使用します。

暗号化／復号化機能を使用する場合のプログラムの構成を次の図に示します。矢印およびその番号は，送受信するデータの処理の流れを示しています。

図3-2　Webサービスセキュリティ機能使用時のプログラム構成（暗号化／復号化）

暗号化／復号化機能を使用する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

＜送信側＞
SecurityConfig
├─ BindingConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　└─ EncryptionConfig
＜受信側＞
SecurityConfig
├─ BindingConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└─ DecryptionConfig

暗号化／復号化機能を使用する際の，Webサービスセキュリティ方針定義ファイルの設定項目を次に示します。

PolicyConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└─ DecryptionPolicyConfig

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

Windowsの場合，定義ファイルのサンプルは，次のディレクトリに格納されていますので，これらを参考に定義ファイルを作成してください。なお，作成した定義ファイルの格納場所については，「3.9　Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）」を参照してください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

encryption/message/client/WEB-INF/classes
encryption/message/service/WEB-INF/classes
encryption/rpc/client/WEB-INF/classes
encryption/rpc/service/WEB-INF/classes

また，Windowsの場合，コーディングのサンプルは，次のディレクトリに格納されていますので，参考にしてください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

encryption/SecretKey
encryption/message/client/WEB-INF/classes/messagesampleclient
encryption/message/service/WEB-INF/classes/messagesampleservice
encryption/rpc/client/WEB-INF/classes/localhost
encryption/rpc/service/WEB-INF/classes/localhost

暗号化の設定情報について

暗号化に必要な情報は，Webサービスセキュリティ機能定義ファイルに指定された設定情報から取得します。

暗号化に関する仕様のサポート範囲については，「付録A.3　XML暗号標準仕様のサポート範囲」を参照してください。

復号化の設定情報について

復号化に必要な情報は，Webサービスセキュリティ機能定義ファイル，およびWebサービスセキュリティ方針定義ファイル指定された設定情報から取得します。

暗号化／復号化に用いる共通鍵は，環境設定ファイルで指定した共通鍵ファイルを使用します。環境設定ファイルの詳細については，「3.8.2　環境設定ファイルの設定項目」を参照してください。

注意事項

暗号化／復号化で使用する鍵ファイルは，読み取り権限を限定するなど，第三者に読み取られないようにご注意ください。

＜この節の構成＞

3.3.1　暗号化する個所をパート名で指定する

3.3.2　暗号化する個所をID属性で指定する

3.3.1　暗号化する個所をパート名で指定する

暗号化する個所をパート名という名称で指定します。Cosminexus Web Services - Securityで，暗号化する際に指定できるパート名は，"BodyContent"だけです。"BodyContent"を指定した場合，SOAPメッセージのBody要素に含まれる子要素，テキストなどをすべて指定することを意味します。

暗号個所をパート名で指定する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

SecurityConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　└┬ EncryptionConfig
　　　　└┬ ContentsEncryption
　　　　　└─ EncryptionTarget

暗号個所をパート名で指定する際の，Webサービスセキュリティ方針定義ファイルの設定項目を次に示します。

PolicyConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└┬ DecryptionPolicyConfig
　　　└─ DecryptionTarget

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

3.3.2　暗号化する個所をID属性で指定する

暗号化する個所を，ID属性で指定し，そのID値が含まれる要素に対して暗号化します。なお，受信側ではID属性を検証できません。

暗号個所をIDで指定する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

SecurityConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　└┬ EncryptionConfig
　　　　└┬ ContentsEncryption
　　　　　└─ EncryptionTarget

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

3.4　認証機能を設定する

セキュリティトークンを通信先に受け渡すことで，認証を実現します。

Cosminexus Web Services - Securityでは，JAASを使用した認証方式をサポートします。

認証機能を使用する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

＜送信側＞
SecurityConfig
├─ BindingConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　└─ UsernameTokenConfig
＜受信側＞
SecurityConfig
├─ BindingConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└─ AuthenticationConfig

認証機能を使用する際の，Webサービスセキュリティ方針定義ファイルの設定項目を次に示します。

PolicyConfig
├─ GlobalConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└┬ SecurityTokenConfig
　　　└─ UsernameTokenConfig

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

Windowsの場合，定義ファイルのサンプルは，次のディレクトリに格納されていますので，これらを参考に定義ファイルを作成してください。なお，作成した定義ファイルの格納場所については，「3.9　Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）」を参照してください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

usernameToken/rpc/client/WEB-INF/classes
usernameToken/rpc/service/WEB-INF/classes

また，Windowsの場合，コーディングのサンプルは，次のディレクトリに格納されていますので，参考にしてください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

usernameToken/rpc/Auth
usernameToken/rpc/client/WEB-INF/classes/localhost
usernameToken/rpc/service/WEB-INF/classes/localhost

認証の設定情報について

認証に必要な情報は，Webサービスセキュリティ機能定義ファイルに指定された設定情報から取得します。ただし，一部の情報はWebサービスセキュリティ機能が提供するAPIを使用して指定できます。APIについては，「5.　Webサービスセキュリティ機能が提供するAPI」を参照してください。

認証のSOAPメッセージ形式について

Webサービスセキュリティ機能が生成するSOAPメッセージ内のUsernameToken要素のNonce要素とCreated要素は，パスワードのタイプがダイジェスト形式の場合に付与されます。パスワードタイプがテキスト形式の場合はこれらの要素は付与されません。

パスワードのタイプがダイジェスト形式のSOAPメッセージでダイジェストを求めたい場合は，コーディングのサンプルのソースコード（UsernameLoginModule.java）のloginメソッドの実装を参考にしてください。

認証に関する方針チェックについて

Webサービスセキュリティ方針定義ファイルに指定された設定情報を基に，受信したSOAPメッセージが決められた方針に従っているかどうかをチェックします。

注意事項

認証で，パスワードの記述されたファイルなどを使用する場合は，読み取り権限を限定するなど，第三者に読み取られないようにご注意ください。

3.5　メッセージに有効期限を設定する

Cosminexus Web Services - Securityでは，SOAPメッセージの送信時にタイムスタンプや有効期限を設定したり，受信側で古いメッセージや有効期限を経過したメッセージの受信を拒否したりする機能を提供します。

メッセージに有効期限を設定する際の，Webサービスセキュリティ機能定義ファイルの設定項目を次に示します。

SecurityConfig
└┬ RequestSenderConfig/ResponseSenderConfig
　└┬ SenderPortConfig
　　└┬ RoleConfig
　　　└┬ TimestampConfig
　　　　└─ Expires

メッセージに付与されているタイムスタンプや有効期限を検証する際の，Webサービスセキュリティ方針定義ファイルの設定項目を次に示します。

PolicyConfig
├─ GlobalConfig
└┬ RequestReceiverConfig/ResponseReceiverConfig
　└┬ ReceiverPortConfig
　　└┬ TimestampConfig
　　　└┬ Created
　　　　└ Expires

設定する要素の詳細については，「付録C　定義ファイルの項目の詳細」を参照してください。

Windowsの場合，定義ファイルのサンプルは，次のディレクトリに格納されていますので，これらを参考に定義ファイルを作成してください。なお，作成した定義ファイルの格納場所については，「3.9　Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）」を参照してください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

timeStamp/rpc/client/WEB-INF/classes
timeStamp/rpc/service/WEB-INF/classes

また，Windowsの場合，コーディングのサンプルは，次のディレクトリに格納されていますので，参考にしてください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

timeStamp/rpc/client/WEB-INF/classes/localhost
timeStamp/rpc/service/WEB-INF/classes/localhost

3.6　定義ファイルの構文をチェックする

Webサービスセキュリティ機能定義ファイル，およびWebサービスセキュリティ方針定義ファイルを設定したあと，定義ファイルの記述内容が正しいかどうかをチェックするために，構文チェック用のコマンドを使用します。

構文チェック用のコマンドの使い方については，「4.2　定義ファイル構文チェックコマンド（CWSSConfCheck）」を参照してください。

注意事項

定義ファイル構文チェックコマンドは，Windowsで使用してください。その他のOSでは使用できません。

3.7　定義ファイルに関する注意事項

Webサービスセキュリティ機能定義ファイル，およびWebサービスセキュリティ方針定義ファイルを設定する上での注意事項について説明します。

＜この節の構成＞

(1)　 Timestamp要素を使用する場合

(2)　 Webサービスセキュリティ機能定義ファイルの運用について

(3)　Webサービスセキュリティ方針定義ファイルの運用について

(4)　セキュリティ機能を組み合わせて使用する場合

(1)　 Timestamp要素を使用する場合

Webサービスセキュリティ機能定義ファイルのCreated要素，Expires要素を共に省略した場合は，Timestamp要素自体が作成されません。

SOAPメッセージを送信するマシンと受信するマシンに設定されている時刻は，一致していないおそれがあります。Created要素に設定されている値を基にそのメッセージを古いと見なしたり，Expires要素に設定されている値を基にそのメッセージを有効期限切れと見なしたりする際，許容範囲を設定できます。
マシン間の設定時刻の差に関する許容範囲を設定する際の，Webサービスセキュリティ方針定義ファイルの設定項目を次に示します。

PolicyConfig
└┬ GlobalConfig
　├─ Max-Clock-Skew
　└─ Fresh-Time-Limit

詳細については，「付録C.2　Webサービスセキュリティ方針定義ファイルの項目」を参照してください。

(2)　 Webサービスセキュリティ機能定義ファイルの運用について

Webサービスセキュリティ機能定義ファイルは，第三者によって改ざんされないようにアクセス権の設定をしてください。

(3)　Webサービスセキュリティ方針定義ファイルの運用について

Webサービスセキュリティ方針定義ファイルは，第三者によって改ざんされないようにアクセス権の設定をしてください。

Webサービスセキュリティ方針定義ファイルをSOAPサービスまたはWebサービスの利用者に配布する場合，ファイルが改ざんされないよう対策してください。

Webサービスセキュリティ方針定義ファイルは，安全な方法でSOAPサービスまたはWebサービスの利用者に配布してください。

SOAPサービスまたはWebサービスの利用者は，Webサービスセキュリティ方針定義ファイルの内容に従って，Webサービスセキュリティ機能定義ファイルを作成する必要があります。

(4)　セキュリティ機能を組み合わせて使用する場合

署名付与／検証機能，暗号化／復号化機能，認証機能，およびメッセージに有効期限を設定する機能は，組み合わせて使用できます。複数の機能を組み合わせて使用する場合は，Webサービスセキュリティ機能定義ファイルのRoleConfig要素内に，それぞれの設定項目を併記してください。

次に，設定の順番についての注意事項を示します。

送信側のWebサービスセキュリティ機能定義ファイルに設定した機能は，設定した順番で処理されます。各機能に対応するセキュリティ要素がSOAPメッセージのセキュリティヘッダに出現しますが，その順番は，Webサービスセキュリティ機能定義ファイルで設定した順番とは逆順になります。

Webサービスセキュリティ機能が提供するAPIを使用してUsernameTokenを付与した場合，対応するセキュリティ要素はSOAPメッセージのセキュリティヘッダのいちばん下に出現します。

なお，受信側のWebサービスセキュリティ機能定義ファイルと，Webサービスセキュリティ方針定義ファイルに設定する順番は，特に意識する必要はありません。

3.8　実行環境に合わせて設定を変更する

Webサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルに記述する内容で，実行環境に依存する部分は，環境設定ファイルで設定します。

環境設定ファイルは，次のディレクトリに格納されています。ファイル名は，「cwsscfg.properties」で固定です。

＜Cosminexusのインストールディレクトリ＞/wss/conf の下

次に，環境設定ファイルの記述規則と設定項目について説明します。

＜この節の構成＞

3.8.1　環境設定ファイルの記述規則

3.8.2　環境設定ファイルの設定項目

3.8.1　環境設定ファイルの記述規則

環境設定ファイルは，JavaTM2 Platform Standard Editionのプロパティ形式に従い，「キー名称=値」の形式で記述します。次に，環境設定ファイルの記述規則について示します。

１行の終わりは必ず改行されていなければなりません。

「#」で始まる行はコメントとみなされます。

値が存在しない行を設定した場合，空文字として処理されます。

キー名称と=の間，および=と値の間にスペースを入れてはいけません。

値に2バイト文字を使用する場合は，Cosminexusで提供されているJavaTM2SDKのnative2asciiコマンドで環境設定ファイルを変換してから使用しなければなりません。

設定できるキー名称以外のキー名称を設定した場合，その行は無視されます。

キー名称の大文字と小文字は区別されます。

値には半角スペースも設定できます。

例

cwss.binding.KeyLocator.KeyStoreDir=d:/Program Files/HITACHI/Cosminexus/wss/KeyStore

3.8.2　環境設定ファイルの設定項目

環境設定ファイルで設定できるキーおよび値を，次の表に示します。

表3-3　環境設定ファイルの設定項目

キー名称
指定値
説明
デフォルト値
（値省略時または範囲外）

cwss.binding.KeyLocator.KeyStoreDir
任意のディレクトリ名
署名付与／検証で使用するキーストアファイルを格納するディレクトリ名を指定します。
＜Cosminexusのインストールディレクトリ＞/wss/KeyStore

cwss.binding.KeyLocator.CertificateDir
任意のディレクトリ名
証明書検証で使用する証明書ファイルを格納するディレクトリ名を指定します。
＜Cosminexusのインストールディレクトリ＞/wss/Cert

cwss.policy.usernameToken.maxNonceCount
1～100,000
受信済みNonce値を保存する最大個数を指定します。
100,000

cwss.policy.usernameToken.maxNonceAge
1,000～86,400,000（最大24時間）
受信済みNonce値の最大保存時間を現在時刻からの相対ミリ秒で指定します。
300,000（5分）

cwss.binding.KeyLocator.SecretKeyDir
任意のディレクトリ名
暗号化／復号化で使用する共通鍵ファイルを格納するディレクトリ名を指定します。
＜Cosminexusのインストールディレクトリ＞/wss/SecretKey

cwss.engine.receive.unsecured.message
true
またはfalse
受信側でWebサービスセキュリティ方針定義ファイルの設定をしている場合，受信メッセージにSOAPメッセージのSecurity要素を含まなかったときの動作を指定します。※
false

注※

受信側でWebサービスセキュリティ方針定義ファイルの設定をしている場合で，falseを設定した場合，エラーメッセージKDCGF0003-Eが出力されます。trueを設定した場合，Webサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルの設定内容に関係なく，エラーにはなりません。

3.9　Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）

ここでは，実行環境に必要な定義ファイルやユーザー作成のプログラムを実装し，SOAPアプリケーション開発支援機能を使用して開発したSOAPアプリケーションでWebサービスセキュリティ機能を使用する手順を説明します。

SOAPアプリケーション開発支援機能を利用したSOAPアプリケーションの開発の流れは次のとおりです。

（a）サービスの設計

（b）WSDLの作成

（c）サーバスケルトンの作成

（d）サーバ実装

（e）WARファイルの作成

（f）サービスの開始

（g）クライアントスタブの生成

（h）クライアントの実装

SOAPアプリケーション開発の詳細については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

また，07-60以降のバージョンを使用してWebサービスセキュリティ機能を使用する場合は，移行が必要です。移行の詳細については，「付録B　下位バージョンからの移行手順」を参照してください。

前に示したSOAPアプリケーション開発の流れ（以降，「開発ステップ」と呼びます）を基本とし，Webサービスセキュリティ機能を使用する上で必要なステップを説明します。

＜この節の構成＞

3.9.1　サーバ側の実装手順

3.9.2　クライアント側がWebアプリケーションの場合の実装手順

3.9.3　クライアント側がコマンドラインJavaアプリケーションの場合の実装手順

3.9.4　JAASログインモジュールの実装時の注意

3.9.1　サーバ側の実装手順

Webサービスセキュリティ機能をサーバ側に実装する手順について説明します。

＜この項の構成＞

(1)　デプロイ定義ファイルにセキュリティ情報を付加する

(2)　ユーザー作成のプログラムを実装する

(3)　WARファイルを作成する

(1)　デプロイ定義ファイルにセキュリティ情報を付加する

SOAPアプリケーションの形態が，RPCまたはEJBの場合

開発ステップ「（c）サーバスケルトンの作成」で，Webサービスセキュリティ機能に関する情報※を，サーバ側WARファイルのWEB-INFの下のデプロイ定義ファイルに手動で追加します。

SOAPアプリケーションの形態が，既存Javaクラスを利用，またはメッセージングの場合

開発ステップ「（e）WARファイルの作成」で，Webサービスセキュリティ機能に関する情報※をサーバ側WARファイルのWEB-INFの下のデプロイ定義ファイルに手動で追加します。

注※

「Webサービスセキュリティ機能に関する情報」を次に示します。

<handler name="WSSResponseSenderHandler" type="java:com.cosminexus.wss.handlers.WSSResponseSenderHandler"/>
<handler name="WSSRequestReceiverHandler" type="java:com.cosminexus.wss.handlers.WSSRequestReceiverHandler"/>

<requestFlow>
<handler type="WSSRequestReceiverHandler"/>
</requestFlow>
<responseFlow>
<handler type="WSSResponseSenderHandler"/>
</responseFlow>

Windowsの場合，サーバ側のデプロイ定義ファイル（server-config.xml）のサンプルは，サンプルディレクトリの下の，機能ごとのサービスに格納されていますので，参考にしてください。次に，格納先の一例を示します。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

usernameToken/rpc/service/WEB-INF

(2)　ユーザー作成のプログラムを実装する

Webサービスセキュリティ機能が提供するAPIを利用する場合は，開発ステップ「（d）サーバ実装」で，ユーザー作成のプログラムを実装します。詳細については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

(3)　WARファイルを作成する

開発ステップ「（e）WARファイルの作成」で，Webサービスセキュリティ機能が提供するWebサービスセキュリティ機能定義ファイル，およびWebサービスセキュリティ方針定義ファイルをサーバ側WARファイルのWEB-INF/classesの下に組み込みます。Webサービスセキュリティ機能定義ファイルとWebサービスセキュリティ方針定義ファイルについては，構文チェック用のコマンドを使用して，構文に誤りがないことを事前に確認してください。構文チェック用のコマンドの使い方については，「4.2　定義ファイル構文チェックコマンド（CWSSConfCheck）」を参照してください。

WARファイルへの組み込み方法については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

サーバ側の実装に関するファイルの配置は，各アプリケーションごと（WARファイルごと）に次のようになります。

WEB-INF
├server-config.xml      デプロイ定義ファイル
└classes
 ├security-config.xml  Webサービスセキュリティ機能定義ファイル
 └policy-config.xml    Webサービスセキュリティ方針定義ファイル

3.9.2　クライアント側がWebアプリケーションの場合の実装手順

Webサービスセキュリティ機能をクライアント側のWebアプリケーションに実装する手順について説明します。

＜この項の構成＞

(1)　デプロイ定義ファイルを組み込む

(2)　ユーザー作成のプログラムを実装する

(3)　WARファイルを作成する

(1)　デプロイ定義ファイルを組み込む

開発ステップ「（g）クライアントスタブの生成」で，Webサービスセキュリティ機能が提供するクライアント用のデプロイ定義ファイル（client-config.xml）を，クライアント側WARファイルのWEB-INF/classesの下に組み込みます。Windowsの場合，Webサービスセキュリティ機能が提供するクライアント用のデプロイ定義ファイルは，サンプルディレクトリの下の，機能ごとのクライアントに格納されています。どのクライアント用のデプロイ定義ファイルも内容は同じです。次に，格納先の一例を示します。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

usernameToken/rpc/client/WEB-INF/classes

(2)　ユーザー作成のプログラムを実装する

Webサービスセキュリティ機能が提供するAPIを利用する場合は，開発ステップ「（h）クライアントの実装」で，ユーザー作成のプログラムを実装します。詳細については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

(3)　WARファイルを作成する

サンプルファイルを基に作成したWebサービスセキュリティ機能定義ファイル，およびWebサービスセキュリティ方針定義ファイルをクライアント側WARファイルのWEB-INF/classesの下に組み込みます。Webサービスセキュリティ機能定義ファイルとWebサービスセキュリティ方針定義ファイルについては，構文チェック用のコマンドを使用して，構文に誤りがないことを事前に確認してください。構文チェック用のコマンドの使い方については，「4.2　定義ファイル構文チェックコマンド（CWSSConfCheck）」を参照してください。

WARファイルへの組み込み方法については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

クライアント側の実装に関するファイルの配置は，各アプリケーションごと（WARファイルごと）に次のようになります。

WEB-INF
└classes
 ├client-config.xml    デプロイ定義ファイル
 ├security-config.xml  Webサービスセキュリティ機能定義ファイル
 └policy-config.xml    Webサービスセキュリティ方針定義ファイル

3.9.3　クライアント側がコマンドラインJavaアプリケーションの場合の実装手順

サンプルファイルを基に作成したWebサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，およびデプロイ定義ファイルを，クライアント実行環境のCLASSPATHに設定したディレクトリの下に格納します。なお，Webサービスセキュリティ機能定義ファイルとWebサービスセキュリティ方針定義ファイルについては，構文チェック用のコマンドを使用して，構文に誤りがないことを事前に確認してください。構文チェック用のコマンドの使い方については，「4.2　定義ファイル構文チェックコマンド（CWSSConfCheck）」を参照してください。

さらに，cjclstartapコマンドを使用して，Webサービスセキュリティ機能を適用したクライアントを実行する場合，Javaアプリケーション用オプション定義ファイルに次の値を設定したキーを追加する必要があります。

add.class.path=<Cosminexusのインストールディレクトリ>¥wss¥lib¥cwssec.jar

add.class.path=<Cosminexusのインストールディレクトリ>¥XMLSEC¥lib¥csmxsec.jar

Javaアプリケーション用オプション定義ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。また，コマンドライン利用時の設定については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

3.9.4　JAASログインモジュールの実装時の注意

ここでは，JAASログインモジュールを実装する際の注意事項について説明します。なお，JAASログインモジュールはユーザー側で開発します。一般的なJAASログインモジュールの開発方法については，Sun Microsystems,Inc. が公開しているJAAS認証に関するリファレンスガイドを参照してください。

＜この項の構成＞

(1)　 Callbackオブジェクトの生成について

(2)　ログイン構成ファイルの配置について

(1)　 Callbackオブジェクトの生成について

JAASログインモジュールで認証情報を取得するためには，Webサービスセキュリティ機能が提供するコールバックハンドラを使用します。次に，JAASログインモジュール内で必要な処理を示します。

LoginModule.initialize

コールバックハンドラ（javax.security.auth.callback.CallbackHandlerの実装クラス）をクラスメンバ変数に保持します。

LoginModule.login

コールバックハンドラ内で使用するCallbackオブジェクト（javax.security.auth.callback.Callback）の配列を生成して，コールバックハンドラのhandleメソッドを呼び出します。handleメソッドを呼び出したあと，Callbackオブジェクトから認証情報を取り出して認証処理を行います。Callbackオブジェクトの配列は，次の表に示す構成で生成してください。

表3-4　生成するCallbackオブジェクトの配列

配列番号 | Callbackオブジェクト | 用途
0 | javax.security.auth.callback.NameCallback | ユーザー名の取得
1 | javax.security.auth.callback.PasswordCallback | パスワードの取得
2 | javax.security.auth.callback.TextInputCallback | パスワード形式の取得
3 | javax.security.auth.callback.TextInputCallback | Nonce値の取得
4 | javax.security.auth.callback.TextInputCallback | Created値の取得

配列要素の取得方法を次に示します。

0：ユーザー名の取得

ユーザー名はjavax.security.auth.callback.NameCallback.getName()メソッドで取得します。

1：パスワードの取得

パスワードはjavax.security.auth.callback.PasswordCallback.getPassword()メソッドで取得します。パスワード形式がテキスト形式の場合，パスワードテキスト文字配列を返します。パスワード形式がダイジェスト形式の場合，ダイジェスト形式の文字配列を返します。パスワード省略時はnullを返します。

2：パスワード形式の取得

パスワード形式はjavax.security.auth.callback.TextInputCallback.getText()メソッドで取得します。パスワードの形式は次の文字列で返します。

"PasswordText"：テキスト形式

"PasswordDigest"：ダイジェスト形式

3：Nonce値の取得

Nonce値はjavax.security.auth.callback.TextInputCallback.getText()メソッドで取得します。

4：Created値の取得

Created値はjavax.security.auth.callback.TextInputCallback.getText()メソッドで取得します。

Windowsの場合，JAASログインモジュールのコーディング例については，次のディレクトリに格納されているサンプルを参照してください。

＜Cosminexusのインストールディレクトリ＞/wss/samples/c4web/ の下

usernameToken/rpc/Auth
usernameToken/rpc/client/WEB-INF/classes/localhost
usernameToken/rpc/service/WEB-INF/classes/localhost

(2)　ログイン構成ファイルの配置について

Cosminexus Component Container のユーザー定義ファイル（usrconf.properties）に，次のエントリーを追加してください。

java.security.auth.login.config==＜ログイン構成ファイルのフルパス名＞

ユーザー定義ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。

3.10　Webサービスセキュリティ機能の実装手順（JAX-WS機能を使用する場合）

ここでは，実行環境に必要な定義ファイルやユーザー作成のプログラムを実装し，JAX-WS機能を使用して開発したWebサービスでWebサービスセキュリティ機能を使用する手順を説明します。

JAX-WS機能を利用したWebサービスにWebサービスセキュリティ機能を組み込む場合の開発の流れ（以降，「開発ステップ」と呼びます）は次のとおりです。

（a）WebサービスまたはWebサービスクライアントの実装（3.10.1，3.10.2，3.10.3）

（b）Webサービスセキュリティハンドラの追加（3.10.1(1)，3.10.2(1)，3.10.3(1)）

（c）Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，ハンドラチェイン設定ファイルの追加（3.10.1(2)，3.10.2(2)，3.10.3(2)）

（d）認証情報の取得・設定（任意）（3.10.4）

括弧内の番号は，このマニュアルでの参照個所を表しています。JAX-WS機能を利用したWebサービス開発の詳細および開発ステップ（d）については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

＜この節の構成＞

3.10.1　Webサービスの実装手順（WSDL起点）

3.10.2　Webサービスの実装手順（SEI起点）

3.10.3　Webサービスクライアントの実装手順

3.10.4　認証情報の取得・設定手順

3.10.1　Webサービスの実装手順（WSDL起点）

WSDLを起点にJAX-WS機能でWebサービスを開発する場合の流れを次に示します。

WSDLファイルの作成

Javaソースの生成

Webサービスの実装

DDの作成

EARファイルの作成

EARファイルのデプロイと開始

Webサービスセキュリティ機能を組み込むためには，開発ステップ3でWebサービスセキュリティハンドラを追加し，開発ステップ5で各種定義ファイルと設定ファイルを追加する必要があります。

注意

Webサービスセキュリティハンドラは，必ず単独で使用する必要があります。ほかのハンドラとの併用はできないため，注意してください。

ここでは，開発ステップ3と開発ステップ5についてだけ説明します。そのほかの開発ステップの詳細は，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

＜この項の構成＞

(1)　Webサービスセキュリティハンドラを追加する

(2)　Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，ハンドラチェイン設定ファイルを追加する

(1)　Webサービスセキュリティハンドラを追加する

Cosminexusでは，ハンドラチェイン設定ファイルのテンプレート（ cwsshandler.xml）を提供しています。WebサービスにWebサービスセキュリティ機能を組み込む場合は，テンプレートをコピーして作成したハンドラチェイン設定ファイルを利用して，Webサービスセキュリティハンドラ（ com.cosminexus.wss.handlers.WSSServerHandler）を追加してください。

Webサービス実装時，javax.jws.HandlerChainアノテーションでWebサービス実装クラスをアノテートし，同アノテーションのfile要素に作成したハンドラチェイン設定ファイルを指定します。指定例を次に示します。

@javax.jws.WebService
@javax.jws.HandlerChain(file="cwsshandler.xml")
public class AddNumbersImpl{

   public int add( int number1, int number2 ) throws AddNumbersFault{
     ...
   }
}

(2)　Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，ハンドラチェイン設定ファイルを追加する

Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，およびハンドラチェイン設定ファイルは，すべてEARファイルに配置する必要があります。

Webサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルは，組み込みたいWebサービスセキュリティ機能の種類によって編集方法が異なります。編集方法については，目的に応じて「3.2　署名付与／検証機能を設定する」，「3.3　暗号化／復号化機能を設定する」，「3.4　認証機能を設定する」，または「3.5　メッセージに有効期限を設定する」を参照してください。配置方法については，「3.9.1(3)　WARファイルを作成する」を参照してください。

ハンドラチェイン設定ファイルは，どのWebサービスセキュリティ機能を使用する場合も同じです。ハンドラチェイン設定ファイルの編集方法については「3.10.1(1)　Webサービスセキュリティハンドラを追加する」を，配置方法についてはマニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

3.10.2　Webサービスの実装手順（SEI起点）

SEI（Service Endpoint Interface）を起点にJAX-WS機能でWebサービスを開発する場合の流れを次に示します。

Webサービス実装クラスの作成

Javaソースの生成

DDの作成

EARファイルの作成

EARファイルのデプロイと開始

Webサービスセキュリティ機能を組み込むためには，開発ステップ1でWebサービスセキュリティハンドラを追加し，開発ステップ4で各種定義ファイルと設定ファイルを追加する必要があります。

注意

Webサービスセキュリティハンドラは，必ず単独で使用する必要があります。ほかのハンドラとの併用はできないため，注意してください。

＜この項の構成＞

(1)　Webサービスセキュリティハンドラを追加する

(2)　Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，ハンドラチェイン設定ファイルを追加する

(1)　Webサービスセキュリティハンドラを追加する

Cosminexusでは，ハンドラチェイン設定ファイルのテンプレート（cwsshandler.xml）を提供しています。Webサービスセキュリティ機能を組み込む場合は，テンプレートをコピーしてハンドラチェイン設定ファイルを作成してください。

Webサービス実装時，javax.jws.HandlerChainアノテーションでSEIをアノテートし，同アノテーションのfile要素に作成したハンドラチェイン設定ファイルを指定します。指定例は，「3.10.1(1)　Webサービスセキュリティハンドラを追加する」を参照してください。

(2)　Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，ハンドラチェイン設定ファイルを追加する

Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，およびハンドラチェイン設定ファイルは，すべてEARファイルに配置する必要があります。

Webサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルは，組み込みたいWebサービスセキュリティ機能の種類によって編集方法が異なります。編集方法については，目的に応じて「3.2　署名付与／検証機能を設定する」，「3.3　暗号化／復号化機能を設定する」，「3.4　認証機能を設定する」，または「3.5　メッセージに有効期限を設定する」を参照してください。配置方法については，「3.9.1(3)　WARファイルを作成する」を参照してください。

ハンドラチェイン設定ファイルは，どのWebサービスセキュリティ機能を使用する場合も同じです。ハンドラチェイン設定ファイルの編集方法については「3.10.1(1)　Webサービスセキュリティハンドラを追加する」を，配置方法についてはマニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

3.10.3　Webサービスクライアントの実装手順

JAX-WS機能でWebサービスクライアントを開発する場合の流れを次に示します。

WSDLファイルの入手

Javaソースの生成

Webサービスクライアントの実装

Webサービスの呼び出し

Webサービスセキュリティ機能を組み込むためには，開発ステップ2でWebサービスセキュリティハンドラを追加し，開発ステップ3で各種定義ファイルと設定ファイルを追加する必要があります。

注意

Webサービスセキュリティハンドラは，必ず単独で使用する必要があります。ほかのハンドラとの併用はできないため，注意してください。

参考

サービスクラスの生成およびポートの取得には処理コストが掛かるため，一度生成したサービスクラスおよび取得したポートは再利用することを推奨します。再利用の詳細については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

ここでは，開発ステップ2と開発ステップ3についてだけ説明します。そのほかの開発ステップの詳細は，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

＜この項の構成＞

(1)　Webサービスセキュリティハンドラを追加する

(2)　Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，ハンドラチェイン設定ファイルを追加する

(3)　コマンドラインを利用してWebサービスクライアントを実行する

(4)　サービスクラス生成時の注意事項

(1)　Webサービスセキュリティハンドラを追加する

Cosminexusでは，外部バインディングファイルのテンプレート（cwssbinding.xml）を提供しています。WebサービスクライアントにWebサービスセキュリティ機能を組み込む場合は，テンプレートをコピーして作成した外部バインディングファイルを利用して，Webサービスセキュリティハンドラ（com.cosminexus.wss.handlers.WSSClientHandler）を追加してください。

Webサービスクライアント実装時には，まず外部バインディングファイルのbindings要素のwsdlLocation属性にWSDLファイルを指定します。例を次に示します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxws:bindings
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
   xmlns:javaee="http://java.sun.com/xml/ns/javaee"
   wsdlLocation="./WEB-INF/wsdl/WebService.wsdl">
   <jaxws:bindings node="wsdl:definitions">
       <javaee:handler-chains>
           <javaee:handler-chain>
               <javaee:handler>
                   <javaee:handler-class>com.cosminexus.wss.handlers.WSSClientHandler</javaee:handler-class>
               </javaee:handler>
           </javaee:handler-chain>
       </javaee:handler-chains>
   </jaxws:bindings>
</jaxws:bindings>

編集した外部バインディングファイルを引数に指定して，JAX-WS機能が提供するcjwsimportコマンドを実行します。これにより，WebサービスクライアントにWebサービスセキュリティハンドラを追加するための二つのハンドラチェイン設定ファイルが生成されます。生成されるハンドラチェイン設定ファイルの名称と用途を次に示します。

表3-5　cjwsimportコマンドで生成されるハンドラチェイン設定ファイル

ファイル名 | 用途
サービス名 + "_handler.xml " | サービスクラス用ハンドラチェイン設定ファイル
SEI名+ "_handler.xml " | SEI用ハンドラチェイン設定ファイル

生成されたハンドラチェイン設定ファイルは，編集しないでそのまま使用してください。また，cjwsimportコマンド，サービス名，およびSEI名の詳細については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

(2)　Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，ハンドラチェイン設定ファイルを追加する

Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，および「3.10.3(1)　Webサービスセキュリティハンドラを追加する」で生成したサービスクラス用ハンドラチェイン設定ファイルおよびSEI用ハンドラチェイン設定ファイルは，それぞれ適切なディレクトリに配置する必要があります。

Webサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルは，組み込みたいWebサービスセキュリティ機能の種類によって編集方法が異なります。編集方法については，目的に応じて次の個所を参照してください。

「3.2　署名付与／検証機能を設定する」

「3.3　暗号化／復号化機能を設定する」

「3.4　認証機能を設定する」

「3.5　メッセージに有効期限を設定する」

配置方法についての参照個所は，次のとおりです。

WebサービスクライアントがWebアプリケーションの場合の配置方法は，「3.9.2(3)　WARファイルを作成する」を参照してください。

WebサービスクライアントがコマンドラインJavaアプリケーションの場合の配置方法は，「3.9.3　クライアント側がコマンドラインJavaアプリケーションの場合の実装手順」を参照してください。

生成した二つのハンドラチェイン設定ファイルは編集しないで，そのままサービスクラスおよびSEIのクラスファイルと同じディレクトリに配置してください。

(3)　コマンドラインを利用してWebサービスクライアントを実行する

cjclstartapコマンドを使用して，Webサービスセキュリティ機能を適用したクライアントを実行する場合，Javaアプリケーション用オプション定義ファイルに次の値を設定したキーを追加する必要があります。

add.class.path=<Cosminexusのインストールディレクトリ>¥wss¥lib¥cwssec.jar

add.class.path=<Cosminexusのインストールディレクトリ>¥XMLSEC¥lib¥csmxsec.jar

Javaアプリケーション用オプション定義ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。また，コマンドライン利用時の設定については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

(4)　サービスクラス生成時の注意事項

Webサービスセキュリティ機能をWebサービスクライアントに適用する場合，複数のスレッドで同時にサービスクラスを生成しないでください。異なるサービスクラスの場合も，複数のスレッドで同時に生成するとエラーが発生するおそれがあります。

3.10.4　認証情報の取得・設定手順

JAX-WS機能を使用して開発したWebサービスに対して認証機能を設定したい場合，Webサービスセキュリティ機能が提供するAPIを利用すると，メッセージ内のUsernameToken要素を操作できます。ここでは，UsernameToken要素を操作することで，認証情報を取得または設定する方法を説明します。

＜この項の構成＞

(1)　Webサービス側での認証情報の取得

(2)　Webサービスクライアント側での認証情報の設定

(1)　Webサービス側での認証情報の取得

Webサービスが受信したメッセージの認証情報は，JAX-WS機能のサポート範囲内でアクセスできるメッセージコンテキストから取得します。手順を次に示します。

Webサービス実装クラスでjavax.xml.ws.WebServiceContextクラスのインスタンス変数を宣言します。

手順1で宣言したインスタンス変数をjavax.annotation.Resourceアノテーションでアノテートします。

Webサービス実装クラスのメソッド内で，手順1で宣言したインスタンス変数のgetMessageContext()メソッドを呼び出します。

呼び出したgetMessageContext()メソッドの戻り値として，MessageContextインタフェースを取得します。

WSSConstants.WSS_RECV_ELEMENTPROXYをキーとしてMessageContextインタフェースからjava.util.List<WSSElementProxy>クラスのオブジェクトを取得します。

これらの手順に従って，Webサービス実装クラスTestJaxWsImplのメソッドjaxWsTest()でメッセージコンテキストを取得する例を示します。

import javax.annotation.Resource;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import com.cosminexus.wss.element.WSSConstants;
・・・
public class TestJaxWsImpl {
   @Resource WebServiceContext wsContext;
   public String jaxWsTest()
       throws UserDefinedException
   {
       ・・・
       MessageContext msgContext = wsContext.getMessageContext();
       Object obj = msgContext.get(WSSConstants.WSS_RECV_ELEMENTPROXY);
       ・・・
  }
}

(2)　Webサービスクライアント側での認証情報の設定

Webサービスクライアントが送信するメッセージに認証情報を設定したい場合，JAX-WS機能のサポート範囲内のメッセージコンテキストを設定します。手順を次に示します。

WebサービスクライアントのサービスクラスからSEI（ポート）を取得します。

SEIからgetRequestContext()メソッドを呼び出し，戻り値としてMessageContextインタフェースを取得します。

WSSConstants.WSS_SEND_ELEMENTPROXYをキーとしてMessageContextインタフェースにWSSElementProxyクラスを設定します。

これらの手順に従って，WebサービスクライアントのTestClientクラスを利用してメッセージコンテキストを取得する例を示します。

import java.util.Map;
import javax.xml.ws.BindingProvider;
import com.cosminexus.wss.element.WSSConstants;
import com.cosminexus.wss.element.WSSElementProxy;
import com.cosminexus.wss.element.WSSElementProxyBuilder;
import com.example.sample.TestJaxWs;
import com.example.sample.TestJaxWsService;
・・・
public class TestClient {
   public static void main( String[] args ) {
       ・・・
       TestJaxWsService service = new TestJaxWsService();
       TestJaxWs port = service.getTestJaxWs();
       ・・・
       WSSElementProxyBuilder proxyBuilder = WSSElementProxyBuilder.newInstance();
       WSSElementProxy proxy = proxyBuilder.createWSSElementProxy();
       ・・・
       Map<String, Object> context = ((BindingProvider) port).getRequestContext();
       context.put(WSSConstants.WSS_SEND_ELEMENTPROXY, proxy);
       ・・・
   }

3.11　Webサービスセキュリティ機能の実装手順（ポリシーを使用する場合）

JAX-WS機能でWebサービスを開発する場合，WSDLには記述できない機能や要件をポリシーとして定めることができます。ここで使用するポリシーでは， WS-SecurityPolicy仕様に準拠したアサーションを利用する必要があります。

＜この節の構成＞

3.11.1　Webサービスの実装手順

3.11.2　Webサービスクライアントの実装手順

3.11.3　定義ファイルの編集

3.11.1　Webサービスの実装手順

ポリシーを使用したWebサービスの開発の流れを次に示します。

図3-3　ポリシーを使用したWebサービスの開発

WSDLファイルを作成します。※1

ポリシー記述をコピーします。

WSDLファイルにポリシー記述をインポートします（詳細は「3.11.1(1)　ポリシー記述をインポートする」を参照）。

WSDLファイルにポリシー参照を記述して，ポリシー記述内のアサーションとWSDLの要素を関連づけます。

SEIを作成します。※1

ハンドラチェイン設定ファイルをコピーします。※1

Webサービス実装クラスを作成します。

Webサービス実装クラスをコンパイルします。※1

ポリシー記述に対応するWebサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルを作成します（詳細は「3.11.3　定義ファイルの編集」を参照）。

web.xmlおよびapplication.xmlを作成します。※1

EARファイルを作成します。※2

注※1

ポリシーを使用しない場合と共通の手順です。

注※2

ポリシーを使用する場合，EARファイルを作成するときには次のことに注意してください。

Webサービスセキュリティ機能定義ファイル，Webサービスセキュリティ方針定義ファイル，およびハンドラチェイン設定ファイルをEARファイルに配置する必要があります。詳細は，「3.10.1　Webサービスの実装手順（WSDL起点）」を参照してください。

ポリシー記述を含むメタデータを発行するには，WSDLおよびポリシー記述をWARファイルのWEB-INF/wsdlディレクトリに含める必要があります。詳細はマニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

＜この項の構成＞

(1)　ポリシー記述をインポートする

(2)　ポリシー参照を追加する

(1)　ポリシー記述をインポートする

Webサービスセキュリティ機能では，次のポリシー記述をサポートしています。

表3-6　サポートしているポリシー記述と格納先ディレクトリ

ポリシー記述 | 説明 | 格納先
SignaturePolicy.wsdl | リクエストメッセージおよびレスポンスメッセージの両方に対して，X.509証明書を使用した署名付与／検証機能を使用できます。 | <Cosminexusのインストールディレクトリ>/wss/policies/signature/
EncryptionPolicy.wsdl | リクエストメッセージおよびレスポンスメッセージの両方に対して，共通鍵暗号AES-128を使用した暗号化／復号化機能を使用できます。 | <Cosminexusのインストールディレクトリ>/wss/policies/encryption/
AuthenticationPolicy.wsdl | ユーザー名およびダイジェスト形式のパスワードを設定したUsernameToken要素をリクエストメッセージに付与し，通信先にセキュリティトークンを渡すことによって，認証機能が使用できます。 | <Cosminexusのインストールディレクトリ>/wss/policies/authentication/

Webサービスセキュリティ機能は，これらのポリシー記述をテンプレートとして提供しています。テンプレートの中から必要なポリシー記述を一つだけ選択してコピーし，wsdl:import要素を使用してWSDLファイルにポリシー記述をインポートしてください。インポート例を次に示します。

<wsdl:definitions ・・・>
 <wsdl:import
    namespace="http://cosminexus.com/wss/policy/signature"
    location="SignaturePolicy.wsdl"/>
 ・・・
</wsdl:definitions>

注意

ポリシー記述をコピーして使用する場合は，次のことに注意してください。

コピーできるポリシー記述は一つです。複数のポリシー記述を組み合わせて利用することはできません。

コピーしたポリシー記述は変更しないでください。変更した場合の動作は保証されません。

ポリシー記述を含むメタデータを発行したい場合は，ローカルのポリシー記述を相対パスで指定してください。絶対パスで指定すると，ポリシー記述を含むメタデータを発行できません。

次に，Webサービスセキュリティ機能がサポートしているポリシー記述に含まれるアサーションを示します。

表3-7　アサーション一覧

ポリシー記述
アサーション種別
アサーション名
（wsp:Policy要素のName属性）

SignaturePolicy.wsdl
セキュリティバインディング
http://cosminexus.com/wss/policy/signature#SignaturePolicy

リクエストメッセージのプロテクション
http://cosminexus.com/wss/policy/signature#SignedInputMessagePolicy

レスポンスメッセージのプロテクション
http://cosminexus.com/wss/policy/signature#SignedOutputMessagePolicy

EncryptionPolicy.wsdl
セキュリティバインディング
http://cosminexus.com/wss/policy/encryption#EncryptionPolicy

リクエストメッセージのプロテクション
http://cosminexus.com/wss/policy/encryption#EncryptedInputMessagePolicy

レスポンスメッセージのプロテクション
http://cosminexus.com/wss/policy/encryption#EncryptedOutputMessagePolicy

AuthenticationPolicy.wsdl
サポーティングトークン
http://cosminexus.com/wss/policy/authentication#AuthenticationPolicy

(2)　ポリシー参照を追加する

ポリシーを利用するには，wsp:PolicyReference要素を使用してWSDLファイルにポリシー参照の記述を追加し，ポリシー記述のアサーションとWSDLの要素とを関連づける必要があります。

wsp:PolicyReference要素は，次の形式で記述します。

<wsp:PolicyReference URI="参照するアサーション名"/>

アサーション名には，wsp:Policy要素のName属性を指定します。アサーション名（wsp:Policy要素のName属性）の詳細は，表3-7を参照してください。

ポリシー記述に含まれるアサーションは，すべてWSDLの要素から参照される必要があります。wsp:PolicyReference要素を使用した場合に，アサーションを参照するWSDLの要素は次のとおりです。

表3-8　アサーションを参照するWSDLの要素

WSDLの要素
参照できるアサーションの種別

/wsdl:definitions/wsdl:binding

セキュリティバインディング

サポーティングトークン

/wsdl:definitions/wsdl:binding/wsdl:operation/wsdl:input
リクエストメッセージのプロテクション

/wsdl:definitions/wsdl:binding/wsdl:operation/wsdl:output
レスポンスメッセージのプロテクション

ポリシー参照の例を次に示します。

<wsdl:definitions
  xmlns:wsp="http://www.w3.org/ns/ws-policy/"
 ・・・>

 <wsdl:import
    namespace="http://cosminexus.com/wss/policy/signature"
    location="SignaturePolicy.wsdl"/>
 <wsdl:types>・・・</wsdl:types>
 <wsdl:message ・・・>・・・</wsdl:message>
 ・・・
 <wsdl:portType ・・・>・・・</wsdl:portType>

 <!-- バインディング -->
 <wsdl:binding ・・・>
   <wsp:PolicyReference URI="http://cosminexus.com/wss/policy/signature#SignaturePolicy"/>
   <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
   <!-- オペレーション -->
   <wsdl:operation ・・・>
     <soap:operation/>
     <!-- リクエストメッセージ -->
     <wsdl:input>
       <wsp:PolicyReference URI="http://cosminexus.com/wss/policy/signature#SignedInputMessagePolicy"/>
       <soap:body use="literal"/>
     </wsdl:input>
     <!-- レスポンスメッセージ -->
     <wsdl:output>
       <wsp:PolicyReference URI="http://cosminexus.com/wss/policy/signature#SignedOutputMessagePolicy"/>
       <soap:body use="literal"/>
     </wsdl:output>
     ・・・
   </wsdl:operation>
 </wsdl:binding>

 <wsdl:service ・・・>・・・</wsdl:service>

</wsdl:definitions>

3.11.2　Webサービスクライアントの実装手順

ポリシーを使用したWebサービスクライアントの開発の流れを次に示します。

図3-4　ポリシーを使用したWebサービスクライアントの開発

WSDLファイルを入手，または公開されているWSDLのURLを取得します。※

外部バインディングファイルをコピーして，編集します（詳細は「3.10.3(1)　Webサービスセキュリティハンドラを追加する」を参照）。

外部バインディングファイルを引数に指定して，cjwsimportコマンドを実行し，サービスクラスを生成します。

Webサービスクライアントの実装クラスを作成します。※

Webサービスクライアントの実装クラスをコンパイルします。※

ポリシー記述に対応するWebサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルを作成します（詳細は「3.11.3　定義ファイルの編集」を参照）。

注※

ポリシーを使用しない場合と共通の手順です。

3.11.3　定義ファイルの編集

ポリシー記述を使用する場合は，Cosminexusが提供する，各ポリシー記述に対応するWebサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルのテンプレートをコピーして使用します。使用するポリシー記述に応じて，次に示す場所からテンプレートをコピーしてください。

表3-9　ポリシー記述に対応した定義ファイルのテンプレートの格納場所

ポリシー記述
定義ファイルの格納場所

SignaturePolicy.wsdl

Webサービス側
<Cosminexusのインストールディレクトリ>/wss/policies/signature/templates/server/

Webサービスクライアント側
<Cosminexusのインストールディレクトリ>/wss/policies/signature/templates/client/

EncryptionPolicy.wsdl

Webサービス側
<Cosminexusのインストールディレクトリ>/wss/policies/encryption/templates/server/

Webサービスクライアント側
<Cosminexusのインストールディレクトリ>/wss/policies/encryption/templates/client/

AuthenticationPolicy.wsdl

Webサービス側
<Cosminexusのインストールディレクトリ>/wss/policies/authentication/templates/server/

Webサービスクライアント側
<Cosminexusのインストールディレクトリ>/wss/policies/authentication/templates/client/

なお，コピーしたWebサービスセキュリティ機能定義ファイルおよびWebサービスセキュリティ方針定義ファイルは，編集する必要があります。編集方法を次に示します。

＜この項の構成＞

(1)　署名付与／検証機能を設定する場合

(2)　暗号化／復号化機能を設定する場合

(3)　認証機能を設定する場合

(1)　署名付与／検証機能を設定する場合

表3-10　ポリシー記述を使用するために編集が必要な属性（署名付与／検証機能を設定する場合）

定義ファイル
要素
編集が必要な属性

Webサービスセキュリティ機能定義ファイル
KeyStore要素

File属性

Type属性

Password属性

Certificate要素
Alias属性

PrivateKey要素

Alias属性

Password属性

Webサービスセキュリティ方針定義ファイル
AuthorityCertificateFile要素
Name属性

(2)　暗号化／復号化機能を設定する場合

表3-11　ポリシー記述を使用するために編集が必要な属性（暗号化／復号化機能を設定する場合）

定義ファイル | 要素 | 編集が必要な属性
Webサービスセキュリティ機能定義ファイル | SecretKeyFile要素 | Name属性

注

暗号化／復号化機能を設定する場合，Webサービスセキュリティ方針定義ファイルで編集が必要な属性はありません。

(3)　認証機能を設定する場合

認証機能を設定する場合に編集が必要なのは，Webサービス側に配置するWebサービスセキュリティ機能定義ファイルのConfigurationIndex要素だけです。Webサービスセキュリティ方針定義ファイルおよびWebサービスクライアント側のWebサービスセキュリティ機能定義ファイルは，テンプレートをコピーしたものをそのまま使用してください。

なお，Webサービスクライアントは，認証に必要なユーザー名とパスワード（ダイジェスト形式）を指定するように実装する必要があります。実装に必要なAPIについては，「5.　Webサービスセキュリティ機能が提供するAPI」を参照してください。

4.　Webサービスセキュリティ機能が提供するコマンド

この章では，Webサービスセキュリティ機能が提供するコマンドの使い方について説明します。

＜この章の構成＞

4.1　共通鍵生成コマンド（CWSSCreateSecretKey）

4.2　定義ファイル構文チェックコマンド（CWSSConfCheck）

4.1　共通鍵生成コマンド（CWSSCreateSecretKey）

共通鍵生成コマンドを使用して，暗号化機能を利用するときに必要な共通鍵を生成します。共通鍵生成コマンドを実行すると，共通鍵生成コマンドのオプションで指定したファイルに共通鍵が出力されます。共通鍵のファイルはバイナリー形式です。共通鍵生成コマンドの所在は次のとおりです。

＜Cosminexusのインストールディレクトリ＞/wss/bin/ の下

出力された共通鍵の扱い方については，「付録C.1　Webサービスセキュリティ機能定義ファイルの項目」のSecretKeyFile要素を参照してください。

＜この節の構成＞

(1)　形式

(2)　オプション

(3)　メッセージ

(4)　注意事項

(1)　形式

共通鍵生成コマンドの形式を次に示します。

CWSSCreateSecretKey.bat -h | -a <アルゴリズム識別子> -o <出力ファイル名>

コマンド名（CWSSCreateSecretKey.bat）のあとに，一つ以上の空白を挿入し，オプションを指定します。オプションと指定する値の間も一つ以上の空白を挿入します。

(2)　オプション

共通鍵生成コマンドで指定するオプションを次に示します。

表4-1　共通鍵生成コマンドのオプション

オプション
説明

-h
コマンドのオプション説明を表示します。

-a
生成する共通鍵のアルゴリズム識別子を指定します。
指定可能な値を次に示します。
"TRIPLEDES"： Triple DESブロック暗号の共通鍵を生成します。
"AES128"： AES-128ブロック暗号の共通鍵を生成します。

-o
生成した共通鍵を出力するファイル名を指定します。

(3)　メッセージ

コマンド実行時のメッセージについては，マニュアル「Cosminexus アプリケーションサーバ メッセージ 1」を参照してください。

(4)　注意事項

OSがWindows（x86およびx64）の場合だけ実行できます。ほかのOSでは実行できません。

出力ファイル名に空白が含まれる場合は出力ファイル名を「"」で囲みます。

出力ファイル名にディレクトリを含まない場合は，カレントディレクトリに出力されます。

出力ファイル名にディレクトリを含めた場合は，既存のディレクトリを指定する必要があります。

出力ファイル名には既存のファイルを指定してはいけません。

同じオプションを2回以上指定すると，最後に指定したオプションの値が有効になります。次の例では，共通鍵はfile2に出力されます。

例

CWSSCreateSecretKey.bat -a AES128 -o file1 -o file2

4.2　定義ファイル構文チェックコマンド（CWSSConfCheck）

Webサービスセキュリティ機能定義ファイル，およびWebサービスセキュリティ方針定義ファイルを作成したあと，設定したXMLの構文が正しいかどうかをチェックするために，定義ファイル構文チェックコマンドを使用します。定義ファイル構文チェックコマンドの所在は次のとおりです。

＜Cosminexusのインストールディレクトリ＞/wss/bin/ の下

＜この節の構成＞

(1)　形式

(2)　オプション

(3)　終了コード

(4)　メッセージ

(5)　注意事項

(1)　形式

定義ファイル構文チェックコマンドの形式を次に示します。

CWSSConfCheck.bat -h | [-s | -p] -f <チェックする定義ファイル名>

コマンド名（CWSSConfCheck.bat）のあとに，一つ以上の空白を挿入し，オプションを指定します。オプションと指定する値の間も一つ以上の空白を挿入します。

(2)　オプション

構文チェックコマンドで指定するオプションを次に示します。

表4-2　定義ファイル構文チェックコマンドのオプション

オプション | 説明
-h | コマンドのオプション説明を表示します。
-s | -fオプションで指定するファイルが，Webサービスセキュリティ機能定義ファイルの場合に指定します。
-p | -fオプションで指定するファイルが，Webサービスセキュリティ方針定義ファイルの場合に指定します。
-f | チェック対象の定義ファイル名を指定します。

(3)　終了コード

構文チェックコマンドの終了コードを次に示します。

０：正常終了

１：エラー終了

(4)　メッセージ

コマンド実行時のメッセージについては，マニュアル「Cosminexus アプリケーションサーバ メッセージ 1」を参照してください。

(5)　注意事項

OSがWindows（x86およびx64）の場合だけ実行できます。ほかのOSでは実行できません。

入力ファイル名に空白が含まれる場合は入力ファイル名を「"」で囲みます。

構文チェックで不正な構文があった場合，または内部エラーが発生した場合，エラーメッセージが標準出力に表示されます。

同じオプションを2回以上指定すると，最後に指定したオプションの値が有効になります。次の例では，file2に対してだけ構文をチェックします。

例

CWSSConfCheck -s -f file1.xml -f file2.xml

5.　Webサービスセキュリティ機能が提供するAPI

この章では，Webサービスセキュリティ機能が提供するAPIについて説明します。

＜この章の構成＞

5.1　インタフェースおよびクラスの一覧

5.2　WSSElementProxyBuilderクラス

5.3　 WSSElementProxyFactoryクラス（セキュリティ項目操作クラスの生成）

5.4　WSSElementProxyクラス（セキュリティ項目の操作）

5.5　WSSConstantsインタフェース

5.6　WSSUsernameTokenクラス（UsernameToken要素の操作）

5.7　WSSUsernameToken.PasswordTypeインタフェース（PasswordType要素の操作）

5.8　 WSSExceptionクラス（例外情報の取得）

5.1　インタフェースおよびクラスの一覧

Webサービスセキュリティ機能を使用する場合，SOAPアプリケーション開発支援機能またはJAX-WS機能のどちらを使用してWebサービスを開発するかによって，使用できるAPIが異なります。Webサービスセキュリティ機能が提供するインタフェースおよびクラスの一覧を次に示します。

表5-1　提供するインタフェースおよびクラスの一覧

インタフェース名およびクラス名
説明
サポート状況

SOAPアプリケーション
開発支援機能
JAX-WS機能

WSSElementProxyBuilder
セキュリティ項目操作クラスのビルダクラス
×※1
○

WSSElementProxyFactory
セキュリティ項目操作クラスのファクトリクラス
○
×※2

WSSElementProxy
セキュリティ項目操作クラス
○
○

WSSConstants
定数定義インタフェース
×
○

WSSUsernameToken
UsernameToken要素の操作クラス
○
○

WSSUsernameToken.PasswordType
UsernameToken要素のパスワード種別を示す列挙定数
○
○

WSSException
例外情報を保持するクラス
○
○

（凡例）

○：使用できます。

×：使用できません。

注※1

使用した場合，コンパイルは正常に終了しますが，実行時にエラーが発生します。

注※2

使用した場合，コンパイル時にエラーが発生します。

なお，これらのAPIを使用してSOAP通信基盤上またはJAX-WSエンジン上で動作するWebサービスまたはWebサービスクライアントを開発する場合は，クラスパスに＜Cosminexusのインストールディレクトリ＞/wss/lib/cwssec.jarを追加してコンパイルする必要があります。

5.2　WSSElementProxyBuilderクラス

セキュリティ項目操作クラスのビルダクラスです。このクラスは，JAX-WS機能で開発したWebサービスクライアントに対して使用できます。

クラス定義

public abstract class WSSElementProxyBuilder

パッケージ名

com.cosminexus.wss.element

WSSElementProxyBuilderクラスのメソッドを次の表に示します。

表5-2　WSSElementProxyBuilderクラスのメソッド一覧

メソッド | 機能概要
newInstance | WSSElementProxyBuilderクラスのインスタンスを生成します。
createWSSElementProxy | セキュリティ項目操作クラスのインスタンスを生成します。

次に，各メソッドの詳細について説明します。

＜この節の構成＞

newInstance

createWSSElementProxy

newInstance

クラス名：WSSElementProxyBuilder

機能

WSSElementProxyBuilderクラスのインスタンスを生成します。

構文

public static WSSElementProxyBuilder newInstance() throws WSSException;

引数

ありません。

戻り値

WSSElementProxyBuilderクラスのインスタンスです。

例外

WSSException

CosminexusのJAX-WS機能による実行環境以外でこのメソッドが呼び出された場合にスローされます。メッセージKDCGA9000-Eの一部に，エラーの詳細として次の内容が表示されます。

WSSElementProxyBuilder class is not available outside of JAX-WS runtime environment.

createWSSElementProxy

クラス名：WSSElementProxyBuilder

機能

空のセキュリティ項目操作クラスのインスタンスを生成します。

このメソッドで取得したセキュリティ項目操作クラスにUsernameToken要素クラスのインスタンスを設定します。その後，設定したインスタンスをCosminexusのJAX-WS機能のメッセージコンテキストに追加すると，設定内容に従ってSOAPメッセージが生成されます。

構文

public abstract WSSElementProxy createWSSElementProxy();

引数

ありません。

戻り値

セキュリティ項目操作クラスのインスタンスです。

5.3　 WSSElementProxyFactoryクラス（セキュリティ項目操作クラスの生成）

セキュリティ項目操作クラスのファクトリクラスです。このクラスは，SOAPアプリケーション開発支援機能で開発したSOAPアプリケーションに対して使用できます。

クラス定義

public final class WSSElementProxyFactory

パッケージ名

com.cosminexus.wss.element

WSSElementProxyFactoryクラスのメソッドを次の表に示します。

表5-3　WSSElementProxyFactoryクラスのメソッド一覧

メソッド
機能概要

newWSSElementProxy
（スタブクラスから生成）
スタブクラスから空のセキュリティ項目操作クラスのインスタンスを生成します。

newWSSElementProxy
（メッセージクラスから生成）
メッセージ送信クラスから空のセキュリティ項目操作クラスのインスタンスを生成します。

newWSSElementProxy
（実装クラスから生成）
空のセキュリティ項目操作クラスのインスタンスを生成します。

getWSSElementProxy
（スタブクラスから生成）
スタブクラスから，受信したメッセージのセキュリティ項目操作クラスのインスタンスを生成します。

getWSSElementProxy
（メッセージクラスから生成）
メッセージ送信クラスから，受信したメッセージのセキュリティ項目操作クラスのインスタンスを生成します。

getWSSElementProxy
（実装クラスから生成）
受信したメッセージのセキュリティ項目操作クラスのインスタンスを生成します。

次に，各メソッドの詳細について説明します。

＜この節の構成＞

newWSSElementProxy（スタブクラスから生成）

newWSSElementProxy（メッセージクラスから生成）

newWSSElementProxy（実装クラスから生成）

getWSSElementProxy（スタブクラスから生成）

getWSSElementProxy（メッセージクラスから生成）

getWSSElementProxy（実装クラスから生成）

newWSSElementProxy（スタブクラスから生成）

クラス名：WSSElementProxyFactory

機能

スタブクラスから空のセキュリティ項目操作クラスのインスタンスを生成します。このメソッドの引数で指定したクライアントのインタフェースクラスのサービスメソッドを呼び出すと，セキュリティ項目操作クラスに設定した内容でセキュリティ要素を生成します。このメソッドは，呼び出すサービスメソッドの形態がRPCまたはEJBの場合に使用します。

構文

public static WSSElementProxy newWSSElementProxy (
    javax.xml.rpc.Stub a_Stub
) throws WSSException;

引数

表5-4　newWSSElementProxy（スタブクラスから生成）メソッドの引数

仮引数名 | 名称 | in/out | 説明
a_Stub | スタブクラス | in | クライアントのインタフェースクラス（スタブクラス）を指定します。

戻り値

セキュリティ項目操作クラスのインスタンスです。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

メソッドの引数の指定とは異なるクライアントのインタフェースクラスのサービスメソッドを呼び出した場合，セキュリティ項目操作クラスに設定した内容は反映しません。Webサービスセキュリティ機能定義ファイルに設定した内容に従って，セキュリティ項目を設定します。

メソッドで取得したセキュリティ項目操作クラスが提供するメソッドを利用しないでサービスメソッドを呼び出した場合，Webサービスセキュリティ機能定義ファイルに設定した内容に従って，セキュリティ項目を設定します。

送信時にWebサービスセキュリティ機能を利用しない場合は，このメソッドで取得したセキュリティ項目操作クラスが提供するメソッドを設定しても，セキュリティ項目はSOAPメッセージに設定しません。Webサービスセキュリティ機能を利用しない場合を次に示します。

Webサービスセキュリティ機能定義ファイルが送信時にデプロイされていない場合

Webサービスセキュリティ機能定義ファイル中のリクエストメッセージ送信時の設定が省略されている場合

newWSSElementProxy（メッセージクラスから生成）

クラス名：WSSElementProxyFactory

機能

メッセージ送信クラスから空のセキュリティ項目操作クラスのインスタンスを生成します。このメソッドの引数で指定したSOAPMessageSenderクラスのsendMessageメソッドを呼び出すと，セキュリティ項目操作クラスに設定した内容でセキュリティ要素を生成します。このメソッドは，呼び出すサービスメソッドの形態がメッセージングの場合に使用します。

構文

public static WSSElementProxy newWSSElementProxy (
    com.cosminexus.c4web.service.message.SOAPMessageSender a_Sender
) throws WSSException;

引数

表5-5　newWSSElementProxy（メッセージクラスから生成）メソッドの引数

仮引数名
名称
in/out
説明

a_Sender
メッセージ
送信クラス
in
SOAP通信基盤が提供するSOAPMessageSenderクラスを指定します。

戻り値

セキュリティ項目操作クラスのインスタンスです。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

SOAP通信基盤の標準モードではこのメソッドは使用できません。呼び出すサービスメソッドの形態がメッセージングのときにユーザープログラムからセキュリティヘッダにアクセスしたい場合は，SOAP通信基盤の互換モードでこのメソッドを使用します。SOAP通信基盤のモードについては，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

メソッドの引数の指定とは異なるインスタンスのSOAPMessageSenderクラスのsendMessageメソッドを呼び出した場合，セキュリティ項目操作クラスに設定した内容は反映しません。Webサービスセキュリティ機能定義ファイルに設定した内容に従って，セキュリティ項目を設定します。

メソッドで取得したセキュリティ項目操作クラスが提供するメソッドを利用しないでsendMessageメソッドを呼び出した場合，Webサービスセキュリティ機能定義ファイルに設定した内容に従って，セキュリティ項目を設定します。

送信時にWebサービスセキュリティ機能を利用しない場合は，このメソッドで取得したセキュリティ項目操作クラスが提供するメソッドを利用しても，セキュリティ項目はSOAPメッセージに設定しません。Webサービスセキュリティ機能を利用しない場合を次に示します。

Webサービスセキュリティ機能定義ファイルが送信時にデプロイされていない場合

Webサービスセキュリティ機能定義ファイル中のリクエストメッセージ送信時の設定が省略されている場合

newWSSElementProxy（実装クラスから生成）

クラス名：WSSElementProxyFactory

機能

空のセキュリティ項目操作クラスのインスタンスを生成します。このメソッドは，スタブまたはメッセージクラスから生成するメソッドとは異なり，SOAPサービスの実装クラスでサービスの応答を送信する際に使用します。このメソッドで取得したセキュリティ項目操作クラスが提供するメソッドを利用すると，サービスの応答をクライアントに送信する際に，セキュリティ項目操作クラスに設定した内容でセキュリティ要素を生成します。

構文

public static WSSElementProxy newWSSElementProxy (
) throws WSSException;

引数

ありません。

戻り値

セキュリティ項目操作クラスのインスタンスです。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

メソッドで取得したセキュリティ項目操作クラスが提供するメソッドを利用しない場合，Webサービスセキュリティ機能定義ファイルに設定した内容に従って，レスポンスメッセージ内のセキュリティ項目を設定します。

メソッドをリクエスト受信処理以外の場所で呼び出した場合はnullを返します。

送信時にWebサービスセキュリティ機能を利用しない場合は，このメソッドで取得したセキュリティ項目操作クラスが提供するメソッドを利用しても，セキュリティ項目は設定しません。Webサービスセキュリティ機能を利用しない場合を次に示します。

Webサービスセキュリティ機能定義ファイルが送信時にデプロイされていない場合

Webサービスセキュリティ機能定義ファイル中のリクエストメッセージ送信時の設定が省略されていた場合

getWSSElementProxy（スタブクラスから生成）

クラス名：WSSElementProxyFactory

機能

スタブクラスから，受信したメッセージのセキュリティ項目操作クラスのインスタンスを生成します。このメソッドの引数で指定したクライアントのインタフェースクラスのサービスメソッドの呼び出し後にこのメソッドを呼び出すと，サービスメソッドのレスポンスメッセージに含まれるセキュリティ項目を取得し，セキュリティ項目操作クラスを生成します。その後，このメソッドで取得したセキュリティ項目操作クラスのメソッドを呼び出すことで，セキュリティ項目を取得できます。

構文

public static WSSElementProxy[] getWSSElementProxy (
    javax.xml.rpc.Stub a_Stub
) throws WSSException;

引数

表5-6　getWSSElementProxy（スタブクラスから生成）メソッドの引数

仮引数名 | 名称 | in/out | 説明
a_Stub | スタブクラス | in | RPCまたはEJBを利用したSOAPアプリケーションの場合で，SOAPアプリケーション開発支援機能によって作成されるクライアントのインタフェースクラス（スタブクラス）を指定します。

戻り値

セキュリティ項目操作クラスのインスタンス配列です。セキュリティ項目操作クラスが生成できない場合はnullを返します。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

このメソッドは，引数に指定したスタブクラスのサービスメソッドの呼び出し直後に必ず呼び出すようにしてください。引数に指定したものと異なるスタブクラスのサービスメソッド呼び出し直後にこのメソッドを呼び出した場合，引数に指定したスタブクラスのサービスメソッドの応答メッセージに含まれるセキュリティ項目は取得されません。

メソッドで取得するセキュリティ項目は，このメソッドを呼び出す直前に呼び出したサービスメソッドのレスポンスメッセージに含まれるセキュリティ項目です。サービスメソッドを複数回呼び出した場合，最後のサービスメソッド呼び出しのレスポンスメッセージに含まれるセキュリティ項目を取得します。サービスメソッドを一度も呼び出さないで，このメソッドを呼び出した場合はnullを返します。

戻り値であるセキュリティ項目クラスの配列の順序と，レスポンスメッセージに含まれるセキュリティ項目の順序は必ずしも一致しません。

getWSSElementProxy（メッセージクラスから生成）

クラス名：WSSElementProxyFactory

機能

メッセージ送信クラスから，受信したメッセージのセキュリティ項目操作クラスのインスタンスを生成します。このメソッドの引数で指定したSOAPMessageSenderクラスのsendMessageメソッドの呼び出し後にこのメソッドを呼び出すと，sendMessageメソッドのレスポンスメッセージに含まれるセキュリティ項目を取得し，セキュリティ項目操作クラスを生成します。その後，このメソッドで取得したセキュリティ項目操作クラスのメソッドを呼び出すことで，セキュリティ項目を取得できます。

構文

public static WSSElementProxy[] getWSSElementProxy (
    com.cosminexus.c4web.service.message.SOAPMessageSender a_Sender
) throws WSSException;

引数

表5-7　getWSSElementProxy（メッセージクラスから生成）メソッドの引数

仮引数名
名称
in/out
説明

a_Sender
メッセージ
送信クラス
in
メッセージングを利用したSOAPアプリケーションの場合で，SOAPアプリケーション開発支援機能が提供するSOAPMessageSenderクラスを指定します。

戻り値

セキュリティ項目操作クラスのインスタンス配列です。セキュリティ項目操作クラスが生成できない場合はnullを返します。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

SOAP通信基盤の標準モードではこのメソッドは使用できません。呼び出すサービスメソッドの形態がメッセージングのときにユーザープログラムからセキュリティヘッダにアクセスしたい場合は，SOAP通信基盤の互換モードでこのメソッドを使用します。SOAP通信基盤のモードについては，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

メソッドで取得するセキュリティ項目は，このメソッドを呼び出す直前に呼び出したサービスメソッドのレスポンスメッセージに含まれるセキュリティ項目です。サービスメソッドを複数回呼び出した場合，最後のサービスメソッド呼び出しのレスポンスメッセージに含まれるセキュリティ項目を取得します。サービスメソッドを一度も呼び出さないで，このメソッドを呼び出した場合はnullを返します。

戻り値であるセキュリティ項目クラスの配列の順序と，レスポンスメッセージに含まれるセキュリティ項目の順序は必ずしも一致しません。

getWSSElementProxy（実装クラスから生成）

クラス名：WSSElementProxyFactory

機能

受信したメッセージのセキュリティ項目操作クラスのインスタンスを生成します。このメソッドは，スタブまたはメッセージクラスから生成するメソッドとは異なり，SOAPアプリケーションの実装クラスでサービスのリクエストメッセージに含まれるセキュリティ項目を取得する際に使用します。SOAPアプリケーションの実装クラスでこのメソッドを呼び出すと，リクエストメッセージに含まれるセキュリティ項目を取得し，セキュリティ項目操作クラスを生成します。その後，このメソッドで取得したセキュリティ項目操作クラスのメソッドを呼び出すことで，セキュリティ項目を取得できます。

構文

public static WSSElementProxy[] getWSSElementProxy (
) throws WSSException;

引数

ありません。

戻り値

セキュリティ項目操作クラスのインスタンス配列です。セキュリティ項目操作クラスが生成できない場合はnullを返します。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

このメソッドで取得するセキュリティ項目は，Webサービスセキュリティ機能が処理するセキュリティ項目です。

戻り値であるセキュリティ項目クラスの配列の順序と，リクエストメッセージに含まれるセキュリティ項目の順序は必ずしも一致しません。

5.4　WSSElementProxyクラス（セキュリティ項目の操作）

セキュリティ項目の操作クラスです。

クラス定義

public final class WSSElementProxy

パッケージ名

com.cosminexus.wss.element

WSSElementProxyクラスのメソッドを次の表に示します。

表5-8　WSSElementProxyクラスのメソッド一覧

メソッド名称 | 説明
getWSSUsernameToken | UsernameToken要素クラスのインスタンスを取得します。
setWSSUsernameToken | UsernameToken要素クラスのインスタンスをセキュリティ項目操作クラスのインスタンスに設定します。
removeWSSUsernameToken | UsernameToken要素クラスのインスタンスをセキュリティ項目操作クラスのインスタンスから削除します。
getRole | セキュリティ項目のrole属性を取得します。
setRole | セキュリティ項目のrole属性を設定します。

＜この節の構成＞

getWSSUsernameToken

setWSSUsernameToken

removeWSSUsernameToken

getRole

setRole

getWSSUsernameToken

クラス名：WSSElementProxy

機能

UsernameToken要素クラスのインスタンスを取得します。

構文

public WSSUsernameToken[] getWSSUsernameToken (
) throws WSSException;

引数

ありません。

戻り値

UsernameToken要素クラスのインスタンス配列です。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

セキュリティ項目操作クラスのファクトリクラスの，newWSSElementProxyメソッドによって取得したWSSElementProxyクラスのインスタンスの場合，このメソッドの戻り値はnullです。ただし，setWSSUsernameTokenを呼んだ後，このメソッドを呼び出すとsetWSSUsernameTokenで指定した値を返します。

戻り値のUsernameToken要素クラスのインスタンス配列の順序と，メッセージ中のUsernameToken要素の順序とは必ずしも一致しません。

setWSSUsernameToken

クラス名：WSSElementProxy

機能

UsernameToken要素クラスのインスタンスをセキュリティ項目操作クラスに設定します。

構文

public void setWSSUsernameToken (
    WSSUsernameToken a_UsernameToken
) throws WSSException;

引数

表5-9　setWSSUsernameTokenメソッドの引数

仮引数名 | 名称 | in/out | 説明
a_UsernameToken | UsernameToken要素クラス | in | セキュリティ項目操作クラスに設定するUsernameToken要素操作クラスのインスタンスを指定します。

戻り値

ありません。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

引数にnullを指定した場合，セキュリティ項目操作クラスにUsernameToken要素クラスを設定しないで正常終了します。すでにUsernameToken要素クラスを設定している場合は，元のUsernameToken要素クラスも更新しません。

removeWSSUsernameToken

クラス名：WSSElementProxy

機能

UsernameToken要素クラスのインスタンスをセキュリティ項目操作クラスから削除します。

構文

public void removeWSSUsernameToken (
) throws WSSException;

引数

ありません。

戻り値

ありません。

例外

WSSException

処理中に予測しない例外が発生した場合にスローされます。

注意事項

UsernameToken要素クラスのインスタンスがセキュリティ項目操作クラスに存在しない場合，何も処理をしないで正常終了します。

getRole

クラス名：WSSElementProxy

機能

セキュリティ項目のrole属性値を取得します。

構文

public java.net.URI getRole (
) throws WSSException;

引数

ありません。

戻り値

セキュリティ項目に含まれるrole属性値です。セキュリティ項目にrole属性がない場合はnullを返します。

例外

ありません。

setRole

クラス名：WSSElementProxy

機能

セキュリティ項目のrole属性値を設定します。

構文

public void setRole (
    java.net.URI a_Role
) throws WSSException;

引数

表5-10　setRoleメソッドの引数

仮引数名 | 名称 | in/out | 説明
a_Role | role属性値 | in | セキュリティ項目操作クラスに設定するrole属性値を指定します。

戻り値

ありません。

例外

ありません。

5.5　WSSConstantsインタフェース

定数定義インタフェースです。このインタフェースは，JAX-WS機能で開発したWebサービスクライアントおよびWebサービスに対して使用できます。

インタフェース定義

public interface WSSConstants

パッケージ名

com.cosminexus.wss.element

＜この節の構成＞

(1)　WSS_SEND_ELEMENTPROXYプロパティ

(2)　WSS_RECV_ELEMENTPROXYプロパティ

(1)　WSS_SEND_ELEMENTPROXYプロパティ

CosminexusのJAX-WS機能のメッセージコンテキストのプロパティです。このプロパティは，送信するSOAPメッセージのセキュリティヘッダにUsernameToken要素を設定する場合に必要です。このプロパティをキーにして，JAX-WS機能のメッセージコンテキストにcom.cosminexus.wss.element.WSSElementProxyクラスのオブジェクトを設定します。

注意事項

次の場合は，Webサービスセキュリティ機能定義ファイルに設定した内容に従って，セキュリティ項目を設定します。

WSS_SEND_ELEMENTPROXYプロパティを使用して，セキュリティ項目操作クラス以外のインスタンスをメッセージコンテキストに設定した場合

メッセージコンテキストに設定したセキュリティ項目操作クラスのインスタンスに，UsernameToken要素クラスのインスタンスを設定しないでWebサービスを呼び出した場合

Webサービスセキュリティ機能定義ファイル中のリクエストメッセージ送信時の設定が省略されていると，送信時にWebサービスセキュリティ機能は適用されません。この場合，メッセージコンテキストにセキュリティ項目操作クラスが提供するメソッドを設定しても，SOAPメッセージにセキュリティ項目は設定されません。

(2)　WSS_RECV_ELEMENTPROXYプロパティ

CosminexusのJAX-WS機能のメッセージコンテキストのプロパティです。このプロパティは，受信するSOAPメッセージのセキュリティヘッダからUsernameToken要素を取得する場合に必要です。このプロパティをキーにして，JAX-WS機能のメッセージコンテキストからjava.util.List<WSSElementProxy>クラスのオブジェクトを取得します。

注意事項

WSS_RECV_ELEMENTPROXYプロパティを使用して取得した値は変更できません。

WSS_RECV_ELEMENTPROXYプロパティを使用してメッセージコンテキストから取得したセキュリティ項目は，Webサービスセキュリティ機能によって処理されます。

java.util.List<WSSElementProxy>クラスから取得したセキュリティ項目操作クラスの順序は，リクエストメッセージに含まれるセキュリティ項目の順序と異なる場合があります。

受信したリクエストメッセージにUsernameToken要素が含まれていない場合，WSS_RECV_ELEMENTPROXYプロパティを参照するとnullを返します。

5.6　WSSUsernameTokenクラス（UsernameToken要素の操作）

UsernameToken要素の操作クラスです。

クラス定義

public final class WSSUsernameToken extends
    com.cosminexus.wss.element.WSSElementBase

パッケージ名

com.cosminexus.wss.element

WSSUsernameTokenクラスのメソッドを次の表に示します。

表5-11　WSSUsernameTokenクラスのメソッド一覧

メソッド名称 | 説明
コンストラクタ | UsernameToken要素クラスのコンストラクタです。
getUsername | ユーザー名を取得します。
setUsername | ユーザー名を設定します。
getPassword | パスワードを取得します。
setPassword | パスワードを設定します。
getId | UsernameToken要素のId属性を取得します。
setId | UsernameToken要素のId属性を設定します。
getPasswordType | パスワード種別を取得します。
setPasswordType | パスワード種別を設定します。
getNonce | Nonce属性を取得します。
getCreated | Created属性を取得します。

注意事項

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのnewWSSElementProxyメソッドによって生成した場合，このクラスのメソッドで指定した内容でUsernameToken要素を生成します。ただし，Webサービスセキュリティ機能定義ファイルに，呼び出すサービスメソッドに対応するSenderPortConfig要素，RoleConfig要素の指定がない場合はUsernameToken要素を生成しません。

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのgetWSSElementProxyメソッドによって生成した場合，このクラスの名称がsetで始まるメソッドで値を設定しても，UsernameToken要素は生成しません。

Webサービスセキュリティ機能定義ファイルにUsernameToken要素を定義している場合，このメソッドが生成したUsernameToken要素とは別に，複数のUsernameToken要素を生成します。

＜この節の構成＞

コンストラクタ

getUsername

setUsername

getPassword

setPassword

getId

setId

getPasswordType

setPasswordType

getNonce

getCreated

コンストラクタ

機能

UsernameToken要素クラスのコンストラクタです。

構文

public WSSUsernameToken (
    java.lang.String a_Username
) throws WSSException;

引数

表5-12　コンストラクタの引数

仮引数名 | 名称 | in/out | 説明
a_Username | ユーザー名 | in | ユーザー名を示す文字列を指定します。

戻り値

UsernameToken要素クラスのインスタンスです。

例外

WSSException

引数に空文字""またはnullが指定されました。

注意事項

このクラスが生成される際のUsernameToken要素の初期値を次に示します。

表5-13　UsernameToken要素の初期値

クラスの要素
初期値1 ※1
初期値２ ※2

Username
コンストラクタの引数で指定したユーザー名
UsernameToken要素のユーザー名

Password
null
UsernameToken要素のパスワード

PasswordType
WSSUsernameToken.PasswordType.TEXT
WSSUsernameToken.PasswordType.TEXT
または
WSSUsernameToken.PasswordType.DIGEST

Id
null
UsernameToken要素のId属性

Nonce
null
UsernameToken要素のNonce属性

Created
null
UsernameToken要素のCreated属性

注※1

コンストラクタを使用した場合

注※2

このクラスをセキュリティ項目操作クラスのgetWSSUsernameTokenメソッドで生成した場合

引数にnullを設定した場合，WSSException例外が発生します。

引数に空文字""を設定した場合，WSSException例外が発生します。

引数に一つ以上の空白文字を設定した場合，ユーザー名の情報は一つ以上の空白文字に置き換えられます。

getUsername

クラス名：WSSUsernameToken

機能

UsernameToken要素のユーザー名を取得します。

構文

public java.lang.String getUsername (
);

引数

ありません。

戻り値

UsernameToken要素のユーザー名です。

例外

ありません。

setUsername

クラス名：WSSUsernameToken

機能

UsernameToken要素のユーザー名を設定します。

構文

public void setUsername (
    java.lang.String a_Username
) throws WSSException;

引数

表5-14　setUsernameメソッドの引数

仮引数名 | 名称 | in/out | 説明
a_Username | ユーザー名 | in | ユーザー名を示す文字列を指定します。

戻り値

ありません。

例外

WSSException

　引数に空文字""が指定されました。

注意事項

引数にnullを設定した場合，このクラスが保持するユーザー名の情報は更新しません。

引数に一つ以上の空白文字を設定した場合，このクラスが保持するユーザー名の情報は一つ以上の空白文字に置き換えられます。

getPassword

クラス名：WSSUsernameToken

機能

UsernameToken要素のパスワードを取得します。

構文

public char[] getPassword (
);

引数

ありません。

戻り値

UsernameToken要素のパスワードです。UsernameToken要素にパスワードがない場合はnullを返します。

例外

ありません。

注意事項

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのnewWSSElementProxyメソッドによって生成した際，UsernameToken要素内にPassword要素が存在しない場合はnullを返します。ただし，すでにsetPasswordメソッドでパスワードを設定している場合はその値を返します。

受信メッセージのセキュリティ項目の，UsernameToken要素内のPassword要素が空要素の場合はnullを返します。

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのgetWSSElementProxyメソッドによって生成した際，受信メッセージ内のPassword要素の種別が平文（SOAPメッセージのPasswordText要素）の場合は平文のパスワードを返します。Password要素の種別がダイジェスト（SOAPメッセージのPasswordDigest要素）の場合はダイジェスト値をそのまま返します。

setPassword

クラス名：WSSUsernameToken

機能

UsernameToken要素のパスワードを設定します。

構文

public void setPassword (
    char[] a_Password
);

引数

表5-15　setPasswordメソッドの引数

仮引数名 | 名称 | in/out | 説明
a_Password | パスワード | in | パスワードを指定します。

戻り値

ありません。

例外

ありません。

注意事項

引数にnullまたは空文字""を設定した場合，このクラスに設定したパスワードの情報は更新されません。

引数に空白文字を設定した場合，このクラスに設定したパスワードの情報は空白文字に置き換えられます。

getId

クラス名：WSSUsernameToken

機能

UsernameToken要素のId属性を取得します。

構文

public java.lang.String getId (
);

引数

ありません。

戻り値

UsernameToken要素のId属性値を示す文字列です。UsernameToken要素にId属性がない場合はnullを返します。

例外

ありません。

注意事項

このメソッドで取得するのは，UsernameToken要素のId属性です。

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのnewWSSElementProxyメソッドによって生成した場合はnullを返します。ただし，すでにsetIdメソッドでIdを設定している場合はその値を返します。

setId

クラス名：WSSUsernameToken

機能

UsernameToken要素のId属性を設定します。

構文

public void setId (
    java.lang.String a_Id
);

引数

表5-16　setIdメソッドの引数

仮引数名 | 名称 | in/out | 説明
a_Id | Id | in | Id属性を示す文字列を指定します。

戻り値

ありません。

例外

ありません。

注意事項

このメソッドで設定したId属性値はUsernameToken要素のId属性に設定されます。ただし，ほかの要素のId属性値と重複しているかどうかはチェックしません。

getPasswordType

クラス名：WSSUsernameToken

機能

UsernameToken要素のパスワード種別を取得します。

構文

public WSSUsernameToken.PasswordType getPasswordType (
);

引数

ありません。

戻り値

UsernameToken要素のパスワード種別です。UsernameToken要素にパスワードがない場合は，WSSUsernameToken.PasswordType.TEXTを返します。

表5-17　WSSUsernameToken.PasswordTypeクラスの列挙値

列挙値
意味

WSSUsernameToken.PasswordType.TEXT
平文形式のパスワードです。
（http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-username-token-profile-1.0#PasswordText形式）

WSSUsernameToken.PasswordType.DIGEST
ダイジェスト形式のパスワードです。
（http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-username-token-profile-1.0#PasswordDigest形式）

例外

ありません。

注意事項

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのnewWSSElementProxyメソッドによって生成した場合，WSSUsernameToken.PasswordType.TEXTを返します。ただし，すでにsetPasswordTypeメソッドでパスワード種別を設定している場合は，その値を返します。

setPasswordType

クラス名：WSSUsernameToken

機能

UsernameToken要素のパスワード種別を設定します。

構文

public void setPasswordType (
    WSSUsernameToken.PasswordType a_PasswordType
);

引数

表5-18　setPasswordTypeメソッドの引数

仮引数名
名称
in/out
説明

a_PasswordType
パスワード
種別
in
パスワード種別を示す，
WSSUsernameToken.PasswordTypeの列挙値を指定します。

戻り値

ありません。

例外

ありません。

getNonce

クラス名：WSSUsernameToken

機能

UsernameToken要素のNonce属性の内容を取得します。

構文

public java.lang.String getNonce (
);

引数

ありません。

戻り値

UsernameToken要素のNonce属性値です。UsernameToken要素にNonce属性がない場合はnullを返します。

例外

ありません。

注意事項

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのnewWSSElementProxyメソッドによって生成した際，UsernameToken要素内にNonce属性がない場合はnullを返します。

getCreated

クラス名：WSSUsernameToken

機能

UsernameToken要素のCreated属性の内容を取得します。

構文

public java.lang.String getCreated (
);

引数

ありません。

戻り値

UsernameToken要素のCreated属性文字列です。UsernameToken要素にCreated属性がない場合はnullを返します。

例外

ありません。

注意事項

セキュリティ項目操作クラスのインスタンスを，セキュリティ項目操作クラスのファクトリクラスのnewWSSElementProxyメソッドによって生成した際，UsernameToken要素内にCreated属性がない場合はnullを返します。

5.7　WSSUsernameToken.PasswordTypeインタフェース（PasswordType要素の操作）

PasswordType要素の操作クラスです。

クラス定義

public static final class WSSUsernameToken.PassswordType

パッケージ名

com.cosminexus.wss.element

機能

WSSUsernameTokenクラスのgetPasswordType()，setPasswordType()メソッドの戻り値および引数で指定する，PasswordType要素を示す列挙定数です。次にパスワード種別を示します。

TEXT

パスワード種別が平文形式（http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText）であることを示します。

DIGEST

パスワード種別がダイジェスト形式（http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-username-token-profile-1.0#PasswordDigest）であることを示します。

5.8　 WSSExceptionクラス（例外情報の取得）

Webサービスセキュリティ機能が提供するAPIで発生する例外クラスです。

クラス定義

public final class WSSException extends
    java.lang.Exception

パッケージ名

com.cosminexus.wss.faults

WSSExceptionクラスのメソッドを次の表に示します。

表5-19　WSSExceptionクラスのメソッド一覧

メソッド名称 | 説明
getMessage | 詳細メッセージを取得します。

＜この節の構成＞

getMessage

getMessage

クラス名：WSSException

機能

例外の詳細メッセージを取得します。

構文

public java.lang.String getMessage (
);

引数

ありません。

戻り値

詳細メッセージを示す文字列です。

6.　障害対策

この章では，Webサービスセキュリティ機能の実行，および運用中の障害対策のために出力される情報について説明します。

＜この章の構成＞

6.1　トレースを収集する

6.1　トレースを収集する

Webサービスセキュリティ機能では，障害対策に必要な情報をトレースとして出力します。トレースは障害の発生個所の割り出しや原因の調査などに利用します。Webサービスセキュリティ機能で出力するトレースの種類を次に示します。

表6-1　Webサービスセキュリティ機能が出力するトレースの種類

トレースの種類 | 説明
サーバトレース | Webサービスセキュリティ機能のサーバ処理部分が出力します。
クライアントトレース | Webサービスセキュリティ機能のクライアント処理部分が出力します。
コマンドトレース | Webサービスセキュリティ機能のコマンドラインインタフェースが出力します。

＜この節の構成＞

6.1.1　トレースの内容

6.1.2　トレースの出力先

6.1.3　トレースの重要度

6.1.1　トレースの内容

サーバトレース，クライアントトレース，およびコマンドトレースが出力するトレースの内容と出力例を次に示します。

＜この項の構成＞

(1)　出力内容

(2)　出力例

(1)　出力内容

表6-2　トレースの出力内容

項目
内容

日付
出力時の日付（yyyy/mm/dd形式）が出力されます。

時刻
出力時の時刻（hh:mm:ss.sss形式）が出力されます。

アプリケーション名
「wss」が出力されます。

プロセス識別子
プロセス識別子（16進数）が出力されます。

スレッド識別子
スレッド識別子（16進数）が出力されます。

メッセージID
メッセージIDが出力されます。メッセージIDを持たないものは出力されません。

メッセージ種別
OC：メソッドの入口を表します。
OD：メソッドの出口を表します。
EC：例外をキャッチしたことを表します。
ER：エラーメッセージを表示したことを表します。
FB：ほかのプログラムの処理の呼び出しを表します。
FE：呼び出したほかのプログラムの処理の終了を表します。
PB：Webサービスセキュリティ機能が提供するAPIの開始を表します。
PE：Webサービスセキュリティ機能が提供するAPIの終了を表します。

メッセージテキスト
実行時の情報を示すメッセージが出力されます。

(2)　出力例

図6-1　トレースの出力例

6.1.2　トレースの出力先

トレースの出力先を次に示します。

表6-3　トレースの出力先

トレースの種類
出力先

サーバトレース
SOAP通信基盤またはJAX-WSエンジンのサーバ側で出力するトレースと同じファイル上に出力されます。
JAX-WSエンジンの場合，JAX-WS機能の稼働ログにメッセージが，例外ログにスタックトレースが，保守ログに保守情報が出力されます。

クライアントトレース
SOAP通信基盤またはJAX-WSエンジンのクライアント側で出力するトレースと同じファイル上に出力されます。
JAX-WSエンジンの場合，JAX-WS機能の稼働ログにメッセージが，例外ログにスタックトレースが，保守ログに保守情報が出力されます。

コマンドトレース
SOAP通信基盤の場合は，モードによって出力先ディレクトリが異なります。

標準モードの場合
＜Cosminexusのインストールディレクトリ＞/CC/client/logs/system/ejbcl/WS

互換モードの場合
＜Cosminexusのインストールディレクトリ＞/wss/logs

JAX-WSエンジンの場合は，常に＜Cosminexusのインストールディレクトリ＞/CC/client/logs/system/ejbcl/WSが出力先となります。

コマンドトレースは，これらのディレクトリのうちのどちらか一つの下に，次のファイル名で出力されます。

共通鍵生成コマンドの場合
CWSSCreateSecretKey-n.log (n:1～2)

定義ファイル構文チェックコマンドの場合
CWSSConfCheck-n.log (n:1～2)

注

SOAP通信基盤のトレース出力先とモードについては，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。JAX-WSエンジンのトレース出力先と動作定義ファイルについてはマニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

6.1.3　トレースの重要度

トレースの重要度を変更することで，出力するトレースの情報量を変更できます。出力する情報量を多くすることで，障害発生の要因を特定しやすくなります。ただし，出力する情報量を多くすると，プログラムの処理性能への影響が大きくなります。

トレースの重要度には次のレベルがあります。

ERROR

WARN

INFO

DEBUG

Webサービスセキュリティ機能で出力するトレースの重要度は，SOAP通信基盤またはJAX-WS機能の設定に従います。JAX-WS機能の場合の詳細を次の表に示します。

表6-4　JAX-WS機能を利用している場合のトレースの重要度

トレースの種類 | 出力内容 | 有効となる重要度
サーバトレース | メッセージ | J2EEサーバ上で動作させた場合のJAX-WS機能の稼働ログの重要度
スタックトレース | J2EEサーバ上で動作させた場合のJAX-WS機能の例外ログの重要度
保守情報 | J2EEサーバ上で動作させた場合のJAX-WS機能の保守ログの重要度
クライアントトレース | メッセージ | J2EEサーバ上またはコマンドインタフェースで動作させた場合のJAX-WS機能の稼働ログの重要度
スタックトレース | J2EEサーバ上またはコマンドインタフェースで動作させた場合のJAX-WS機能の例外ログの重要度
保守情報 | J2EEサーバ上またはコマンドインタフェースで動作させた場合のJAX-WS機能の保守ログの重要度

JAX-WS機能のログの重要度の詳細については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。また，SOAP通信基盤を利用している場合は，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

付録

＜この付録の構成＞

付録A　標準仕様への対応

付録B　下位バージョンからの移行手順

付録C　定義ファイルの項目の詳細

付録D　このマニュアルの参考情報

付録E　用語解説

付録A　標準仕様への対応

Webサービスセキュリティ機能は，次の仕様に従っています。

WS-Security仕様

07-60以降のバージョン
Web Services Security: SOAP Message Security 1.1

07-60より前のバージョン
Web Services Security: SOAP Message Security Working Draft 17

WS-Policy 1.5仕様

Web Services Policy 1.5 - Framework

Web Services Policy 1.5 - Attachment

WS-SecurityPolicy 1.3仕様

XML署名標準仕様（2002/2/12　W3C勧告）

XML暗号標準仕様（2002/12/10　W3C勧告）

WS-Security仕様およびWS-SecurityPolicy 1.3仕様の詳細については，OASISのホームページを参照してください。また，XML署名およびXML暗号の標準仕様，およびWS-Policy 1.5仕様の詳細については，W3Cのホームページを参照してください。ここでは，各仕様のうち，Webサービスセキュリティ機能がサポートしている範囲を説明します。

注意事項

07-60以降のバージョンでは，Web Services Security: SOAP Message Security 1.1 以外の仕様を実装した他社製品とは接続できない可能性があります。

07-60より前のバージョンでは，Web Services Security: SOAP Message Security Working Draft 17 以外の仕様を実装した他社製品とは接続できない可能性があります。

＜この節の構成＞

付録A.1　WS-Security仕様のサポート範囲

付録A.2　XML署名標準仕様のサポート範囲

付録A.3　XML暗号標準仕様のサポート範囲

付録A.4　WS-Policy 1.5仕様のサポート範囲

付録A.5　WS-SecurityPolicy 1.3仕様のサポート範囲

付録A.1　WS-Security仕様のサポート範囲

Webサービスセキュリティ機能がサポートするWS-Security仕様の範囲を次の表に示します。

表A-1　WS-Security仕様のサポート範囲

項番
WS-Security仕様
推奨
レベル
サポートの有無

大分類
中分類
小分類

1
SecurityToken
UsernameToken
PasswordText
推奨
○

2
PasswordDigest
推奨
○

3
Nonce
推奨
○

4
Created
任意
○

5
BinarySecurityToken
X.509v3
任意
○

6
X509PKIPathv1
任意
×

7
PKCS7
任意
×

8
Kerberos5TGT
任意
×

9
Kerberos5ST
任意
×

10
SAML Assertion
－
任意
×

11
XrML
－
任意
×

12
XCBF
－
任意
×

13
EncryptedData Token
－
任意
×

14
TokenReference
Direct Reference
－
推奨
○

15
KeyIdentifiers
－
推奨
○

16
Embedded Reference
－
任意
×

17
KeyNames
－
任意
×

18
ds:KeyInfo
－
推奨
○

19
Encrypted Key Reference
－
任意
×

20
Signature
Algorithms
－
推奨
○

21
Signing Messages
－
必須
○

22
Signing Tokens
－
任意
△※

23
Signature Validation
－
必須
○

24
Signature Confirmation
－
任意
×

25
Encryption
xenc:ReferenceList
－
推奨
×

26
xenc:EncryptedKey
－
推奨
○

27
Encrypted Header
－
任意
×

28
Processing Rules
－
必須
○

29
Security TimeStamp
－
－
推奨
○

30
Error Handling
－
－
推奨
○

（凡例）

○：サポートあり

×：サポートなし

－：該当しない

注※

SecurityToken要素を直接署名できますが，STR Transformを非サポートのため，SecurityTokenReference要素を署名できません。

付録A.2　XML署名標準仕様のサポート範囲

Webサービスセキュリティ機能がサポートするXML署名標準仕様の範囲を次の表に示します。

表A-2　XML署名標準仕様のサポート範囲

項番
役割
項目
推奨レベル
サポートの
有無

1
ダイジェスト値計算
SHA1
必須
○

2
符号化
base64（エンコード）
必須
○

3
署名値計算
HMAC-SHA1
必須
×

4
DSAwithSHA1
必須
○

5
RSAwithSHA1
推奨
○

6
正規化処理
Canonical XML（コメント付き）
推奨
○

7
Canonical XML（コメントなし）
必須
○

8
Exclusive Canonical XML（コメント付き）
任意
○

9
Exclusive Canonical XML（コメントなし）
任意※1
○

10
変換処理
Canonical XML（コメント付き）
推奨
○

11
Canonical XML（コメントなし）
必須
○

12
Exclusive Canonical XML（コメント付き）
任意
○

13
Exclusive Canonical XML（コメントなし）
任意※1
○

14
base64（変換アルゴリズム）
必須
×

15
XSLT
任意
×

16
XPath
推奨
×

17
XPath Filter 2.0
任意
×

18
Enveloped Signature
必須
×

19
STR Dereference※2
推奨
×

（凡例）

○：サポートあり

×：サポートなし

注※1

WS-Security仕様では，サポートを推奨しています。

注※2

XML署名標準仕様で規定されている変換処理ではなく，WS-Security仕様で規定されているものです。

付録A.3　XML暗号標準仕様のサポート範囲

Webサービスセキュリティ機能がサポートするXML暗号標準仕様の範囲を次の表に示します。

表A-3　XML暗号標準仕様のサポート範囲

項番 | 項目 | 推奨レベル | サポートの有無
1 | Triple DES | 必須 | ○
2 | AES-128 | 必須 | ○
3 | AES-192 | 任意 | ×
4 | AES-256 | 必須 | ×
5 | RSA-v1.5 | 必須 | ×
6 | RSA-OAEP | 必須 | ×
7 | Diffie-Hellman Key Values | 任意 | ×
8 | Diffie-Hellman Key Agreement | 任意 | ×
9 | TRIPLEDES鍵ラッピング | 必須 | ○
10 | AES-128鍵ラッピング（128bit鍵） | 必須 | ○
11 | AES-192鍵ラッピング | 任意 | ×
12 | AES-256鍵ラッピング（256bit鍵） | 必須 | ×
13 | XML Decryption Transformation | 推奨※ | ×

（凡例）

○：サポートあり

×：サポートなし

注※

WS-Security仕様で規定されている推奨レベルです。

付録A.4　WS-Policy 1.5仕様のサポート範囲

ここでは，Webサービスセキュリティ機能がサポートするWS-Policy 1.5仕様の範囲を説明します。

＜この項の構成＞

(1)　WS-Policy 1.5 - Framework仕様のサポート範囲

(2)　WS-Policy 1.5 - Attachment仕様のサポート範囲

(1)　WS-Policy 1.5 - Framework仕様のサポート範囲

Webサービスセキュリティ機能がサポートするWS-Policy 1.5 - Framework仕様の範囲を次の表に示します。

表A-4　WS-Policy 1.5 - Framework仕様のサポート範囲

該当個所※
大分類
中分類
小分類
要素と属性
（XPath形式）
サポートの有無

4.1
Policy Expression
Normal Form Policy Expression
－
－
○

4.2
Policy Identification
－
/wsp:Policy/@Name
○

/wsp:Policy/@wsu:Id
×

/wsp:Policy/@xsd:ID
×

4.3.1
Compact Policy Expression
Optional Policy Assertions
－
×

4.3.2
Policy Assertion Nesting
－
○

4.3.3
Policy Operators
－
×

4.3.4
Policy References
/wsp:PolicyReference
○

/wsp:PolicyReference/@URI
○

/wsp:PolicyReference/@Digest
×

/wsp:PolicyReference/@DigestAlgorithm
×

4.3.5
Policy Inclusion
－
×

4.3.6
Normalization
－
×

4.4
Ignorable Policy Assertions
－
－
×

4.5
Policy Intersection
－
－
×

4.6
Use of IRIs in Policy Expressions
－
－
×

（凡例）

○：サポートあり

×：サポートなし

－：該当する分類，要素，または属性なし

注※

WS-Policy 1.5 - Framework仕様の該当個所（章節項）を示します。

(2)　WS-Policy 1.5 - Attachment仕様のサポート範囲

Webサービスセキュリティ機能がサポートするWS-Policy 1.5 - Attachment仕様の範囲を次の表に示します。

表A-5　WS-Policy 1.5 - Attachment仕様のサポート範囲

該当個所※ | 大分類 | 中分類 | 小分類または内容 | サポートの有無
3.1 | Policy Attachment | Effective Policy | － | ○
3.2 | Policy Attachment Mechanisms | － | ○
3.3 | XML Element Attachment | － | ×
3.4 | External Policy Attachment | － | ×
4.1 | Attaching Policies Using WSDL 1.1 | Calculating Effective Policy in WSDL 1.1 | wsdl:required="true" | ×
4.1.1 | Service Policy Subject | ×
4.1.2 | Endpoint Policy Subject | ○
4.1.3 | Operation Policy Subject | ×
4.1.4 | Message Policy Subject | ○
5 | WS-Policy Attachment for WSDL 2.0 | － | － | ×
6 | Attaching Policies Using UDDI | － | － | ×

（凡例）

○：サポートあり

×：サポートなし

－：該当する分類または内容なし

注※

WS-Policy 1.5 - Attachment仕様の該当個所（章節項）を示します。

付録A.5　WS-SecurityPolicy 1.3仕様のサポート範囲

ここでは，Webサービスセキュリティ機能がサポートするWS-SecurityPolicy 1.3仕様の範囲を説明します。

＜この項の構成＞

(1)　Protection Assertionsのサポート範囲

(2)　Token Assertionsのサポート範囲

(3)　Security Binding Assertionsのサポート範囲

(4)　Supporting Tokensのサポート範囲

(5)　WSS:SOAP Message Security Optionsのサポート範囲

(6)　WS-Trust Optionsのサポート範囲

(1)　Protection Assertionsのサポート範囲

WS-SecurityPolicy 1.3仕様の中の Protection Assertionsのうち，Webサービスセキュリティ機能がサポートする範囲を次の表に示します。

表A-6　Protection Assertionsのサポート範囲

該当個所※
大分類
小分類
アサーション
（XPath形式）
サポートの有無

4.1.1
Integrity Assertions
SignedParts Assertion
/sp:SignedParts
○

/sp:SignedParts/sp:Body
○

/sp:SignedParts/sp:header
×

/sp:SignedParts/sp:Attachments
×

4.1.2
SignedElements Assertion
/sp:SignedElements
×

4.2.1
Confidentiality Assertions
EncryptedParts Assertion
/sp:EncryptedParts
○

/sp:EncryptedParts/sp:Body
○

/sp:EncryptedParts/sp:Header
×

/sp:EncryptedParts/sp:Attachments
×

4.2.2
EncryptedElements Assertion
/sp:EncryptedElements
×

4.2.3
ContentEncryptedElements Assertion
/sp:ContentEncryptedElements
×

4.3.1
Required Elements Assertion
RequiredElements Assertion
/sp:RequiredElements
×

4.3.2
RequiredParts Assertion
/sp:RequiredParts
×

（凡例）

○：サポートあり

×：サポートなし

注※

WS-SecurityPolicy 1.3仕様の該当個所（章節項）を示します。

(2)　Token Assertionsのサポート範囲

WS-SecurityPolicy 1.3仕様の中の Token Assertionsのうち，Webサービスセキュリティ機能がサポートする範囲を次の表に示します。

表A-7　Token Assertionsのサポート範囲

該当個所※1
大分類
小分類
アサーション
（XPath形式）
サポートの有無

5.1
Token Inclusion
－
@sp:IncludeToken
○

5.2.1
Token Issuer and Required Claims
Token Issuer
sp:Issuer
×

5.2.2
Token Issuer Name
sp:IssuerName
×

5.2.3
Required Claims
wst:Claims
×

5.3.1
Token Properties
[Derived Keys] Property
sp:RequireDerivedKeys
×

5.3.2
[Explicit Derived Keys] Property
sp:RequireExplicitDerivedKeys
×

5.3.3
[Implied Derived Keys] Property
sp:RequireImpliedDerivedKeys
×

5.4.1
Token Assertion Types
UsernameToken Assertion
/sp:UsernameToken
○

/sp:UsernameToken/@sp:IncludeToken
○※2

/sp:UsernameToken/sp:Issuer
×

/sp:UsernameToken/sp:IssuerName
×

/sp:UsernameToken/wst:Claims
×

/sp:UsernameToken/wsp:Policy/sp:NoPassword
×

/sp:UsernameToken/wsp:Policy/sp:HashPassword
○

/sp13:UsernameToken/wsp:Policy/sp13:Created
×

/sp13:UsernameToken/wsp:Policy/sp13:Nonce
×

/sp:UsernameToken/wsp:Policy/sp:RequireDerivedKeys
×

/sp:UsernameToken/wsp:Policy/sp:RequireExplicitDerivedKeys
×

/sp:UsernameToken/wsp:Policy/sp:RequireImpliedDerivedKeys
×

/sp:UsernameToken/wsp:Policy/sp:WssUsernameToken10
○

/sp:UsernameToken/wsp:Policy/sp:WssUsernameToken11
×

5.4.2
Token Assertion Types
IssuedToken Assertion
/sp:IssuedToken
×

5.4.3
Token Assertion Types
X509Token Assertion
/sp:X509Token
○

/sp:X509Token/@sp:IncludeToken
○※3

/sp:X509Token/sp:Issuer
×

/sp:X509Token/sp:IssuerName
×

/sp:X509Token/wst:Claims
×

/sp:X509Token/wsp:Policy/sp:RequireDerivedKeys
×

/sp:X509Token/wsp:Policy/sp:RequireExplicitDerivedKeys
×

/sp:X509Token/wsp:Policy/sp:RequireImpliedDerivedKeys
×

/sp:X509Token/wsp:Policy/sp:RequireKeyIdentifierReference
×

/sp:X509Token/wsp:Policy/sp:RequireIssuerSerialReference
×

/sp:X509Token/wsp:Policy/sp:RequireEmbeddedTokenReference
×

/sp:X509Token/wsp:Policy/sp:RequireThumbprintReference
×

/sp:X509Token/wsp:Policy/sp:WssX509V3Token10
○

/sp:X509Token/wsp:Policy/sp:WssX509Pkcs7Token10
×

/sp:X509Token/wsp:Policy/sp:WssX509PkiPathV1Token10
×

/sp:X509Token/wsp:Policy/sp:WssX509V1Token11
×

/sp:X509Token/wsp:Policy/sp:WssX509V3Token11
×

/sp:X509Token/wsp:Policy/sp:WssX509Pkcs7Token11
×

/sp:X509Token/wsp:Policy/sp:WssX509PkiPathV1Token11
×

5.4.4
Token Assertion Types
KerberosToken Assertion
/sp:KerberosToken
×

5.4.5
Token Assertion Types
SpnegoContextToken Assertion
/sp:SpnegoContextToken
×

5.4.6
Token Assertion Types
SecurityContextToken Assertion
/sp:SecurityContextToken
○

/sp:SecurityContextToken/@sp:IncludeToken
○※4

/sp:SecurityContextToken/sp:Issuer
×

/sp:SecurityContextToken/sp:IssuerName
○

/sp:SecurityContextToken/wst:Claims
×

/sp:SecurityContextToken/wsp:Policy/sp:RequireDerivedKeys
×

/sp:SecurityContextToken/wsp:Policy/sp:RequireExplicitDerivedKeys
×

/sp:SecurityContextToken/wsp:Policy/sp:RequireImpliedDerivedKeys
×

/sp:SecurityContextToken/wsp:Policy/sp:RequireExternalUriReference
×

/sp:SecurityContextToken/wsp:Policy/sp:SC13SecurityContextToken
×

5.4.7
Token Assertion Types
SecureConversationToken Assertion
/sp:SecureConversationToken
×

5.4.8
Token Assertion Types
SamlToken Assertion
/sp:SamlToken
×

5.4.9
Token Assertion Types
RelToken Assertion
/sp:RelToken
×

5.4.10
Token Assertion Types
HttpsToken Assertion
/sp:HttpsToken
×

5.4.11
Token Assertion Types
KeyValueToken Assertion
/sp:KeyValueToken
×

（凡例）

○：サポートあり

×：サポートなし

－：該当する分類または内容なし

注※1

WS-SecurityPolicy 1.3仕様の該当個所（章節項）を示します。

注※2

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipientだけをサポートしています。

注※3

sp:InitiatorTokenをネストしたsp:X509Tokenの場合は，http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipientだけをサポートしています。

sp:RecipientTokenをネストしたsp:X509Tokenの場合は，http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToInitiatorだけをサポートしています。

注※4

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/ Neverだけをサポートしています。

(3)　Security Binding Assertionsのサポート範囲

WS-SecurityPolicy 1.3仕様の中のSecurity Binding Assertionsのうち，Webサービスセキュリティ機能がサポートする範囲を次の表に示します。

表A-8　Security Binding Assertionsのサポート範囲

該当個所※
分類
アサーション
（XPath形式）
サポートの有無

7.1
AlgorithmSuite Assertion
/sp:AlgorithmSuite
○

/sp:AlgorithmSuite/wsp:Policy/sp:Basic128
○

/sp:AlgorithmSuite/wsp:Policy/sp:Basic128以外
×

7.2
Layout Assertion
/sp:Layout
○

/sp:Layout/wsp:Policy/sp:Strict
×

/sp:Layout/wsp:Policy/sp:Lax
○

/sp:Layout/wsp:Policy/sp:LaxTsFirst
×

/sp:Layout/wsp:Policy/sp:LaxTsLast
×

7.3
TransportBinding Assertion
/sp:TransportBinding
×

7.4
SymmetricBinding Assertion
/sp:SymmetricBinding
○

/sp:SymmetricBinding/wsp:Policy/sp:EncryptionToken
×

/sp:SymmetricBinding/wsp:Policy/sp:SignatureToken
×

/sp:SymmetricBinding/wsp:Policy/sp:ProtectionToken
○

/sp:SymmetricBinding/wsp:Policy/sp:AlgorithmSuite
○

/sp:SymmetricBinding/wsp:Policy/sp:Layout
○

/sp:SymmetricBinding/wsp:Policy/sp:IncludeTimestamp
×

/sp:SymmetricBinding/wsp:Policy/sp:EncryptBeforeSigning
×

/sp:SymmetricBinding/wsp:Policy/sp:EncryptSignature
×

/sp:SymmetricBinding/wsp:Policy/sp:ProtectTokens
×

/sp:SymmetricBinding/wsp:Policy/sp:OnlySignEntireHeadersAndBody
×

7.5
AsymmetricBinding Assertion
/sp:AsymmetricBinding
○

/sp:AsymmetricBinding/wsp:Policy/sp:InitiatorToken
○

/sp:AsymmetricBinding/wsp:Policy/sp:InitiatorSignatureToken
×

/sp:AsymmetricBinding/wsp:Policy/sp:InitiatorEncryptionToken
×

/sp:AsymmetricBinding/wsp:Policy/sp:RecipientToken
○

/sp:AsymmetricBinding/wsp:Policy/sp:RecipientSignatureToken
×

/sp:AsymmetricBinding/wsp:Policy/sp:RecipientEncryptionToken
×

/sp:AsymmetricBinding/wsp:Policy/sp:AlgorithmSuite
○

/sp:AsymmetricBinding/wsp:Policy/sp:Layout
○

/sp:AsymmetricBinding/wsp:Policy/sp:IncludeTimestamp
×

/sp:AsymmetricBinding/wsp:Policy/sp:EncryptBeforeSigning
×

/sp:AsymmetricBinding/wsp:Policy/sp:EncryptSignature
×

/sp:AsymmetricBinding/wsp:Policy/sp:ProtectTokens
×

/sp:AsymmetricBinding/wsp:Policy/sp:OnlySignEntireHeadersAndBody
○

（凡例）

○：サポートあり

×：サポートなし

注※

WS-SecurityPolicy 1.3仕様の該当個所（章節）を示します。

(4)　Supporting Tokensのサポート範囲

WS-SecurityPolicy 1.3仕様の中の Supporting Tokensのうち，Webサービスセキュリティ機能がサポートする範囲を次の表に示します。

表A-9　Supporting Tokensのサポート範囲

該当個所※
分類
アサーション
（XPath形式）
サポートの有無

8.1
SupportingTokens Assertion
/sp:SupportingTokens
○

/sp:SupportingTokens/wsp:Policy/sp:AlgorithmSuite
×

/sp:SupportingTokens/wsp:Policy/sp:SignedParts
×

/sp:SupportingTokens/wsp:Policy/sp:SignedElements
×

/sp:SupportingTokens/wsp:Policy/sp:EncryptedParts
×

/sp:SupportingTokens/wsp:Policy/sp:EncryptedElements
×

8.2
SignedSupportingTokens Assertion
/sp:SignedSupportingTokens
×

8.3
EndorsingSupportingTokens Assertion
/sp:EndorsingSupportingTokens
×

8.4
SignedEndorsingSupportingTokens Assertion
/sp:SignedEndorsingSupportingTokens
×

8.5
SignedEncryptedSupportingTokens Assertion
sp:SignedEncryptedSupportingTokens
×

8.6
EncryptedSupportingTokens Assertion
sp:EncryptedSupportingTokens
×

8.7
EndorsingEncryptedSupportingTokens Assertion
sp:EndorsingEncryptedSupportingTokens
×

8.8
SignedEndorsingEncryptedSupportingTokens Assertion
sp:SignedEndorsingEncryptedSupportingTokens
×

（凡例）

○：サポートあり

×：サポートなし

注※

WS-SecurityPolicy 1.3仕様の該当個所（章節）を示します。

(5)　WSS:SOAP Message Security Optionsのサポート範囲

WS-SecurityPolicy 1.3仕様の中の WSS:SOAP Message Security Optionsは，Webサービスセキュリティ機能ではサポートしていません。

表A-10　WSS:SOAP Message Security Optionsのサポート範囲

該当個所※
分類
アサーション
（XPath形式）
サポートの有無

9.1
Wss10 Assertion
/sp:Wss10
×

/sp:Wss10/wsp:Policy/sp:MustSupportRefKeyIdentifier
×

/sp:Wss10/wsp:Policy/sp:MustSupportRefIssuerSerial
×

/sp:Wss10/wsp:Policy/sp:MustSupportRefExternalURI
×

/sp:Wss10/wsp:Policy/sp:MustSupportRefEmbeddedToken
×

9.2
Wss11 Assertion
/sp:Wss11
×

/sp:Wss11/wsp:Policy/sp:MustSupportRefKeyIdentifier
×

/sp:Wss11/wsp:Policy/sp:MustSupportRefIssuerSerial
×

/sp:Wss11/wsp:Policy/sp:MustSupportRefExternalURI
×

/sp:Wss11/wsp:Policy/sp:MustSupportRefEmbeddedToken
×

/sp:Wss11/wsp:Policy/sp:MustSupportRefThumbprint
×

/sp:Wss11/wsp:Policy/sp:MustSupportRefEncryptedKey
×

/sp:Wss11/wsp:Policy/sp:RequireSignatureConfirmation
×

（凡例）

×：サポートなし

注※

WS-SecurityPolicy 1.3仕様の該当個所（章節）を示します。

(6)　WS-Trust Optionsのサポート範囲

WS-SecurityPolicy 1.3仕様の中の WS-Trust Optionsは，Webサービスセキュリティ機能ではサポートしていません。

表A-11　WS-Trust Optionsのサポート範囲

該当個所※ | 分類 | アサーション（XPath形式） | サポートの有無
10.1 | Trust13 Assertion | /sp:Trust13 | ×

（凡例）

×：サポートなし

注※

WS-SecurityPolicy 1.3仕様の該当個所（章節）を示します。

付録B　下位バージョンからの移行手順

07-60より前のバージョンからバージョン07-60以降に移行する手順について説明します。07-60より前のバージョンで作成したユーザープログラムとバージョン07-60以降で作成したユーザープログラムは，相互に接続できません。接続した場合は，例外が発生します。なお，07-60より前のバージョンで作成したユーザープログラムは，再コンパイルしないで，バージョン07-60以降で実行できます。

バージョン07-60からバージョン08-00以降にバージョンアップした場合は，移行による作業はありません。

＜この節の構成＞

(1)　サーバ側の移行手順

(2)　クライアント側がWebアプリケーションの場合の移行手順

(3)　クライアント側がコマンドラインJavaアプリケーションの場合の移行手順

(1)　サーバ側の移行手順

07-60より前のバージョンからバージョン07-60以降に移行するには，通常の実装手順に加えて，定義ファイルを編集する必要があります。

Webサービスセキュリティ機能をサーバ側で移行する手順を次の図に示します。

図B-1　サーバ側の移行手順

ここでは，定義ファイルの編集方法について説明します。定義ファイルの編集以外の手順については，「3.9.1　サーバ側の実装手順」を参照してください。

(a)　定義ファイルを編集する

07-60より前のバージョンからバージョン07-60以降に移行するには，次の2種類の定義ファイルを編集します。

機能定義ファイル（security-config.xml）

方針定義ファイル（policy-config.xml）

定義ファイルの編集手順を次に示します。

各定義ファイルのデフォルト名前空間を次のように変更します。

機能定義ファイル

http://www.hitachi.co.jp/soft/xml/cosminexus/ws/security/0760/securityconfig

方針定義ファイル

http://www.hitachi.co.jp/soft/xml/cosminexus/ws/security/0760/policyconfig

機能定義ファイルおよび方針定義ファイルのプレフィクスwsse，wsuに対応する名前空間を次のように変更します。

wsse

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd

wsu

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd

各定義ファイルについて，次に示すXML要素を変更します。

機能定義ファイル

BinarySecurityTokenConfig要素
BinarySecurityTokenConfig要素の詳細については，「表C-12　BinarySecurityTokenConfig」を参照してください。

KeyIdentifier要素
KeyIdentifier要素の詳細については，「表C-24　KeyIdentifier」を参照してください。

Password要素
Password要素の詳細については，「表C-35　Password」を参照してください。

方針定義ファイル

TokenValidation要素
TokenValidation要素の詳細については，「表C-62　TokenValidation」を参照してください。

X509TokenValidation要素
X509TokenValidationの詳細については，「表C-63　X509TokenValidation」を参照してください。

(2)　クライアント側がWebアプリケーションの場合の移行手順

07-60より前のバージョンからバージョン07-60以降に移行するには，通常の実装手順に加えて，定義ファイルを編集する必要があります。

クライアント側がWebアプリケーションの場合に，Webサービスセキュリティ機能を移行する手順を次の図に示します。

図B-2　クライアント側がWebアプリケーションの場合の移行手順

定義ファイルの編集方法については，「付録B(1)(a)　定義ファイルを編集する」を参照してください。定義ファイルの編集以外の手順については，「3.9.2　クライアント側がWebアプリケーションの場合の実装手順」を参照してください。

(3)　クライアント側がコマンドラインJavaアプリケーションの場合の移行手順

07-60より前のバージョンからバージョン07-60以降に移行するには，通常の実装手順に加えて，定義ファイルを編集する必要があります。

クライアント側がコマンドラインJavaアプリケーションの場合に，Webサービスセキュリティ機能を移行する手順を次の図に示します。

図B-3　クライアント側がコマンドラインJavaアプリケーションの場合の移行手順

定義ファイルの編集方法については，「付録B(1)(a)　定義ファイルを編集する」を参照してください。定義ファイルの編集以外の手順については，「3.9.3　クライアント側がコマンドラインJavaアプリケーションの場合の実装手順」を参照してください。

付録C　定義ファイルの項目の詳細

Webサービスセキュリティ機能を使用するには，次の二つの定義ファイルを設定します。

Webサービスセキュリティ機能定義ファイル

Webサービスセキュリティ方針定義ファイル

Webサービスセキュリティの各機能で必要な定義ファイルの項目については，「3.1　定義ファイルの設定」を参照してください。

ここでは，各定義ファイルで設定する要素の指定回数や，注意事項などの詳細を説明します。なお，各定義ファイルの要素の構成は次の図のようになっています。

図C-1　Webサービスセキュリティ機能定義ファイルの要素の構成

図C-2　Webサービスセキュリティ方針定義ファイルの要素の構成

＜この節の構成＞

付録C.1　Webサービスセキュリティ機能定義ファイルの項目

付録C.2　Webサービスセキュリティ方針定義ファイルの項目

付録C.1　Webサービスセキュリティ機能定義ファイルの項目

Webサービスセキュリティ機能定義ファイルは，XMLファイルです。ここでは，Webサービスセキュリティ機能定義ファイルの要素，および要素で指定できる属性とコンテンツ（子要素）について説明します。なお，表中のデータ型は，XML Schemaのデータ型を表しています。

＜この項の構成＞

(1)　 SecurityConfig

(2)　 BindingConfig

(3)　 KeyLocator

(4)　 KeyStore

(5)　 Certificate

(6)　 PrivateKey

(7)　 SecretKeyLocationList

(8)　 SecretKeyFile

(9)　 RequestSenderConfig

(10)　 SenderPortConfig

(11)　 RoleConfig

(12)　 BinarySecurityTokenConfig

(13)　 SignatureConfig

(14)　 CanonicalizationMethod

(15)　 CanonicalizeParam

(16)　 SignatureMethod

(17)　 SignatureTarget

(18)　 Transform

(19)　 TransformParam

(20)　 SignatureKey

(21)　 SignatureKeyInfo

(22)　 KeyReferenceConfig

(23)　 DirectReference

(24)　 KeyIdentifier

(25)　 EncryptionConfig

(26)　 ContentsEncryption

(27)　 EncryptionTarget

(28)　 EncryptionMethod

(29)　 KeyEncryption

(30)　 KeyEncryptionKey

(31)　 TimestampConfig

(32)　 Expires

(33)　 UsernameTokenConfig

(34)　 Username

(35)　 Password

(36)　 ResponseSenderConfig

(37)　 RequestReceiverConfig

(38)　 ReceiverPortConfig

(39)　 AuthenticationConfig

(40)　 UsernameTokenAuthnConfig

(41)　 AuthnMethod

(42)　 LoginContext

(43)　 ConfigurationIndex

(44)　 VerificationConfig

(45)　 VerificationKeyLocationList

(46)　 VerificationKeyStore

(47)　 DecryptionConfig

(48)　 DecryptionKeyLocationList

(49)　 DecryptionSecretKeyLocationList

(50)　 ResponseReceiverConfig

(1)　 SecurityConfig

Webサービスセキュリティ定義ファイルのルート要素です。コンテンツ（子要素）は，次の表の順番で指定する必要があります。

表C-1　SecurityConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
BindingConfig
Webサービスセキュリティの署名，暗号化機能で使用するトークンの情報を指定します。このコンテンツは署名，暗号化機能使用時は必須です。

－

0
または
1

RequestSenderConfig
リクエストメッセージ送信時の設定を指定します。省略時はリクエストメッセージ送信時にWebサービスセキュリティ機能が実行されません。

－

0
または
1

ResponseSenderConfig
レスポンスメッセージ送信時の設定を指定します。省略時はレスポンスメッセージ送信時にWebサービスセキュリティ機能が実行されません。

－

0
または
1

RequestReceiverConfig
リクエストメッセージ受信時の設定を指定します。省略時はリクエストメッセージ受信時にWebサービスセキュリティ機能が実行されません。

－

0
または1

ResponseReceiverConfig
レスポンスメッセージ受信時の設定を指定します。省略時はレスポンスメッセージ受信時にWebサービスセキュリティ機能が実行されません。

－

0
または
1

(2)　 BindingConfig

Webサービスセキュリティの各機能で共通的に使用する情報を指定します。

表C-2　BindingConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
KeyLocator
鍵の格納場所の情報を指定します。このコンテンツは署名および暗号化機能を使用する場合は必須です。

－

0
または
1

(3)　 KeyLocator

鍵の格納場所の情報を指定します。コンテンツ（子要素）は，次の表の順番で指定する必要があります。

表C-3　KeyLocator

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
KeyStore
Javaのキーストア形式の鍵の格納場所情報を指定します。このコンテンツは署名および暗号化機能を使用する場合は必須です。

－

0以上

SecretKeyLocationList
共通鍵の格納場所の情報を指定します。このコンテンツは暗号化機能を使用する場合は必須です。

－

0
または
1

(4)　 KeyStore

Javaのキーストア形式の鍵の格納場所情報を指定します。

表C-4　KeyStore

種別
要素
説明
データ型
指定
回数

属性
Id
セキュリティ定義ファイル中で一意に識別するためのID値を指定します。

ID

1

File
キーストアファイルの名称を"ラベル名+拡張子"の形式で指定します。

String

1

Type
キーストアのタイプを示す文字列を指定します。

String

1

Password
キーストアのパスワードを指定します。

String

1

コ
ン
テ
ン
ツ
Certificate
キーストア内のX.509証明書の情報を指定します。このコンテンツは，キーストア内の証明書を利用する場合は必須です。

－

0以上

PrivateKey
キーストア内の非公開鍵の情報を指定します。このコンテンツは，キーストア内の非公開鍵を利用する場合は必須です。

－

0以上

(5)　 Certificate

キーストア内の証明書の情報を指定します。コンテンツはありません。

表C-5　Certificate

種別
要素
説明
データ型
指定
回数

属性
Id
セキュリティ機能定義ファイル中で一意に識別するためのID値を指定します。

ID

1

Alias
キーストアファイル中のX.509証明書のエイリアス名を指定します。

String

1

(6)　 PrivateKey

キーストア内の非公開鍵の情報を指定します。コンテンツはありません。

表C-6　PrivateKey

種別
要素
説明
データ型
指定
回数

属性
Id
セキュリティ機能定義ファイル中で一意に識別するためのID値を指定します。

ID

1

Alias
キーストアファイル中の秘密鍵のエイリアス名を指定します。

String

1

Password
キーストアファイル中の秘密鍵のパスワードを指定します。

String

1

(7)　 SecretKeyLocationList

共通鍵の格納場所の情報を指定します。

表C-7　SecretKeyLocationList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
SecretKeyFile
共通鍵ファイルの情報を指定します。このコンテンツは暗号化機能使用時は必須です。

－

0以上

(8)　 SecretKeyFile

共通鍵ファイルの情報を指定します。コンテンツはありません。

表C-8　SecretKeyFile

種別
要素
説明
データ型
指定
回数

属性
Id
セキュリティ定義ファイル中で一意に識別するためのID値を指定します。

ID

1

Name
共通鍵作成コマンドで作成した共通鍵ファイル名称を"ラベル名+拡張子"の形式で指定します。

String

1

KeyType
共通鍵ファイル作成時に指定したアルゴリズム識別子を指定します。

String

1

KeyName
送信する鍵の識別子を指定します。

String

1

(9)　 RequestSenderConfig

リクエストメッセージ送信時の設定を指定します。

表C-9　RequestSenderConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
SenderPortConfig
送信時に，Webサービスセキュリティ機能を適用するSOAPサービスエンドポイントの情報を指定します。

－

1以上

(10)　 SenderPortConfig

送信時に，Webサービスセキュリティ機能を適用する，SOAPサービスまたはWebサービスのエンドポイントの情報を指定します。ResponseSenderConfigの下にSenderPortConfigを指定する場合は，Name属性に"*"を指定してください。

表C-10　SenderPortConfig

種別
要素
説明
データ型
指定
回数

属性
Name
Webサービスセキュリティ機能を適用するSOAPサービスまたはWebサービスのURLを指定します。ここで指定したエンドポイントへメッセージを送信する際に，このコンテンツ以下で指定するWebサービスセキュリティ機能の設定が適用されます。"*"を指定すると，エンドポイントの指定に関係なくWebサービスセキュリティ機能の設定が適用されます。

anyURI

1

コ
ン
テ
ン
ツ
RoleConfig
メッセージ送信時に適用するユーザー名，パスワード，署名，暗号化に関する情報を指定します。省略時はメッセージ送信時にWebサービスセキュリティ機能が実行されません。

－

0以上

(11)　 RoleConfig

メッセージ送信時に適用するユーザー名，パスワード，署名，暗号化に関する情報を指定します。

表C-11　RoleConfig

種別
要素
説明
データ型
指定
回数

属性
mustUnderstand
送信するSOAPメッセージヘッダのmustUnderstand属性を"true", "false"，"1"，"0"のどれかで指定します。この属性省略時は，"true"が仮定されます。"true"，"1"を指定した場合は，SOAPメッセージヘッダにmustUnderstand属性が付加されます。"false"，"0"を指定した場合は，SOAPメッセージヘッダにmustUnderstand属性は付加されません。

boolean

0
または
1

role
SOAPメッセージヘッダのrole属性（SOAP1.1でのactor属性）を指定します。

anyURI

1

Operation
SOAPサービスまたはWebサービスのサービスメソッド名を指定します。メソッドが複数ある場合は，半角スペースで区切って指定します。この要素を省略した場合は，SOAPサービスまたはWebサービスのすべてのメソッドに対して，このコンテンツ以下で指定するWebサービスセキュリティ機能の設定が適用されます。
この指定は，RequestSenderConfig以下のRoleConfigに指定した場合だけ有効となります。また，呼び出すSOAPサービスがメッセージング形態の場合は，この指定は無視されます。

NMTOKENS

0
または
1

コ
ン
テ
ン
ツ
BinarySecurityTokenConfig
SOAPメッセージに付与するバイナリセキュリティトークンの情報を指定します。省略時は，SOAPメッセージにバイナリセキュリティトークンは付与されません。

－

0以上

SignatureConfig
署名に関する情報を指定します。省略時は，SOAPメッセージに署名は付与されません。

－

0以上

EncryptionConfig
暗号化に関する情報を指定します。省略時は，SOAPメッセージが暗号化されません。

－

0以上

TimestampConfig
Timestamp要素に関する情報を指定します。省略時は，SOAPメッセージにTimestamp要素は付与されません。

－

0
または
1

UsernameTokenConfig
UsernameToken要素に関する情報を指定します。省略時は，SOAPメッセージにUsernameToken要素は付与されません。

－

0以上

(12)　 BinarySecurityTokenConfig

SOAPメッセージに付与するバイナリセキュリティトークンの情報を指定します。コンテンツはありません。

表C-12　BinarySecurityTokenConfig

種別
要素
説明
データ型
指定
回数

属性
Id
セキュリティ機能定義ファイル中で一意に識別するためのID値を指定します。

ID

1

IdRef
バイナリセキュリティトークンとして使用するリソースの位置（Id）を指定します。Certificate要素のId値を指定します。

IDREF

1

EmbedId
バイナリセキュリティトークン要素をセキュリティヘッダに埋め込む時に付加するId値を指定します。

String

1

EncodingType
セキュリティトークンを送信する際のエンコード種別を指定します。指定できる値は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"だけです。省略時は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"が仮定されます。

anyURI

0
または
1

ValueType
バイナリセキュリティトークンの種別を指定します。指定できる値は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"だけです。省略時は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"が仮定されます。

anyURI

0
または
1

(13)　 SignatureConfig

署名に関する情報を指定します。コンテンツ（子要素）は，次の表の順番で指定する必要があります。

表C-13　SignatureConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
CanonicalizationMethod
正規化アルゴリズムを指定します。

－

1

SignatureMethod
署名アルゴリズムを指定します。

－

1

SignatureTarget
署名対象を指定します。

－

1以上

SignatureKey
署名に使用する鍵の情報を指定します。

－

1

SignatureKeyInfo
署名に使用する鍵の参照情報を指定します。

－

1

(14)　 CanonicalizationMethod

正規化アルゴリズムを指定します。

表C-14　CanonicalizationMethod

種別
要素
説明
データ型
指定
回数

属性
Algorithm
正規化アルゴリズムのアルゴリズム識別子を指定します。

anyURI

1

コ
ン
テ
ン
ツ
CanonicalizeParam
正規化処理で使用するパラメタを指定します。省略時は正規化処理時にパラメタは付与されません。

－

0
または
1

(15)　 CanonicalizeParam

正規化処理で使用するパラメタを指定します。コンテンツはありません。

表C-15　CanonicalizeParam

種別
要素
説明
データ型
指定
回数

属性
InclusiveNamespaces
CanonicalizationMethodのAlgorithm属性がExclusive Canonical XMLの場合に，Exclusive XML Canonicalization Version 1.0で規定されている名前空間プレフィクスを指定します。指定方法は，対象となる名前空間プレフィクス名をスペースで区切って指定します（例 "ns1 ns2 ns3"）。CanonicalizationMethodのAlgorithm属性がExclusive Canonical XML（Exclusive Canonical XML with CommentsまたはExclusive Canonical XML omits comments）でない場合はこの指定は無視されます。

NMTOKENS

1

(16)　 SignatureMethod

署名アルゴリズムを指定します。コンテンツはありません。

表C-16　SignatureMethod

種別
要素
説明
データ型
指定
回数

属性
Algorithm
署名アルゴリズムのアルゴリズム識別子を指定します。

anyURI

1

(17)　 SignatureTarget

署名対象を指定します。属性の指定は，PartまたはTargetIdのどちらかが必須になります。

表C-17　SignatureTarget

種別
要素
説明
データ型
指定
回数

属性
Part
署名対象となるSOAPエンベロープ中のエレメントを指定します。指定できる値は"Body"だけです。

enum

0
または
1

TargetId
署名対象のId値（SOAPメッセージ内の要素にあらかじめ設定済みのwsu:Idの値）を指定します。この指定はメッセージング形態の場合だけ有効です。

String

0
または
1

コ
ン
テ
ン
ツ
Transform
トランスフォームアルゴリズムを指定します（必須）。

－

1以上

(18)　 Transform

トランスフォームアルゴリズムを指定します。

表C-18　Transform

種別
要素
説明
データ型
指定
回数

属性
Algorithm
トランスフォームアルゴリズムのアルゴリズム識別子を指定します。

anyURI

1

コ
ン
テ
ン
ツ
TransformParam
トランスフォームアルゴリズムで使用するパラメタを指定します。省略時はトランスフォーム処理時にパラメタは付与されません。

－

0
または
1

(19)　 TransformParam

トランスフォームアルゴリズムで使用するパラメタを指定します。コンテンツはありません。

表C-19　TransformParam

種別
要素
説明
データ型
指定
回数

属性
InclusiveNamespaces
TransformのAlgorithm属性がExclusive Canonical XMLの場合に，Exclusive XML Canonicalization Version 1.0で規定されている名前空間プレフィクスを指定します。指定方法は，対象となる名前空間プレフィクス名をスペースで区切って指定します（例 "ns1 ns2 ns3"）。
TransformのAlgorithm属性がExclusive Canonical XML（Exclusive Canonical XML with CommentsまたはExclusive Canonical XML omits comments）でない場合はこの指定は無視されます。

NMTOKENS

1

(20)　 SignatureKey

署名に使用する鍵の情報を指定します。コンテンツはありません。

表C-20　SignatureKey

種別
要素
説明
データ型
指定
回数

属性
IdRef
鍵の位置（Binding要素のPrivateKey要素で指定するId属性）を指定します。

IDREF

1

(21)　 SignatureKeyInfo

署名に使用する鍵の参照情報を指定します。

表C-21　SignatureKeyInfo

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
KeyReferenceConfig
署名に使用する鍵のリファレンス情報（KeyInfo要素内のSecurityTokenReference要素として設定される情報）を指定します。

－

1

(22)　 KeyReferenceConfig

署名に使用する鍵のリファレンス情報を指定します。コンテンツは，DirectReferenceまたはKeyIdentifierのどちらかを指定します。

表C-22　KeyReferenceConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
DirectReference
鍵の参照メカニズムをDirectReferenceにする場合の情報を指定します。

－

0
または
1

KeyIdentifier
鍵の参照メカニズムをKeyIdentifierにする場合の情報を指定します。

－

0
または
1

(23)　 DirectReference

鍵の参照メカニズムをDirectReferenceにする場合の情報を指定します。コンテンツはありません。URI属性は，先頭に"#"を必ず付加してください。

表C-23　DirectReference

種別
要素
説明
データ型
指定
回数

属性
URI
セキュリティヘッダに埋め込む鍵（バイナリセキュリティトークン）の位置（URI）を指定します。ここで指定した値がセキュリティヘッダ内のwsse:Reference要素のURI属性に設定されます。ここで指定する値は，BinarySecurityTokenConfig要素のEmbedIdの値を参照する値である必要があります。

anyURI

1

(24)　 KeyIdentifier

鍵の参照メカニズムをKeyIdentifierにする場合の情報を指定します。コンテンツはありません。

表C-24　KeyIdentifier

種別
要素
説明
データ型
指定
回数

属性
IdRef
鍵として使用するキーストアの非公開鍵の位置（Certificate要素のId値）を指定します。

IDREF

1

EncodingType
KeyIdentifier要素のエンコード種別を指定します。
指定できる値は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"だけです。省略時は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"が仮定されます。

anyURI

0
または
1

ValueType
KeyIdentifier要素の種別を指定します。指定できる値は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier"だけです。省略時は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier"が仮定されます。

anyURI

0
または
1

(25)　 EncryptionConfig

暗号化に関する情報を指定します。

表C-25　EncryptionConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ContentsEncryption
メッセージ内容の暗号化に関する情報を指定します。

－

1

KeyEncryption
鍵の暗号化に関する情報を指定します。EncryptionTypeが"ContentsEncryption"の場合は不要です。

－

1

(26)　 ContentsEncryption

メッセージ内容の暗号化に関する情報を指定します。

表C-26　ContentsEncryption

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
EncryptionTarget
暗号化対象を指定します。

－

1

(27)　 EncryptionTarget

暗号化対象を指定します。PartまたはTargetIdのどちらかを指定してください。PartおよびTargetIdの両方を指定した場合は，Partの指定だけが有効になります。また，TargetIdを指定する場合は，対象となるSOAPメッセージのエレメントに同じ値のwsu:Id属性が指定されている必要があります。

表C-27　EncryptionTarget

種別
要素
説明
データ型
指定
回数

属性
Part
暗号化対象となるSOAPエンベロープ中のエレメントを指定します。指定可能な値は"BodyContent"だけです。

enum

0
または
1

TargetId
暗号化対象のId値（SOAPメッセージ内の要素にあらかじめ設定済みのwsu:Idの値）を指定します。この指定はメッセージング形態のSOAPサービスの場合だけ有効です。

String

0
または
1

EmbedId
暗号化適用後のエレメントに付加するId値（wsu:Id属性として設定される）を指定します。この属性を省略した場合はId値はWebサービスセキュリティ機能独自の値を自動的に付加します。

String

0
または
1

コ
ン
テ
ン
ツ
EncryptionMethod
暗号化アルゴリズムを指定します。

－

1

(28)　 EncryptionMethod

暗号化アルゴリズムを指定します。コンテンツはありません。

表C-28　EncryptionMethod

種別
要素
説明
データ型
指定
回数

属性
Algorithm
暗号化アルゴリズムのアルゴリズム識別子を指定します。

anyURI

1

(29)　 KeyEncryption

鍵の暗号化に関する情報を指定します。

表C-29　KeyEncryption

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
EncryptionMethod
暗号化アルゴリズムを指定します。

－

1

KeyEncryptionKey
鍵の暗号化に使用する鍵の情報を指定します。

－

1

(30)　 KeyEncryptionKey

鍵の暗号化に使用する鍵の情報を指定します。コンテンツはありません。

表C-30　KeyEncryptionKey

種別
要素
説明
データ型
指定
回数

属性
IdRef
使用する鍵の位置（SecretKeyFile要素で指定するId属性）を指定します。

IDREF

1

(31)　 TimestampConfig

Timestamp要素に関する情報を指定します。

表C-31　TimestampConfig

種別
要素
説明
データ型
指定
回数

属性
EmbedId
Timestamp要素をセキュリティヘッダに埋め込む時のId値を指定します。省略時はTimestamp要素をセキュリティヘッダに埋め込む時にIdは付与されません。

String

0
または
1

Created
Timestamp要素にCreated要素を付加するかどうかを"true"，"false"，"1"，"0"のどれかで指定します。
"true"，"1"を指定した場合Created要素が付加されます。
"false"，"0"を指定した場合Created要素は付加されません。省略時は"false"が仮定されます。

boolean

0
または
1

Expires
Timestamp要素にExpires要素を付加するかどうかを"true"，"false"，"1"，"0"のどれかで指定します。
"true"，"1"を指定した場合Expires要素が付加されます。
"false"，"0"を指定した場合Expires要素は付加されません。省略時は"false"が仮定されます。

boolean

0
または
1

コ
ン
テ
ン
ツ
Expires
Expires要素に関する情報を指定します。

－

0
または
1

(32)　 Expires

Expires要素に関する情報を指定します。コンテンツはありません。

表C-32　Expires

種別
要素
説明
データ型
指定
回数

属性
Value
有効期限を設定します。現在時刻からの相対時間をミリ秒単位で指定します。指定できる範囲は1,000～2,147,483,647です。範囲外の値を指定した場合，または省略時は300,000（5分）が仮定されます。

int

0
または
1

(33)　 UsernameTokenConfig

UsernameToken要素に関する情報を指定します。

表C-33　UsernameTokenConfig

種別
要素
説明
データ型
指定
回数

属性
Id
Webサービスセキュリティ機能定義ファイル中で，UsernameTokenConfig要素を一意に識別するためのID値を指定します。

ID

1

EmbedId
UsernameToken要素をセキュリティヘッダに埋め込む時のId値を指定します。省略時はUsernameToken要素をセキュリティヘッダに埋め込む時にIdが付与されません。

String

0
または
1

コ
ン
テ
ン
ツ
Username
ユーザー名に関する情報を指定します。

－

1

Password
パスワードに関する情報を指定します。省略時はUsernameToken要素にパスワードが付与されません。

－

0
または
1

(34)　 Username

ユーザー名に関する情報を指定します。

表C-34　Username

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ユーザー名
認証に使用するユーザーID値を指定します。

String

1

(35)　 Password

パスワードに関する情報を指定します。

表C-35　Password

種別
要素
説明
データ型
指定
回数

属性
Type
パスワードの形式を指定します。指定できる値は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"（テキスト），または"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"（ダイジェスト）の2種類だけです。省略時は，"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"が仮定されます。

anyURI

0
または
1

コ
ン
テ
ン
ツ
パスワード値
認証に使用するパスワード値を指定します。

String

1

(36)　 ResponseSenderConfig

レスポンスメッセージ送信時の設定を指定します。

表C-36　ResponseSenderConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
SenderPortConfig
送信時にWebサービスセキュリティ機能を適用するSOAPサービスエンドポイントの情報を指定します。

－

1以上

(37)　 RequestReceiverConfig

リクエストメッセージ受信時の設定を指定します。

表C-37　RequestReceiverConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ReceiverPortConfig
Webサービスセキュリティ機能を適用するSOAPサービスまたはWebサービスのエンドポイントの情報を指定します。

－

1以上

(38)　 ReceiverPortConfig

受信時にWebサービスセキュリティ機能を適用するSOAPサービスまたはWebサービスのエンドポイントの情報を指定します。

表C-38　ReceiverPortConfig

種別
要素
説明
データ型
指定
回数

属性
Name
メッセージを受信するSOAPサービスまたはWebサービスのURLを指定します。

anyURI

1

My_role
Webサービスセキュリティ機能を適用するSOAPサービスまたはWebサービスのロール名をURI形式で指定します。受信したSOAPメッセージのセキュリティヘッダ中のrole属性値が，ここで指定したロール名と一致した場合に，PortTypeConfig以下に指定した動作定義に従ってWebサービスセキュリティ機能を実行します。この属性を省略した場合は，受信したSOAPメッセージのセキュリティヘッダ中のrole属性の内容（role属性がない場合も含む）にかかわらず，PortTypeConfig以下に指定した動作定義に従ってWebサービスセキュリティ機能を実行します。

anyURI

1

コ
ン
テ
ン
ツ
AuthenticationConfig
セキュリティトークンの認証に関する情報を指定します。省略時はセキュリティトークンの認証を行いません。

－

0
または
1

VerificationConfig
署名検証に関する情報を指定します。省略時は署名検証を行いません。

－

0
または
1

DecryptionConfig
復号化に関する情報を指定します。省略時は復号化を行いません。

－

0
または
1

(39)　 AuthenticationConfig

セキュリティトークンの認証に関する情報を指定します。

表C-39　AuthenticationConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
UsernameTokenAuthnConfig
UsernameTokenの認証に関する情報を指定します。省略時はUsernameTokenの認証を行いません。

－

0
または
1

(40)　 UsernameTokenAuthnConfig

UsernameTokenの認証に関する情報を指定します。LoginContextタグを省略した場合は，UsernameTokenの認証をしないで処理を続行します。

表C-40　UsernameTokenAuthnConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
AuthnMethod
認証方式に関する情報を指定します。

－

1

LoginContext
JAAS認証に関する情報を指定します。AuthnMethodに"JAASAuthn"を指定した場合，この要素は必須です。

－

0
または
1

(41)　 AuthnMethod

認証方式に関する情報を指定します。コンテンツはありません。

表C-41　AuthnMethod

種別
要素
説明
データ型
指定
回数

属性
Type
認証方式を指定します。指定できる値は"JAASAuthn"だけです。

enum

1

(42)　 LoginContext

JAAS認証に関する情報を指定します。

表C-42　LoginContext

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ConfigurationIndex
ログイン構成のインデックスを指定します。

－

1

(43)　 ConfigurationIndex

ログイン構成のインデックスを指定します。

表C-43　ConfigurationIndex

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
インデックス値
LoginContextクラスをインスタンス化する際に使用するログイン構成のインデックス（jaas.conf内のインデックス名）を指定します。

－

1

(44)　 VerificationConfig

署名検証に関する情報を指定します。

表C-44　VerificationConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
VerificationKeyLocationList
署名検証に用いる鍵に関する情報を指定します。

－

1

(45)　 VerificationKeyLocationList

署名検証に用いる鍵に関する情報を指定します。受信したセキュリティヘッダ内の署名鍵の参照形式（SecurityTokenReference要素で示されます）が"wsse:Reference"の場合，この要素のVerificationKeyStoreタグで指定された内容は無視されます。

表C-45　VerificationKeyLocationList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
VerificationKeyStore
署名検証に用いる鍵の所在に関する情報を指定します。

－

1以上

(46)　 VerificationKeyStore

署名検証に用いる鍵の所在に関する情報を指定します。コンテンツはありません。

表C-46　VerificationKeyStore

種別
要素
説明
データ型
指定
回数

属性
IdRef
使用する鍵を含むKeyStore要素のId属性を指定します。

IDREF

1

(47)　 DecryptionConfig

復号化に関する情報を指定します。

表C-47　DecryptionConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
DecryptionKeyLocationList
復号に用いる鍵の所在に関する情報を指定します。

－

1

(48)　 DecryptionKeyLocationList

復号に用いる鍵の所在に関する情報を指定します。

表C-48　DecryptionKeyLocationList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
DecryptionSecretKeyLocationList
復号に用いる鍵の所在に関する情報を指定します。

－

1以上

(49)　 DecryptionSecretKeyLocationList

復号に用いる鍵の所在に関する情報を指定します。コンテンツはありません。

表C-49　DecryptionSecretKeyLocationList

種別
要素
説明
データ型
指定
回数

属性
IdRef
使用する鍵を含むSecretKeyFile要素のId属性の値を指定します。

IDREF

1

(50)　 ResponseReceiverConfig

リクエストメッセージ受信時の設定を指定します。

表C-50　ResponseReceiverConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ReceiverPortConfig
Webサービスセキュリティ機能を適用するSOAPサービスまたはWebサービスのエンドポイントの情報を指定します。

－

1

付録C.2　Webサービスセキュリティ方針定義ファイルの項目

Webサービスセキュリティ方針定義ファイルは，XMLファイルです。ここでは，Webサービスセキュリティ方針定義ファイルの要素，および要素で指定できる属性とコンテンツ（子要素）について説明します。なお，表中のデータ型は，XML Schemaのデータ型を表しています。

＜この項の構成＞

(1)　 PolicyConfig

(2)　 GlobalConfig

(3)　 Max-Clock-Skew

(4)　 Fresh-Time-Limit

(5)　RequestReceiverConfig

(6)　 ReceiverPortConfig

(7)　 SecurityTokenConfig

(8)　UsernameTokenConfig

(9)　Nonce

(10)　Created

(11)　 BinarySecurityTokenConfig

(12)　 TokenValidation

(13)　 X509TokenValidation

(14)　AuthorityCertificateLocationList

(15)　AuthorityCertificateFile

(16)　VerificationConfig

(17)　SignatureMethodList

(18)　SignatureMethod

(19)　CanonicalizationMethodList

(20)　CanonicalizationMethod

(21)　SignatureTarget

(22)　TransformMethodList

(23)　 TransformMethod

(24)　DecryptionPolicyConfig

(25)　DecryptionTarget

(26)　DecryptionConfig

(27)　ContentsDecryption

(28)　DecryptionMethodList

(29)　DecryptionMethod

(30)　KeyDecryption

(31)　TimestampConfig

(32)　Created

(33)　Expires

(34)　ResponseReceiverConfig

(1)　 PolicyConfig

方針定義ファイルのルート要素です。

表C-51　PolicyConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
GlobalConfig
Webサービスセキュリティ方針定義で共通的に使用する規則を指定します。省略時は，GlobalConfig要素内の値はすべてデフォルト値が仮定されます。

－

0
または
1

RequestReceiverConfig
リクエストメッセージ受信時の設定を指定します。
省略した場合，リクエストメッセージ受信時の方針に従っているかどうかのチェックは実施されません。

－

0
または
1

ResponseReceiverConfig
レスポンスメッセージ受信時の設定を指定します。
省略した場合，レスポンスメッセージ受信時の方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(2)　 GlobalConfig

Webサービスセキュリティ方針定義で共通的に使用する規則を指定します。

表C-52　GlobalConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
Max-Clock-Skew
有効期限をチェックする際の時間差に関する情報を指定します。省略時はMax-Clock-Skew要素内の値はすべてデフォルト値が仮定されます。

－

0
または
1

Fresh-Time-Limit
UsernameToken要素，Timestamp要素内のCreated要素の有効期間に関するチェック情報を指定します。省略時はFresh-Time-Limit要素内の値はすべてデフォルト値が仮定されます。

－

0
または
1

(3)　 Max-Clock-Skew

有効期限をチェックする際の時間差に関する情報を指定します。コンテンツはありません。

表C-53　Max-Clock-Skew

種別
要素
説明
データ型
指定
回数

属性
Value
UsernameToken要素およびTimestamp要素の子要素であるCreated要素，またはTimestamp要素の子要素であるExpires要素に指定された値に基づいてSOAPメッセージの有効期限を確認する場合に，送信側と受信側との時間の差をどこまで許容するかを指定します。指定するときの単位はミリ秒です。
指定できる範囲は，1～2,147,483,647の間です。範囲外の値を指定した場合，または指定を省略した場合は，0ミリ秒が仮定されます。

int

1

(4)　 Fresh-Time-Limit

UsernameToken要素，およびTimestamp要素内のCreated要素の有効期間に関する情報を指定します。コンテンツはありません。

表C-54　Fresh-Time-Limit

種別
要素
説明
データ型
指定
回数

属性
Value
UsernameToken要素およびTimestamp要素の子要素であるCreated要素に指定された値を確認する場合に，送信側と受信側との時間の差をどこまで許容するかを指定します。
指定するときの単位はミリ秒です。
指定できる範囲は，1,000～2,147,483,647の間です。範囲外の値を指定した場合，または指定を省略した場合は，300,000ミリ秒が仮定されます。

int

1

(5)　RequestReceiverConfig

リクエストメッセージ受信時の設定を指定します。

表C-55　RequestReceiverConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ReceiverPortConfig
Webサービスセキュリティ方針定義を適用するSOAPサービスまたはWebサービスのエンドポイントの情報を指定します。

－

1以上

(6)　 ReceiverPortConfig

Webサービスセキュリティ方針定義を適用するSOAPサービスまたはWebサービスのエンドポイントの情報を指定します。

表C-56　ReceiverPortConfig

種別
要素
説明
データ型
指定
回数

属性
Name
Webサービスセキュリティ方針定義を適用するSOAPサービスまたはWebサービスのURLを指定します。
アスタリスク"*"を指定した場合，すべてのSOAPサービスまたはWebサービスに対してWebサービスセキュリティ方針定義が適用されます。

anyURI

1

My_role
Webサービスセキュリティ方針定義を適用するSOAPサービスまたはWebサービスのロール名を，URIで指定します。受信したSOAPメッセージのセキュリティヘッダ内で，RoleConfig要素のrole属性に指定されている値がMy_role属性で指定したロール名と一致した場合に，ReceiverPortConfig要素で指定した定義に従ってWebサービスセキュリティ方針定義が適用されます。

anyURI

1

コ
ン
テ
ン
ツ
SecurityTokenConfig
セキュリティトークンに関するチェック情報を指定します。省略時はセキュリティトークンに関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

VerificationConfig
署名に関するチェック情報を指定します。省略時は署名に関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

DecryptionPolicyConfig
復号化に関するチェック情報を指定します。省略時は復号化に関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

TimestampConfig
タイムスタンプに関するチェック情報を指定します。省略時はタイムスタンプに関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(7)　 SecurityTokenConfig

セキュリティトークンに関する方針チェックの情報を指定します。

表C-57　SecurityTokenConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
UsernameTokenConfig
UsernameToken要素に関するチェック情報を指定します。省略時はUsernameTokenに関する方針チェックは実施されません。

－

0
または
1

BinarySecurityTokenConfig
バイナリセキュリティトークンに関するチェック情報を指定します。省略時はバイナリセキュリティトークンに関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(8)　UsernameTokenConfig

UsernameToken要素に関する方針チェックの情報を指定します。

表C-58　UsernameTokenConfig

種別
要素
説明
データ型
指定
回数

属性
Required
セキュリティヘッダ内のUsernameToken要素の有無をチェックするかどうかを"true"，"false"，"1"，"0"のどれかで指定します。
"true"または"1"を指定した場合，セキュリティヘッダ内にUsernameToken要素が存在しないときは方針に違反するものと見なし，SOAP Faultをスローします。
"false"または"0"を指定した場合，セキュリティヘッダ内のUsernameToken要素の有無をチェックせず，UsernameToken要素が存在しても処理しません。

boolean

1

コ
ン
テ
ン
ツ
Nonce
Nonce要素に関するチェック情報を指定します。省略時はNonce要素に関する方針チェックは実施されません。

－

0
または
1

Created
UsernameToken要素内のCreated要素に関するチェック情報を指定します。省略時はCreated要素に関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(9)　Nonce

Nonce要素に関する方針チェックの情報を指定します。コンテンツはありません。

表C-59　Nonce

種別
要素
説明
データ型
指定
回数

属性
Required
UsernameToken要素内のNonce要素の有無をチェックするかどうかを"true"，"false"，"1"，"0"のどれかで指定します。
"true"または"1"を指定した場合，UsernameToken要素内にNonce要素が存在しないときは方針に違反するものと見なし，SOAP Faultをスローします。
"false"または"0"を指定した場合，UsernameToken要素内のNonce要素の有無をチェックせず，Nonce要素が存在しても処理しません。

boolean

1

(10)　Created

UsernameToken要素内のCreated要素に関する方針チェックの情報を指定します。

表C-60　Created

種別
要素
説明
データ型
指定
回数

属性
Required
UsernameToken要素内のCreated要素の有無をチェックするかどうかを"true"，"false"，"1"，"0"のどれかで指定します。
"true"または"1"を指定した場合，UsernameToken要素内にCreated要素が存在しないときは方針に違反するものと見なし，SOAP Faultをスローします。
"false"または"0"を指定した場合，UsernameToken要素内のCreated要素の有無をチェックせず，Created要素が存在しても処理しません。

boolean

1

(11)　 BinarySecurityTokenConfig

バイナリセキュリティトークンに関する方針チェックの情報を指定します。

表C-61　BinarySecurityTokenConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
TokenValidation
BinarySecurityToken要素の検証に関するチェック情報を指定します。

－

1

(12)　 TokenValidation

BinarySecurityToken要素の検証に関する方針チェックの情報を指定します。

表C-62　TokenValidation

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
X509TokenValidation
X.509証明書の検証に関するチェック情報を指定します。この要素が指定されている場合，受信したSOAPメッセージにX.509証明書のBinarySecurityToken要素（ValueTypeが"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"であるBinarySecurityToken要素）
が存在しない場合，方針に違反するものと見なしてSOAP Faultをスローします。
省略時はX.509証明書の検証に関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(13)　 X509TokenValidation

X.509証明書の検証に関する方針チェックの情報を指定します。

表C-63　X509TokenValidation

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
AuthorityCertificateLocationList
X.509証明書の検証に関するチェック情報を指定します。

－

1

(14)　AuthorityCertificateLocationList

X.509証明書の検証に関する方針チェックの情報を指定します。

表C-64　AuthorityCertificateLocationList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
AuthorityCertificateFile
X.509証明書の署名検証に使用する証明書ファイルの情報を指定します。

－

1以上

(15)　AuthorityCertificateFile

X.509証明書の署名検証に使用する証明書ファイルの情報を指定します。コンテンツはありません。

表C-65　AuthorityCertificateFile

種別
要素
説明
データ型
指定
回数

属性
Name
X.509証明書の署名検証に使用する証明書ファイル名を指定します。

String

1

(16)　VerificationConfig

署名に関するチェック情報を指定します。VerificationConfig要素の指定があり，署名がされていないメッセージを受信した場合は方針に違反するものと見なして，SOAP Faultをスローします。

表C-66　VerificationConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
SignatureMethodList
署名アルゴリズムに関するチェック情報を指定します。

－

1

CanonicalizationMethodList
正規化アルゴリズムに関するチェック情報を指定します。

－

1

SignatureTarget
署名個所に関するチェック情報を指定します。

－

1

(17)　SignatureMethodList

署名アルゴリズムに関するチェック情報を指定します。受信メッセージ中の署名アルゴリズムが，この要素のSignatureMethodタグで指定した，どのアルゴリズムとも一致しない場合は，方針に違反するものと見なして，SOAP Faultをスローします。

表C-67　SignatureMethodList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
SignatureMethod
署名アルゴリズムに関する情報を指定します。省略時は署名アルゴリズムに関する方針に従っているかどうかのチェックは実施されません。

－

0以上

(18)　SignatureMethod

署名アルゴリズムに関する情報を指定します。コンテンツはありません。

表C-68　SignatureMethod

種別
要素
説明
データ型
指定
回数

属性
Algorithm
受信側で処理可能な署名アルゴリズムのURIを指定します。

anyURI

1

(19)　CanonicalizationMethodList

正規化アルゴリズムに関するチェック情報を指定します。受信メッセージ中の正規化アルゴリズムが，この要素のCanonicalizationMethodタグで指定した，どのアルゴリズムとも一致しない場合は，方針に違反するものと見なして，SOAP Faultをスローします。

表C-69　CanonicalizationMethodList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
CanonicalizationMethod
正規化アルゴリズムに関する情報を指定します。省略時は正規化アルゴリズムに関する方針に従っているかどうかのチェックは実施されません。

－

0以上

(20)　CanonicalizationMethod

正規化アルゴリズムに関する情報を指定します。コンテンツはありません。

表C-70　CanonicalizationMethod

種別
要素
説明
データ型
指定
回数

属性
Algorithm
受信側で処理可能な正規化アルゴリズムのURIを指定します。

anyURI

1

(21)　SignatureTarget

署名個所に関するチェック情報を指定します。

表C-71　SignatureTarget

種別
要素
説明
データ型
指定
回数

属性
Part
署名個所となるSOAPエンベロープ中のエレメントを指定します。メッセージの署名個所がこの属性に指定した個所と異なる場合，方針に違反するものと見なして，SOAP Faultをスローします。指定できる値は"Body"だけです。

enum

1

コ
ン
テ
ン
ツ
TransformMethodList
トランスフォームアルゴリズムに関する情報を指定します。省略時はトランスフォームアルゴリズムに関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(22)　TransformMethodList

トランスフォームアルゴリズムに関する情報を指定します。受信メッセージ中のトランスフォームアルゴリズムが，この要素のTransformMethodタグで指定した，どのアルゴリズムとも一致しない場合は，方針に違反するものと見なして，SOAP Faultをスローします。

表C-72　TransformMethodList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
TransformMethod
トランスフォームアルゴリズムのアルゴリズム識別子を指定します。省略時はトランスフォームアルゴリズムに関する方針に従っているかどうかのチェックは実施されません。

anyURI

0以上

(23)　 TransformMethod

トランスフォームアルゴリズムのアルゴリズム識別子を指定します。コンテンツはありません。

表C-73　TransformMethod

種別
要素
説明
データ型
指定
回数

属性
Algorithm
受信側で処理可能なトランスフォームアルゴリズムのURIを指定します。

anyURI

1

(24)　DecryptionPolicyConfig

復号化に関するチェック情報を指定します。DecryptionConfig要素の指定があり，暗号化がされていないメッセージを受信した場合は，方針に違反するものと見なして，SOAP Faultをスローします。

表C-74　DecryptionPolicyConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
DecryptionTarget
復号化個所に関するチェック情報を指定します。

－

1

(25)　DecryptionTarget

復号化個所に関するチェック情報を指定します。

表C-75　DecryptionTarget

種別
要素
説明
データ型
指定
回数

属性
Part
復号化する個所となるSOAPエンベロープ中のエレメントを指定します。メッセージの復号化個所がこの属性に指定した個所と異なる場合は，方針に違反するものと見なして，SOAP Faultをスローします。指定できる値は"Body"だけです。

enum

1

Type
復号化する個所の暗号化タイプを指定します。指定できる値は"Content"だけです。

enum

1

コ
ン
テ
ン
ツ
DecryptionConfig
復号化に関するチェック情報を指定します。

－

1

(26)　DecryptionConfig

復号化に関するチェック情報を指定します。DecryptionConfig要素の指定があり，暗号化がされていないメッセージを受信した場合は，方針に違反するものと見なして，SOAP Faultをスローします。

表C-76　DecryptionConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ContentsDecryption
メッセージ内容の復号化に関するチェック情報を指定します。

－

1

KeyDecryption
復号に使用する鍵の復号化に関するチェック情報を指定します。EncryptionTypeが"ContentsEncryption"の場合は不要です。

－

1

(27)　ContentsDecryption

メッセージ内容の復号化に関するチェック情報を指定します。

表C-77　ContentsDecryption

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
DecryptionMethodList
復号化個所の暗号アルゴリズムに関するチェック情報を指定します。省略時は復号化個所の暗号アルゴリズムに関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(28)　DecryptionMethodList

復号化個所の暗号アルゴリズムに関するチェック情報を指定します。受信メッセージ中の暗号アルゴリズムが，この要素のDecryptionMethodタグで指定した，どのアルゴリズムとも一致しない場合は，方針に違反するものと見なして，SOAP Faultをスローします。

表C-78　DecryptionMethodList

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
DecryptionMethod
復号化に用いる暗号アルゴリズムに関する情報を指定します。省略時は復号化に用いる暗号アルゴリズムに関する方針に従っているかどうかのチェックは実施されません。

－

0以上

(29)　DecryptionMethod

復号化に用いる暗号アルゴリズムに関する情報を指定します。コンテンツはありません。

表C-79　DecryptionMethod

種別
要素
説明
データ型
指定
回数

属性
Algorithm
受信側で処理できる暗号アルゴリズムのURIを指定します。

anyURI

1

(30)　KeyDecryption

復号に使用する鍵の復号化に関するチェック情報を指定します。

表C-80　KeyDecryption

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
DecryptionMethodList
復号化個所に関するチェック情報を指定します。省略時は復号化個所に関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(31)　TimestampConfig

タイムスタンプに関するチェック情報を指定します。

表C-81　TimestampConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
Created
タイムスタンプ要素のCreated要素に関するチェック情報を指定します。省略時はCreated要素に関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

Expires
タイムスタンプ要素のExpires要素に関するチェック情報を指定します。省略時はExpires要素に関する方針に従っているかどうかのチェックは実施されません。

－

0
または
1

(32)　Created

タイムスタンプ要素のCreated要素に関するチェック情報を指定します。コンテンツはありません。

表C-82　Created

種別
要素
説明
データ型
指定
回数

属性
Required
タイムスタンプ要素内のCreated要素の有無をチェックするかどうかを"true"，"false"，"1"，"0"のどれかで指定します。
"true"または"1"を指定した場合タイムスタンプ要素内にCreated要素が存在しない場合は方針に違反するものと見なして，SOAP Faultをスローします。
"false"または"0"を指定した場合，タイムスタンプ要素内のCreated要素の有無をチェックしません。

boolean

1

(33)　Expires

タイムスタンプ要素のExpires要素に関するチェック情報を指定します。コンテンツはありません。

表C-83　Expires

種別
要素
説明
データ型
指定
回数

属性
Required
タイムスタンプ要素内のExpires要素の有無をチェックするかどうかを"true"，"false"，"1"，"0"のどれかで指定します。
"true"または"1"を指定した場合，タイムスタンプ要素内にExpires要素が存在しない場合は方針に違反するものと見なして，SOAP Faultをスローします。
"false"または"0"を指定した場合，タイムスタンプ要素内のExpires要素の有無をチェックしません。

boolean

1

(34)　ResponseReceiverConfig

レスポンスメッセージ受信時の設定を指定します。

表C-84　ResponseReceiverConfig

種別
要素
説明
データ型
指定
回数

属性
－
－

－

－

コ
ン
テ
ン
ツ
ReceiverPortConfig
Webサービスセキュリティ方針定義を適用するSOAPサービスエンドポイントの情報を指定します。

－

1以上

付録D　このマニュアルの参考情報

このマニュアルを読むに当たっての参考情報を示します。

＜この節の構成＞

付録D.1　関連マニュアル

付録D.2　このマニュアルでの表記

付録D.3　英略語

付録D.4　常用漢字以外の漢字の使用について

付録D.5　KB（キロバイト）などの単位表記について

付録D.1　関連マニュアル

アプリケーションサーバのマニュアルについて次に示します。

Cosminexus アプリケーションサーバ V8 概説（3020-3-U01）
アプリケーションサーバの概要について説明しています。

Cosminexus アプリケーションサーバ V8 リファレンス 定義編(サーバ定義)（3020-3-U15）
アプリケーションサーバを構築・運用するとき，またはアプリケーションを開発するときに，使用するファイルのうち，J2EEサーバやManagement Serverなどのサーバの定義に使用するファイルの形式について説明しています。

Cosminexus アプリケーションサーバ V8 Cosminexus XML Processor ユーザーズガイド（3020-3-U27）
Cosminexus XML Processorが提供するXMLパーサ・XSLTトランスフォーマの機能，作成方法，および使用方法について説明しています。

Cosminexus アプリケーションサーバ V8 SOAPアプリケーション開発の手引（3020-3-U30）
SOAPアプリケーション開発支援機能およびSOAP通信基盤を使用したSOAPアプリケーションの開発，実行方法について説明しています。

Cosminexus アプリケーションサーバ V8 Webサービス開発の手引（3020-3-U31）
JAX-WS 2.1仕様に対応したWebサービスの開発方法について説明しています。

Cosminexus アプリケーションサーバ V8 Cosminexus XML Security - Core ユーザーズガイド（3020-3-U33）
Cosminexus Web Services - SecurityのXML署名・暗号処理機能について説明しています。

Cosminexus アプリケーションサーバ V8 メッセージ 1 KDAL-KDCGおよびHitachi Web Server編（3020-3-U41）
アプリケーションサーバで出力されるKDALからKDCGまでのメッセージ，およびHitachi Web Serverのメッセージについて説明しています。

なお，このマニュアルでは，次のマニュアルについて，対象OSおよびバージョン番号を省略して表記しています。マニュアルの正式名称とこのマニュアルでの表記を次の表に示します。

正式名称 | このマニュアルでの表記
Cosminexus アプリケーションサーバ V8 概説 | Cosminexus アプリケーションサーバ 概説
Cosminexus アプリケーションサーバ V8 リファレンス 定義編(サーバ定義) | Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)
Cosminexus アプリケーションサーバ V8 Cosminexus XML Processor ユーザーズガイド | Cosminexus XML Processor ユーザーズガイド
Cosminexus アプリケーションサーバ V8 SOAPアプリケーション開発の手引 | Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引
Cosminexus アプリケーションサーバ V8 Webサービス開発の手引 | Cosminexus アプリケーションサーバ Webサービス開発の手引
Cosminexus アプリケーションサーバ V8 Cosminexus XML Security - Core ユーザーズガイド | Cosminexus XML Security - Core ユーザーズガイド
Cosminexus アプリケーションサーバ V8 メッセージ 1 KDAL-KDCGおよびHitachi Web Server編 | Cosminexus アプリケーションサーバ メッセージ 1

付録D.2　このマニュアルでの表記

このマニュアルで使用している表記と，対応する製品名を次に示します。

表記
製品名

IPF
Itanium(R) Processor Family

UNIX
AIX
AIX 5L V5.3
AIX V6.1

HP-UXまたはHP-UX（IPF）
HP-UX 11i V2（IPF）
HP-UX 11i V3（IPF）

Linux
Linux（x86, AMD64 & Intel EM64T）
Red Hat Enterprise Linux(R) AS 4（x86）
Red Hat Enterprise Linux(R) 5 Advanced Platform（x86）
Red Hat Enterprise Linux(R) ES 4（x86）
Red Hat Enterprise Linux(R) 5（x86）
Red Hat Enterprise Linux(R) AS 4（AMD64 & Intel EM64T）
Red Hat Enterprise Linux(R) 5 Advanced Platform（AMD/Intel 64）
Red Hat Enterprise Linux(R) ES 4（AMD64 & Intel EM64T）
Red Hat Enterprise Linux(R) 5（AMD/Intel 64）

Linux（IPF）
Red Hat Enterprise Linux(R) AS 4（IPF）
Red Hat Enterprise Linux(R) 5（Intel Itanium）
Red Hat Enterprise Linux(R) 5 Advanced Platform（Intel Itanium）

Solaris
Solaris 9（SPARC）
Solaris 10（SPARC）
Solaris 10（x64）

付録D.3　英略語

このマニュアルで使用している英略語を次に示します。

英略語 | 説明
API | Application Programming Interface
EAR | Enterprise ARchive
EJB | Enterprise Java Beans
J2SE | Java 2 Platform, Standard Edition
JAAS | Java Authentication and Authorization Service
JAR | Java ARchive
OASIS | Organization for the Advancement of Structured Information Standards
OS | Operating System
RPC | Remote Procedure Call
URI | Uniform Resource Identifier
URL | Uniform Resource Locator
W3C | World Wide Web Consortium
WAR | Web Archive
WS | Web Service
WSDL | Web Services Description Language
XML | Extensible Markup Language

付録D.4　常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

鍵（かぎ）　個所（かしょ）　必須（ひっす）　漏洩（ろうえい）

付録D.5　KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

付録E　用語解説

このマニュアルで使用している用語の意味を説明します。

（英数字）

JAAS

J2SEが提供する標準的なユーザー認証用のAPIです。JAASのAPIによるユーザー認証をJAAS認証といいます。

JAX-WS機能

Cosminexusが提供する，Webサービスを開発するための機能です。JAX-WS機能では，コマンドとAPIを使用して，WSDLやサービスエンドポイントインタフェースなどを起点にWebサービスを開発できます。

JAX-WS機能については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」を参照してください。

SOAP

分散ネットワーク環境の中でXMLベースの情報を交換するために使用する通信プロトコルの名称です。

SOAPアプリケーション

Cosminexusの既存機能であるSOAPアプリケーション開発支援機能で開発されたWebサービス用のアプリケーションです。

SOAPアプリケーションについては，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

SOAPアプリケーション開発支援機能

Cosminexusが提供する，SOAPアプリケーションを開発するための機能です。SOAPアプリケーション開発支援機能では，開発支援コマンドを使用してSOAPアプリケーションを開発できます。

SOAPアプリケーション開発支援機能については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」を参照してください。

SOAP通信基盤

Cosminexusが提供する，SOAPアプリケーションを実行し，SOAPによる通信を実現するための環境です。

SOAPヘッダ

SOAPメッセージの要素です。SOAPヘッダでは，メッセージ処理のあて先，およびメッセージ処理が必要かどうかを指定します。

SOAPボディ

SOAPメッセージの要素です。SOAPボディに送信するメッセージの内容を記述します。

SOAPメッセージ

SOAPプロトコルでオブジェクト間の送受信に使用するメッセージです。SOAPメッセージは，SOAPエンベロープ，SOAPヘッダ，およびSOAPボディという要素で構成されます。

Webサービス

Web関連の技術を利用して，ネットワークを介して提供されるサービスです。Webサービスの基礎となる技術には，SOAP，WSDL，およびUDDIなどがあります。このマニュアルでは，CosminexusのSOAPアプリケーション開発支援機能を使用して開発したプログラムとJAX-WS機能を使用して開発したプログラムを区別するために，JAX-WS機能を使用して開発したプログラムを特にWebサービスと呼ぶ場合もあります。

Webサービスセキュリティ

このマニュアルでは，WS-Security仕様に基づいた，SOAPメッセージに対するセキュリティ技術をWebサービスセキュリティと呼びます。

Webサービスセキュリティ機能

Cosminexusが提供する，Webサービスセキュリティを実現するための機能です。Webサービスセキュリティ機能は，Cosminexus Web Services - Securityが提供する定義ファイルを設定することによって，使用できます。

Webサービスセキュリティ機能定義ファイル

Cosminexusが提供するWebサービスセキュリティ機能の詳細を定義するためのXMLファイルです。Webサービスセキュリティ機能定義ファイルは，サーバとクライアントの両方に配置します。

Webサービスセキュリティ方針定義ファイル

Webサービスセキュリティ機能を使用する場合に従う方針を定義するためのXMLファイルです。Webサービスセキュリティ方針定義ファイルは，サーバとクライアントの両方に配置します。

WS-Security

OASISが規定している，Webサービスのセキュリティに関する仕様書です。WS-Securityは，XMLセキュリティの技術を利用しています。

XMLセキュリティ

このマニュアルでは，W3Cが規定しているXML署名およびXML暗号を総称してXMLセキュリティと呼びます。

（カ行）

環境設定ファイル

サーバやクライアントの実行環境に合わせて，必要な設定を変更するためのプロパティファイルです。環境設定ファイルには，キーストアファイルや証明書ファイルの格納場所などを記述します。

共通鍵

共通鍵暗号で使用する，決められた2者間だけで共有する鍵（secret key）です。共通鍵暗号では，共通鍵でデータを復号化します。共通鍵は，決められた2者が安全に管理します。

公開鍵

公開鍵暗号で使用する，データの暗号化または電子署名を検証するのための鍵です。公開鍵は，通常ネットワーク上などで公開されています。データを暗号化して送信する場合，送信者は受信者の公開鍵を使用してデータを暗号化します。また，受信した電子署名を検証する場合は，受信者は送信者の公開鍵を使用して電子署名を検証します。

コマンドラインJavaアプリケーション

コマンドラインから起動して使用するJavaアプリケーションです。

（サ行）

証明書

オープンな企業情報システム上で情報をやり取りするときに，通信相手が本人であることを証明するための電子的な情報です。暗号技術を用いることで，他人が成り済ますことができないようになっています。Webサービスセキュリティ機能では，X.509証明書を扱えます。

セキュリティトークン要素

WS-Securityで規定されている，セキュリティトークンに関する要素です。Webサービスセキュリティ機能で扱うセキュリティトークン要素は，UsernameToken要素とBinarySecurityToken要素です。

セキュリティヘッダ

SOAPヘッダに含まれるwsse:Securityという名称の要素です。セキュリティヘッダはセキュリティ要素で構成されます。

セキュリティ要素

SOAPメッセージに含まれる，セキュリティに関する要素です。このマニュアルでは，セキュリティトークン要素，署名要素，暗号化要素などを総称してセキュリティ要素と呼びます。

（タ行）

デプロイ定義ファイル

Webサービスセキュリティ機能を利用するために必要な情報を読み込む処理を定義するXMLファイルです。デプロイ定義ファイルには，サーバ用のファイルとクライアント用のファイルの2種類があります。

（ハ行）

秘密鍵

公開鍵暗号で使用する，データの復号化または電子署名を作成するのための鍵（private key）です。非公開鍵ともいいます。秘密鍵は，その所有者が安全に管理します。

暗号化されたデータを受信した場合，受信者は自分の秘密鍵を使用してデータを復号化します。また，送信するデータに電子署名を付加する場合は，送信者は自分の秘密鍵を使用し電子署名を作成します。

索引

[Ａ][Ｂ][Ｃ][Ｄ][Ｅ][Ｆ][Ｇ][Ｈ][Ｉ][Ｊ][Ｋ][Ｌ][Ｍ][Ｎ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ][Ｕ][Ｖ][Ｗ][Ｘ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ラ行]

(英字)

(Ａ)

AES-128

AES-128鍵ラッピング（128bit鍵）

AES-192

AES-192鍵ラッピング

AES-256

AES-256鍵ラッピング（256bit鍵）

Attaching Policies Using UDDI

Attaching Policies Using WSDL 1.1

AuthenticationConfig

AuthnMethod

AuthorityCertificateFile

AuthorityCertificateLocationList

(Ｂ)

base64（エンコード）

base64（変換アルゴリズム）

BinarySecurityTokenConfig〔Webサービスセキュリティ機能定義ファイル〕

BinarySecurityTokenConfig〔Webサービスセキュリティ方針定義ファイル〕

BindingConfig

(Ｃ)

Calculating Effective Policy in WSDL 1.1

Callbackオブジェクトの生成について

CanonicalizationMethod〔Webサービスセキュリティ機能定義ファイル〕

CanonicalizationMethod〔Webサービスセキュリティ方針定義ファイル〕

CanonicalizationMethodList

CanonicalizeParam

Canonical XML（コメント付き）

Canonical XML（コメントなし）

Certificate

com.cosminexus.wss.handlers.WSSClientHandler

com.cosminexus.wss.handlers.WSSServerHandler

Compact Policy Expression

Confidentiality Assertions

ConfigurationIndex

ContentEncryptedElements Assertion

ContentsDecryption

ContentsEncryption

Created〔UsernameToken要素〕

Created〔タイムスタンプ要素〕

createWSSElementProxycreatewsselementproxy

cwssbinding.xml

cwsshandler.xml

(Ｄ)

DecryptionConfig〔Webサービスセキュリティ機能定義ファイル〕

DecryptionConfig〔Webサービスセキュリティ方針定義ファイル〕

DecryptionKeyLocationList

DecryptionMethod

DecryptionMethodList

DecryptionPolicyConfig

DecryptionSecretKeyLocationList

DecryptionTarget

Diffie-Hellman Key Agreement

Diffie-Hellman Key Values

DirectReference

DSAwithSHA1

(Ｅ)

Effective Policy

EncryptedElements Assertion

EncryptedParts Assertion

EncryptionConfig

EncryptionMethod

EncryptionTarget

Endpoint Policy Subject

Enveloped Signature

Exclusive Canonical XML（コメント付き）

Exclusive Canonical XML（コメントなし）

Expires〔Webサービスセキュリティ機能定義ファイル〕

Expires〔Webサービスセキュリティ方針定義ファイル〕

External Policy Attachment

(Ｆ)

Fresh-Time-Limit

(Ｇ)

getCreated

getId

getMessage

getNonce

getPassword

getPasswordType

getRole

getUsername

getWSSElementProxy（実装クラスから生成）

getWSSElementProxy（スタブクラスから生成）

getWSSElementProxy（メッセージクラスから生成）

getWSSUsernameToken

GlobalConfig

(Ｈ)

HMAC-SHA1

(Ｉ)

Ignorable Policy Assertions

Integrity Assertions

(Ｊ)

JAAS〔用語解説〕

JAAS認証

JAASログインモジュールの実装時の注意

JAX-WS機能〔用語解説〕

(Ｋ)

KeyDecryption

KeyEncryption

KeyEncryptionKey

KeyIdentifier

KeyLocator

KeyReferenceConfig

KeyStore

(Ｌ)

LoginContext

(Ｍ)

Max-Clock-Skew

Message Policy Subject

(Ｎ)

newInstance〔WSSElementProxyBuilderクラス〕

newWSSElementProxy（実装クラスから生成）

newWSSElementProxy（スタブクラスから生成）

newWSSElementProxy（メッセージクラスから生成）

Nonce

Normal Form Policy Expression

Normalization

(Ｏ)

Operation Policy Subject

Optional Policy Assertions

(Ｐ)

Password

Policy Assertion Nesting

Policy Attachmen

Policy Attachment Mechanisms

PolicyConfig

Policy Expression

Policy Identification

Policy Inclusion

Policy Intersection

Policy Operators

Policy References

PrivateKey

Protection Assertions

(Ｒ)

ReceiverPortConfig〔Webサービスセキュリティ機能定義ファイル〕

ReceiverPortConfig〔Webサービスセキュリティ方針定義ファイル〕

removeWSSUsernameToken

RequestReceiverConfig〔Webサービスセキュリティ機能定義ファイル〕

RequestReceiverConfig〔Webサービスセキュリティ方針定義ファイル〕

RequestSenderConfig

Required Elements Assertion

RequiredElements Assertion

RequiredParts Assertion

ResponseReceiverConfig〔Webサービスセキュリティ機能定義ファイル〕

ResponseReceiverConfig〔Webサービスセキュリティ方針定義ファイル〕

ResponseSenderConfig

RoleConfig

RSA-OAEP

RSA-v1.5

RSAwithSHA1

(Ｓ)

SecretKeyFile

SecretKeyLocationList

Security Binding Assertions

SecurityConfig

SecurityTokenConfig

SenderPortConfig

Service Policy Subject

setId

setPassword

setPasswordType

setRole

setUsername

setWSSUsernameToken

SHA1

SignatureConfig

SignatureKey

SignatureKeyInfo

SignatureMethod〔Webサービスセキュリティ機能定義ファイル〕

SignatureMethod〔Webサービスセキュリティ方針定義ファイル〕

SignatureMethodList

SignatureTarget〔Webサービスセキュリティ機能定義ファイル〕

SignatureTarget〔Webサービスセキュリティ方針定義ファイル〕

SignedElements Assertion

SignedParts Assertion

SOAP〔用語解説〕

SOAPアプリケーション〔用語解説〕

SOAPアプリケーション開発支援機能〔用語解説〕

SOAP通信基盤〔用語解説〕

SOAPヘッダ〔用語解説〕

SOAPボディ〔用語解説〕

SOAPメッセージ〔用語解説〕

STR Dereference

Supporting Tokens

(Ｔ)

TimestampConfig〔Webサービスセキュリティ機能定義ファイル〕

TimestampConfig〔Webサービスセキュリティ方針定義ファイル〕

Timestamp要素を使用する場合

Token Assertions

TokenValidation

Transform

TransformMethod

TransformMethodList

TransformParam

Triple DES

TRIPLEDES鍵ラッピング

(Ｕ)

Use of IRIs in Policy Expressions

Username

UsernameTokenAuthnConfig

UsernameTokenConfig〔Webサービスセキュリティ機能定義ファイル〕

UsernameTokenConfig〔Webサービスセキュリティ方針定義ファイル〕

(Ｖ)

VerificationConfig〔Webサービスセキュリティ機能定義ファイル〕

VerificationConfig〔Webサービスセキュリティ方針定義ファイル〕

VerificationKeyLocationList

VerificationKeyStore

(Ｗ)

Webサービス〔用語解説〕

Webサービスセキュリティ〔用語解説〕

Webサービスセキュリティ機能〔用語解説〕

Webサービスセキュリティ機能定義ファイル

Webサービスセキュリティ機能定義ファイル〔用語解説〕

Webサービスセキュリティ機能定義ファイルの運用について

Webサービスセキュリティ機能の実装手順（JAX-WS機能を使用する場合）

Webサービスセキュリティ機能の実装手順（SOAPアプリケーション開発支援機能を使用する場合）

WebサービスセキュリティとSOAPとの関係

WebサービスセキュリティとXMLセキュリティとの関係

Webサービスセキュリティとは

Webサービスセキュリティハンドラ〔Webサービス側〕

Webサービスセキュリティハンドラ〔Webサービスクライアント側〕

Webサービスセキュリティ方針定義ファイル

Webサービスセキュリティ方針定義ファイル〔用語解説〕

Webサービスセキュリティ方針定義ファイルの運用について

WS-Policy 1.5仕様のサポート範囲

WS-Policy Attachment for WSDL 2.0

WS-Security〔用語解説〕

WS-SecurityPolicy 1.3仕様のサポート範囲

WS-SecurityPolicy仕様

WS-Trust Options

WSS:SOAP Message Security Options

WSS_RECV_ELEMENTPROXYプロパティ

WSS_SEND_ELEMENTPROXYプロパティ

WSSConstantsインタフェース

WSSElementProxyBuilderクラス

WSSElementProxyFactoryクラス（セキュリティ項目操作クラスの生成）

WSSElementProxyクラス（セキュリティ項目の操作）

WSSExceptionクラス（例外情報の取得）

WSSUsernameToken.PasswordTypeインタフェース（PasswordType要素の操作）

WSSUsernameTokenクラス（UsernameToken要素の操作）

(Ｘ)

X509TokenValidation

XML Decryption Transformation

XML Element Attachment

XMLセキュリティ〔用語解説〕

XPath

XPath Filter 2.0

XSLT

(ア行)

(あ)

アサーション

暗号化／復号化機能を設定する

暗号化する個所をID属性で指定する

暗号化する個所をパート名で指定する

(い)

移行手順〔クライアント側がWebアプリケーションの場合〕

移行手順〔クライアント側がコマンドラインJavaアプリケーションの場合〕

移行手順〔サーバ側の場合〕

インタフェースおよびクラスの一覧

(カ行)

(か)

開発に必要な製品

外部バインディングファイルのテンプレート

環境設定ファイル〔用語解説〕

環境設定ファイルの記述規則

環境設定ファイルの設定項目

完全性

(き)

共通鍵〔用語解説〕

共通鍵生成コマンド（CWSSCreateSecretKey）

(く)

クライアント側がWebアプリケーションの場合の実装手順

クライアント側がコマンドラインJavaアプリケーションの場合の実装手順

(こ)

公開鍵〔用語解説〕

コマンドラインJavaアプリケーション〔用語解説〕

コンストラクタ

(サ行)

(さ)

サーバ側の実装手順

サポート範囲

WS-Security仕様

XML暗号標準仕様

XML署名標準仕様

(し)

実行環境に合わせて設定を変更する

実行に必要な製品

証明書〔用語解説〕

署名付与／検証機能を設定する

署名を付与する個所をID属性で指定する

署名を付与する個所をパート名で指定する

(せ)

セキュリティ機能を組み合わせて使用する場合

セキュリティトークン要素〔用語解説〕

セキュリティヘッダ

セキュリティ要素〔用語解説〕

前提OS

開発時

実行時

前提プログラム

開発時

実行時

(タ行)

(て)

定義ファイル構文チェックコマンド（CWSSConfCheck）

定義ファイルに関する注意事項

定義ファイルの構文をチェックする

定義ファイルの設定

定義ファイルを編集する

デプロイ定義ファイル〔用語解説〕

(と)

トレースの重要度

トレースの出力先

トレースの内容

トレースを収集する

(ナ行)

(に)

認証

認証機能を設定する

(ハ行)

(は)

ハンドラチェイン設定ファイルのテンプレート

(ひ)

秘匿性

秘密鍵〔用語解説〕

(ふ)

プログラム構成例

開発時

実行時

(ほ)

ポリシー

(マ行)

(め)

メッセージに有効期限を設定する

(ラ行)

(ろ)

ログイン構成ファイルの配置について

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。
AIX 5Lは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
Java及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems,Inc.の商標または登録商標です。
JDKは，米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Red Hatは，米国およびその他の国でRed Hat, Inc. の登録商標若しくは商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
Solarisは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
すべてのSPARC商標は，米国SPARC International, Inc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。SPARC商標がついた製品は，米国Sun Microsystems, Inc. が開発したアーキテクチャに基づくものです。
Sun，Sun Microsystems，Javaは，米国Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).