Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Studio から XML 暗号化を設定するには、次の手順に従います。
[Mule Palette (Mule パレット)] から、[Crypto (暗号化)] をプロジェクトに追加します。
手順は、「拡張機能のインストール」を参照してください。
目的の操作を選択し、コンポーネントをフローにドラッグします。
コンポーネントプロパティを開いて、既存のモジュール設定を選択するか、[Keystore (キーストア)]、[Type (種別)] (JKS、JCEKS、PKCS12)、および [Password (パスワード)] を指定して新しいモジュール設定を作成します。
署名操作で使用する対称キーまたは非対称キーの情報を追加することもできます。
モジュール設定で以前定義した [Key id (キー ID)] 値を使用して [Key selection (キー選択)] を設定するか、この操作用に新しく定義します。
[Digest Algorithm (ダイジェストアルゴリズム)]、[Canonicalization Algorithm (正規化アルゴリズム)]、[Type (種別)]、および [Element path (要素のパス)] を選択します。
この例では、後で暗号化に使用される対称キーを格納するキーストアを設定します。
<crypto:jce-config name="symmetricConfig" keystore="secret.jks" password="mule1234" type="JCEKS">
<crypto:jce-key-infos>
<crypto:jce-symmetric-key-info keyId="mySymKey" alias="aes128test" password="mule1234"/>
</crypto:jce-key-infos>
</crypto:jce-config>
次の例では、XML encrypt 操作を使用して XML ドキュメントの特定の要素を暗号化します。
<crypto:xml-encrypt config-ref="symmetricConfig" keyId="mySymKey" algorithm="AES_CBC" elementPath="//song"/>
elementPath
は、暗号化する要素を識別する XPath 式です。
ニーズに応じて、対称キーまたは非対称キーを使用して XML ドキュメントを暗号化できます。
<crypto:jce-config name="jceConfig" keystore="keystore.jks" password="mule1234">
<crypto:jce-key-infos>
<crypto:jce-symmetric-key-info keyId="mySymKey" alias="aes128test" password="mule1234"/>
<crypto:jce-asymmetric-key-info keyId="myAsymKey" alias="test1" password="test1234"/>
</crypto:jce-key-infos>
</crypto:jce-config>
次の例では、XML decrypt 操作 (crypto:xml-decrypt
) を使用して XML ドキュメントを復号化します。この操作では、参照されるキーストアに保存されている非対称キーを使用します。
<crypto:xml-decrypt config-ref="jceConfig" keyId="myAsymKey"/>
ニーズに応じて、対称キーまたは非対称キーを使用して復号化できます。
<crypto:jce-config name="asymmetricConfig" keystore="keystore.jks" password="mule1234">
<crypto:jce-key-infos>
<crypto:jce-asymmetric-key-info keyId="myAsymKey" alias="test1" password="test1234"/>
</crypto:jce-key-infos>
</crypto:jce-config>
次の例では、非対称キーを使用して XML ドキュメントに署名します (XML エンベロープを作成し、署名されるコンテンツ内に署名を挿入する)。
<crypto:xml-sign config-ref="asymmetricConfig" keyId="myAsymKey" type="ENVELOPING" digestAlgorithm="SHA256" elementPath="/PurchaseOrder/Buyer"/>
次の例では、XML ドキュメントの要素に基づいて、分離された XML 署名が作成されます。分離された署名は、署名されるコンテンツに挿入されずに個別の XML 要素として返されます。
<crypto:xml-sign config-ref="asymmetricConfig" keyId="myAsymKey" type="DETACHED" digestAlgorithm="SHA256" elementPath="/PurchaseOrder/Buyer"/>
<crypto:jce-config name="asymmetricConfig" keystore="keystore.jks" password="mule1234">
<crypto:jce-key-infos>
<crypto:jce-asymmetric-key-info keyId="myAsymKey" alias="test1" password="test1234"/>
</crypto:jce-key-infos>
</crypto:jce-config>
次の例では、非対称キーを使用して、elementPath
XPath 式で指定された XML 要素の署名を検証します。
<crypto:xml-validate config-ref="asymmetricConfig" keyId="myAsymKey" elementPath="/PurchaseOrder/Buyer"/>
ドキュメントに複数の署名が含まれる場合、elementPath
を設定して、検証する署名を選択します。XPath 式を使用して署名済み要素を指定して、その要素の署名を検証します。
カスタム名前空間内の XML 要素を署名または検証するには、XPath 関数 ( namespace-uri および local-name) を使用して名前空間を指定します。
たとえば、次のドキュメントについて考えます。
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/">
<FirstElement>
<!-- Some content -->
</FirstElement>
<SecondElement>
<!-- Additional content -->
</SecondElement>
</soap:Envelope>
soap:Envelope
内の FirstElement
のコンテンツを対象設定するには、xmlns:soap
名前空間を指定します。xmlns:soap
の XML スキーマは http://www.w3.org/2003/05/soap-envelope/
で定義されています。
次の例は、FirstElement
を署名するように設定された xml-sign
操作を示しています。
<crypto:xml-sign
config-ref="asymmetricConfig"
keyId="myAsymKey"
type="DETACHED"
digestAlgorithm="SHA256"
elementPath="/*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope/' and local-name()='Envelope']/FirstElement"/>
elementPath
式は xmlns:soap
名前空間を示します。
XML ドキュメントや要素を署名または暗号化するための Java キーストアおよびインラインキーの JCE 設定。
名前 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Name (名前) |
String (文字列) |
この設定の名前。コネクタはこの名前の設定を参照します。 |
x |
|
Keystore (キーストア) |
String (文字列) |
キーストアファイルへのパス。 |
|
|
Type (種別) |
Enumeration (列挙)。次のいずれかになります。
|
キーストアの種別。 |
|
|
Password (パスワード) |
String (文字列) |
キーストアのロックを解除するパスワード。 |
|
|
Jce Key Infos (JCE キー情報) |
Array (配列)。次のいずれかになります。 |
対象となるキーのリスト。これらの参照には内部 ID が使用されます。 |
|
|
Expiration Policy (有効期限ポリシー) |
動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、対象になった瞬間にプラットフォームでインスタンスの有効期限が切れるという意味ではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。 |
|
<crypto:xml-decrypt>
XML ドキュメントを復号化します。
名前 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Configuration (設定) |
String (文字列) |
使用する設定の名前。 |
x |
|
Content (コンテンツ) |
Binary (バイナリ) |
復号化するドキュメント |
|
|
Streaming Strategy (ストリーミング戦略) |
|
反復可能ストリームを使用すべきかどうか、およびその動作を設定します。 |
|
|
Key Id (キー ID) |
String (文字列) |
JCE 設定で定義されるキー ID。 |
|
|
Jce Key Info (JCE キー情報) |
インラインキー定義。 |
|
||
Target Variable (対象変数) |
String (文字列) |
操作の出力が格納される変数の名前 |
|
|
Target Value (対象値) |
String (文字列) |
操作の出力に対して評価される式。その式の結果は対象変数に保存されます。 |
|
|
<crypto:xml-encrypt>
XML ドキュメントを暗号化します。
名前 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Configuration (設定) |
String (文字列) |
使用する設定の名前。 |
x |
|
Content (コンテンツ) |
Binary (バイナリ) |
暗号化するドキュメント |
|
|
Algorithm (アルゴリズム) |
Enumeration (列挙)。次のいずれかになります。
|
暗号化のアルゴリズム |
|
|
Element Path (要素のパス) |
String (文字列) |
暗号化する要素へのパス。空の場合、ドキュメント全体が対象になります。 |
|
|
Streaming Strategy (ストリーミング戦略) |
|
反復可能ストリームを使用すべきかどうか、およびその動作を設定します。 |
|
|
Key Id (キー ID) |
String (文字列) |
JCE 設定で定義されるキー ID。 |
|
|
Jce Key Info (JCE キー情報) |
インラインキー定義。 |
|
||
Target Variable (対象変数) |
String (文字列) |
操作の出力が格納される変数の名前 |
|
|
Target Value (対象値) |
String (文字列) |
操作の出力に対して評価される式。その式の結果は対象変数に保存されます。 |
|
|
<crypto:xml-sign>
XML ドキュメントに署名します。
名前 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Configuration (設定) |
String (文字列) |
使用する設定の名前。 |
x |
|
Content (コンテンツ) |
Binary (バイナリ) |
署名する XML ドキュメント |
|
|
Digest Algorithm (ダイジェストアルゴリズム) |
Enumeration (列挙)。次のいずれかになります。
|
署名のハッシュアルゴリズム |
|
|
Canonicalization Algorithm (正規化アルゴリズム) |
Enumeration (列挙)。次のいずれかになります。
|
空白と名前空間の統合の正規化方法 |
|
|
Type (種別) |
Enumeration (列挙)。次のいずれかになります。
|
作成する署名の種別 |
|
|
Element Path (要素のパス) |
String (文字列) |
署名する要素に解決される明確な XPath 式 (内部的に分離された署名の場合) |
|
|
Streaming Strategy (ストリーミング戦略) |
|
反復可能ストリームを使用すべきかどうか、およびその動作を設定します。 |
|
|
Key Id (キー ID) |
String (文字列) |
JCE 設定で定義されるキー ID。 |
|
|
Jce Key Info (JCE キー情報) |
インラインキー定義。 |
|
||
Target Variable (対象変数) |
String (文字列) |
操作の出力が格納される変数の名前 |
|
|
Target Value (対象値) |
String (文字列) |
操作の出力に対して評価される式。その式の結果は対象変数に保存されます。 |
|
|
<crypto:xml-validate>
署名済み XML ドキュメントを検証します。
名前 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Configuration (設定) |
String (文字列) |
使用する設定の名前。 |
x |
|
Content (コンテンツ) |
Binary (バイナリ) |
検証するドキュメント (署名を含む) を指定します。 |
|
|
Element Path (要素のパス) |
String (文字列) |
署名済み要素に解決される明確な XPath 式 (内部的に分離された署名の場合)。 |
|
|
Use inline certificate if present (インライン証明書を使用 (存在する場合)) |
Boolean (ブール) |
Specify whether or not to validate the signature against a certificate contained in the |
|
|
Key Id (キー ID) |
String (文字列) |
JCE 設定で定義されるキー ID を指定します。 |
|
|
Jce Key Info (JCE キー情報) |
インラインキー定義。 |
|
項目 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Max Idle Time (最大アイドル時間) |
Number (数値) |
有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値 |
||
Time Unit (時間単位) |
Enumeration (列挙)。次のいずれかになります。
|
maxIdleTime 属性の時間単位 |
項目 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Initial Buffer Size (初期バッファサイズ) |
Number (数値) |
これは、ストリームをコンシュームし、ストリームへのランダムアクセスを提供する目的で割り当てられるメモリの容量です。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、 |
||
Buffer Size Increment (バッファサイズ増分) |
Number (数値) |
バッファサイズが初期サイズを超えた場合に、どれくらい拡張されるか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、 |
||
Max Buffer Size (最大バッファサイズ) |
Number (数値) |
使用するメモリの最大量。これを超えると、 |
||
Buffer Unit (バッファ単位) |
Enumeration (列挙)。次のいずれかになります。
|
これらのすべての属性の単位 |
項目 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
Max In Memory Size (最大メモリ内サイズ) |
Number (数値) |
データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクへのコンテンツのバッファが開始されます。 |
||
Buffer Unit (バッファ単位) |
Enumeration (列挙)。次のいずれかになります。
|
maxInMemorySize で表される単位 |