MDN メッセージ
Message Disposition Notification (MDN) は、AS2 メッセージに対する応答として送信される受信確認です。 MDN を有効にすると、MDN の受信と検証が完了するまで、AS2 による送信は完了しません。 BizTalk Server では、AS2 メッセージの処理でエラーが発生した場合でも、メッセージ処理の状態を伝えるため、常に MDN の返信を試みます。
MDN により、以下のことを検証できます。
元のメッセージが受信側によって正常に受信されたこと。 元のメッセージの送信者は、送信メッセージの MessageID と、受信者が MDN に格納した original-message-id フィールドを比較することによって、これを検証します。
交換されたデータの整合性が、受信側パートナーによって検証されたこと。 元のメッセージの送信者は、送信メッセージ ペイロードから算出した MIC と、受信者が受信メッセージ ペイロードを基に算出し、MDN の Received-content-MIC フィールドに格納した MIC を比較することによって、これを検証します (署名付き MDN の場合)。
領収書の否認が認めらないもの。 送信者は、受信者の公開キーを使用して署名付きの MDN を検証し、MDN 内の返された MIC の値が、否認不可データベースに格納された元のメッセージ ペイロードの MIC と同じであることを確認することによって、これを検証します。
Note
同期 MDN は、HTTP 応答 ("200 OK" など) としても機能します。
Note
MDN の受信側処理の詳細については、「 受信 MDN の処理」を参照してください。 MDN の送信側処理の詳細については、「 送信 MDN の送信」を参照してください。
MDN の生成に使用されるプロパティ
AS2Receive 受信パイプラインでは、[契約のプロパティ] ダイアログ ボックスの [一方向アグリーメント] タブ で [検証にアグリーメント設定を使用する] プロパティと [メッセージ ヘッダーの代わりに MDN を使用 する] プロパティが選択されている場合、パーティの AS2 契約 プロパティ を使用して MDN が生成されます。 この場合、MDN の生成時にメッセージ ヘッダーの AS2-From プロパティが使用されますが、他のプロパティはパーティの AS2 アグリーメント設定から取得されます。
AS2 プロパティをオーバーライドするオプションが選択されていない場合や、パーティの AS2 プロパティが使用可能な場合は、受信パイプラインは受信メッセージの AS2 ヘッダー タグを使用して MDN を生成します。
MDN には署名を付加できますが、MDN を暗号化または圧縮することはできません。
MDN のコンテキスト プロパティ
MDN メッセージの処理に使用されるコンテキスト プロパティには、昇格できるプロパティや非公開のプロパティが含まれますが、これらのプロパティは中断されたメッセージや追跡メッセージで表示できます。 これらのコンテキスト プロパティの一覧については、「 AS2 コンテキスト プロパティ」を参照してください。
MDN を生成するには、DispositionMode および DispositionType の両コンテキスト プロパティを昇格させる必要があります。 AS2 または EDI ペイロードでエラーが発生すると、DispositionType プロパティによってエラーが通知されます。 このプロパティは、([サービスの詳細] ダイアログ ボックスを使用して) 表示される [メッセージの詳細] ダイアログ ボックスで、BizTalk Server管理コンソールの [グループ ハブ] ページの [中断されたサービス インスタンス] から確認できます。 ヘッダーでエラーが発生すると、BizTalk Server は DispositionType プロパティによってエラーを通知し、MDN の送信を試みますが、エラーによっては MDN を送信できない場合があります。
MDN のヘッダー
MDN には次のヘッダーが含まれます。
HTTP/AS2 ヘッダー。 詳細については、「 AS2 メッセージ」を参照してください。
転送レイヤー。 これには、Content-Type ヘッダー ("signed multipart message" を含む)、MIC のアルゴリズム、署名の書式設定プロトコル、および最も外側のマルチパート境界サブヘッダーが含まれます。
最初の部分。 マルチパートの署名付きメッセージの第 1 部は、添付された MDN です。 これは人間が判読できます。
2 番目の部分。 マルチパートの署名付きメッセージの第 2 部は、デジタル署名、元のメッセージへの参照、配置の種類と状態、および MIC の値で構成されます。 これはコンピューターによる処理が可能な形式です。
AS2-From ヘッダー、AS2-To ヘッダー、および MessageID コンテキスト プロパティは、MDN を応答対象の AS2 メッセージに関連付けるために使用されます。 MDN の Original-Message-ID ヘッダーは、MDN の応答対象である AS2 メッセージの Message-ID ヘッダーから取得されます。
MIC
メッセージ整合性チェック (MIC) は、MDN が元の送信メッセージ ペイロードに関連付けられていることを検証するために使用されます。 MIC ダイジェストは、マルチパートの署名付き MDN メッセージの第 2 部にある Received-Content-MIC 拡張フィールドに格納されます。
MDN を有効にすると、AS2 送信パイプラインは、送信メッセージの処理時にメッセージ ペイロードから MICHashValue を計算します。 送信パイプラインは、このハッシュ値を BizTalkMsgBoxDb データベースの EdiInt_Mic テーブルに保存します。 AS2 メッセージの追跡はこのテーブルで行われ、AS2From、AS2To、および MessageID の各値と、テーブル内の MICHashValue 列によって一意に識別されます。 メッセージの受信者は、メッセージ ペイロードの処理時に MIC ハッシュ値を計算し、返信する MDN にそのハッシュ値を格納します。 元のメッセージの送信者は、受信した MDN 内の MIC ハッシュ値と、保存されているハッシュ値を比較します。 両者が一致すると、元のメッセージの送信者は MDN を廃棄し、EdiInt_Mic テーブル内のエントリを削除します。これで送信が完了します。
MIC は base64 でエンコードされます。 MIC に適用されるアルゴリズムは、SHA1 または MD5 です。 これは、[契約のプロパティ] ダイアログ ボックスの [一方向アグリーメント] タブの [送信者 MDN 設定] ページの [署名アルゴリズム] ドロップダウン ([署名済み MDN の要求] プロパティがオンの場合は有効) から決定されます。 また、元のメッセージの Signed-Receipt-MICalg AS2 ヘッダーからも決定されます。