XML 署名設定

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > XML と XML スキーマ > デジタル署名
 >

XML 署名設定

署名に関する設定はコンポーネント設定ダイアログボックスにて、個別のコンポーネントに対して保管することができるとともに、MFD ファイルが保存された際に全ての設定が保存されます。

dlg_xml_signature_settings

XML 署名設定ダイアログボックス

 

認証方法: 証明書とパスワード

署名は証明書またはパスワードをベースに作成することができます。使用する方法のラジオボタンを選択してください:

 

証明書 :
証明書を使用するには、証明書に秘密鍵が含まれており、アクセスすることができる証明書ストアに証明書が配置されている必要があります。署名は証明書の秘密鍵により生成されます。署名の検証を行うには、証明書(又はその公開鍵バージョン)へアクセスする必要があります。証明書の公開鍵は署名の検証を行うために使用されます。秘密鍵ならびに公開鍵の証明書を選択するには、選択ボタンをクリックして証明書を参照してください。

 

パスワード :
5 文字から16文字の長さのパスワードを入力します。このパスワードにより署名が作成され、署名の検証を行うために必要になります。ダイアログボックスの 「OK」 ボタンは、パスワードの必須要件が満たされたときに有効になります。

 

MFD ファイルにパスワードを保存 :

有効になっている場合、パスワードフィールドに入力されたパスワードが、人間には読むことのできない難読化されたかたちで MFD ファイル内部に保存されます。このパスワードを使用することで、MFD ファイルへアクセスすることができる人ならば誰でも署名を作成することができるようになります。

 

変換

XML データが変換され、その結果が署名の作成に使用されます。正規化アルゴリズムを指定することで、署名の計算を行う前に、そのアルゴリズムがファイルの XML データ(SignedInfo コンテンツ)へ適用されます。アルゴリズム間における重要な違いを以下に記します:

 

コメント付きの Canonical XML :
コメントが署名の計算に含まれる場合、XML データのコメントに変更を加えることで、検証に失敗するようになります。コメントを署名の計算に含まない場合、ドキュメントの署名が行われた後でも、コメントの追加や変更を行うことで署名が失敗することはありません

 

メモ:

「コメント付き...」は "Detached" が選択されている場合のみ選択可能になります。

 

Base64:
XML ドキュメントのルート(またはドキュメント)要素は Base64 によりエンコードされていると認識され、バイナリ形式で読み取られます。ルート要素が Base64 でない場合、要素の型により、エラーが返されるか空の要素として読み取られます。

 

 

無し :
変換は行われず、ディスクに保存されているバイナリファイルから読み取られた XML データが、署名の作成に直接使用されます。署名作成後に行われた変更により、署名の検証が失敗するようになります。
 
しかし、XML 要素間の空白スペースを取り去るチェックボックスにチェックが入っている場合、全ての空白スペースが取り除かれ、空白スペースに対する変更が無視されるようになります。
 
無し オプションと Canonicalization オプションの主な違いは、正規化により XML データストリームが作成され、属性の順序といった違いが正規化されるという点にあります。結果として Canonicalization 変換では属性の順序変更といったものも正規化され検証が成功する一方、変換を行わない場合そのような変更も検証の結果に反映されます(つまり検証は失敗します)。
 
デフォルトの正規化は署名が埋め込まれている (Enveloped) 場合だけ行われることに注意してください。そのため、署名ファイルが独立している場合 (Detached)、無し が選択されている場合、または空白スペースを取り去るチェックボックスにチェックが入っていない場合、XML データがそのまま使用されます。

 

署名の配置

署名は XML ファイルの中に配置することができるほか、独立したファイルとしても作成することができます。以下のオプションが利用可能です:

 

Enveloped:
署名要素がルート(ドキュメント)要素直下にある最後の子要素として作成されます。出力 XML を妥当とするためには、関連する XML スキーマに署名の定義を行う要素を含める必要があります。詳細は、このセクションの上部を参照ください。

 

Detached:
XML 署名を独立したファイルとして作成します。この場合、署名ファイルのファイル拡張子を指定し、(i) XML ファイルに拡張子を追加する(例: test.xml.xsig)か、(ii) 拡張子で XML ファイルの XML 拡張子を置き換える(例: test.xsig)かを選択することができます。署名ファイル内部で指定される XML ファイルへのパスを相対パスとするか、絶対パスとするかも選択することができます。

 

メモ:XML スキーマ (.xsd) ファイルならびに XBRL ファイルに対する XML 署名は外部署名ファイルとしてしか作成することができません。WSDL ファイルの場合、外部ファイルならびに WSDL ファイル内部へ署名を埋め込む (enveloped) ことができます。

 

メモ:XML 署名が独立したファイルとして作成された場合、署名ファイル内部で行われる参照により XML ファイルと署名ファイルの関連付けが行われます。そのため、署名が外部ファイルに収められている状態の検証は、XML ファイルがアクティブな状態ではなく、署名ファイルがアクティブな状態で行われる必要があります。

 

鍵情報を追加

署名が証明書をベースとしている場合、鍵情報を追加 オプションを選択することができるようになります。

 

鍵情報を追加オプションが有効になっている場合、公開鍵情報が署名内部に配置され、有効になっていない場合、鍵情報は署名に含められません。鍵情報を追加することにより、証明書(ならびにその中に含まれる公開鍵情報)は、検証処理にて必要となりません(鍵情報は既に署名内に収められているため)。

 

署名設定 - 無効の場合

署名設定が無効の場合、MapForce はデジタル署名を作成することができません。以下の場合、署名設定が無効となります:

 

選択された証明書へアクセスすることができないか、XML ドキュメントの署名に使用することができない、または
「MFD ファイルにパスワードを保存」オプションにチェックされておらず、パスワードが設定されていない

 

出力ボタンをクリックすると、以下のメッセージが表示されます

パスワードの場合:

 

コンポーネント "MarketingExpressSigned" の出力を署名するためのパスワードを指定してください

 

証明書の場合:

 

コンポーネント "MarketingExpressSigned" の出力を署名するために使用する証明書が含まれているストアを選択してください

 

 

パスワードまたは証明書が選択されていない場合、処理が停止するか、署名なしで出力が行われます。この振る舞いはコンポーネント設定ダイアログボックスの処理を中止または署名なしで処理を続けるラジオボタンにより指定することができます。

 

コマンドラインからマッピングが実行された場合、ダイアログボックスは表示されません。マッピングの処理は中止されるか、署名無しで継続されることになります。


(C) 2019 Altova GmbH