次の方法で共有


送信 MDN の生成

AS2 受信パイプラインは、受信メッセージに対する MDN (Message Disposition Notification) 応答を生成します。 これは、AS2EDIReceive 受信パイプラインの EDI 逆アセンブラー パイプライン コンポーネント (EDI エンコード メッセージに応答する場合) または AS2Receive 受信パイプラインの AS2 逆アセンブラー パイプライン コンポーネント (EDI でエンコードされていないメッセージに応答する場合) によって行われます。

MDN の生成のタイミングと方法

MDN は、通常、元の AS2 メッセージの AS2 ヘッダーに基づいて次のように生成されます。

  • MDN は、AS2 メッセージに Disposition-Notification-To ヘッダーがある場合に送信されます。

  • メッセージに Disposition-Notification-To ヘッダーと Receipt-Delivery-Option ヘッダーがある場合、MDN は非同期に送信されます。 このとき、元のメッセージとは別の接続を経由して、Receipt-Delivery-Option ヘッダーにある URL に送信されます。

  • メッセージに Disposition-Notification-To ヘッダーがあって Receipt-Delivery-Option ヘッダーがない場合、MDN は元のメッセージと同じ接続を経由して同期的に送信されます。

    逆アセンブラーは、受信した AS2 メッセージの AS2-To ヘッダーから MDN の AS2-From ヘッダーを作成し、受信した AS2 メッセージの AS2-From ヘッダーから MDN の AS2-To ヘッダーを作成します。

    BizTalk Serverでは、MDN を生成するかどうか、およびパーティの AS2 契約プロパティに基づいて生成する方法を指定して、これらの設定をオーバーライドできます。 メッセージの AS2 ヘッダー設定は、[契約のプロパティ] ダイアログ ボックスの [一方向 AS2 アグリーメント] タブの [メッセージ ヘッダー] プロパティではなく、[検証にアグリーメント設定を使用する] プロパティと MDN を使用してオーバーライドします。 このプロパティを使用すると、AS2 ヘッダーで要求されていない場合に MDN を送信することも、AS2 ヘッダーで同期接続が指定されている場合に MDN を非同期に送信することもできます。

    メッセージ ヘッダー プロパティではなく検証と MDN の使用契約設定を設定した場合、[契約のプロパティ] ダイアログ ボックスの [一方向の AS2 契約] タブにある [送信者 MDN 設定] ページの [MDN の要求] セクションの値は、次のように MDN に使用されます。

  • [MDN の要求] プロパティが選択されている場合、 MDN が送信されます。

  • [ MDN の要求 ] プロパティが選択され、[ 非同期 MDN の要求 ] プロパティが選択されている場合、MDN は非同期的に送信されます。 MDN は、元のメッセージとは異なる接続を介して 、Receipt-Delivery-Option (URL) プロパティが設定されている URL に送信されます。

  • [REQUEST MDN]\(MDN の要求\) プロパティが選択されているが、[Request async MDN]\(非同期 MDN の要求\) プロパティが選択されていない場合、MDN は元のメッセージと同じ接続を介して同期的に送信されます。

    メッセージ ヘッダー プロパティではなく検証と MDN の使用契約設定が設定されている場合、メッセージ ヘッダーの AS2-From プロパティは MDN の生成に使用されますが、AS2-To は契約プロパティから取得され、パイプラインは署名された MDN 要求プロパティに従って MDN に署名します。 AS2 ヘッダーとアグリーメントのプロパティの対応は次のとおりです。

アグリーメントのプロパティ メッセージの AS2 ヘッダー
MDN を生成する Disposition-Notification-To
MDN に署名を付ける Signed-Receipt-Protocol
Receipt-Delivery-Option Receipt-Delivery-Option

MDN が有効にされている場合、受信パイプラインは次のコンテキスト プロパティを昇格させます。

  • EdiIntAS.DispositionMode

  • EdiIntAS.DispositionType

    MDN を生成するには、これらのコンテキスト プロパティを両方とも昇格させる必要があります。 これらのコンテキスト プロパティの詳細については、「 AS2 コンテキスト プロパティ」を参照してください。

    受信メッセージの構成設定とヘッダーの間に一貫性がない場合、パイプラインは否定 MDN を生成します。

    アグリーメントのプロパティで MDN が要求されている場合、受信パイプラインは AS2 の処理中にエラーが発生しても MDN の送信を試みます。

生成された MDN の受信パイプラインでの処理方法

上記のルールに従って MDN が生成されている場合、AS2EDIReceive 受信パイプラインまたは AS2Receive 受信パイプラインは次のように MDN を処理します。

  • MDN (ワイヤ形式) のコピーを作成し、否認不可データベースに保存します (一方向の AS2 アグリーメント プロパティで有効になっている場合)。

  • デジタル署名の適用を含む MIME 処理を実行します (一方向の AS2 アグリーメント プロパティで有効になっている場合)。

  • AS2 メッセージ ペイロードの MIC (メッセージ整合性チェック) を計算し、その結果を MDN の Received-content-MIC 拡張フィールドに追加します。 MIC に適用されるアルゴリズムは、受信メッセージの signed-receipt-micalg ヘッダー、または [契約のプロパティ] ダイアログ ボックスの [一方向アグリーメント] タブの [送信者 MDN 設定] ページの [署名アルゴリズム] プロパティ (受信メッセージのプロパティがオーバーライドされた場合) によって決定されます。 SHA1 または MD5 のどちらかが適用されます。 このアルゴリズムの値も、MDN に含まれます。

  • 否認不可データベースに関連付けのエントリを作成します。

  • MDN メッセージのコピーを作成します。

  • MDN を同期的に送信する場合、パイプラインは プロパティを EdiIntAS.IsAS2AsynchronousMDN False に設定します。非同期の場合は、 プロパティを True に設定します。

  • MDN を同期的に送信する場合、双方向受信ポートに関連付けられている AS2Send 送信パイプラインは、プロパティ (False に設定) と相関トークンに基づいて EdiIntAS.IsAS2AsynchronousMDN MDN を取得します。

    Note

    送信同期 MDN をサブスクライブする送信ポートを設定することもできます。 これを行うには、送信ポート フィルターを に EdiIntAS.IsAS2MdnResponseMessage==True設定します。

  • MDN を非同期に送信する場合、受信パイプラインは MDN をメッセージ ボックスにルーティングします。 MDN をサブスクライブするように送信ポートを設定し、送信ポート フィルターを に設定する IsAS2AsynchronousMdn==True必要があります。 AS2Send 送信パイプラインは、そのプロパティに基づいてメッセージを取得し、関連付けトークンも取得します。 動的送信ポートの場合、送信ポートは、メッセージのヘッダーにある Receipt-Delivery-Notification 行のアドレスに基づいて MDN をルーティングします。 静的送信ポートの場合、送信ポートは、送信ポートの "URI を転送する" プロパティに基づいてメッセージをルーティングします。

MDN の生成ルール

MDN の生成には、次のルールが適用されます。

  • メッセージの送信者が確認メッセージ (署名付き) を要求しているが、メッセージのコンテンツの処理中にエラーが発生した場合、メッセージの受信者は、トランザクション自体が無効になっても確認メッセージ (署名付き) を返す必要があります。 メッセージのコンテンツの処理中に発生したエラーの理由が、"disposition-field" に設定される必要があります。

  • MDN 確認メッセージの要求で署名付きの確認メッセージが明示的に指定されているが、元のメッセージの受信者が要求されたプロトコル形式または要求された MIC アルゴリズムをサポートしていない場合、受信者は署名付きまたは署名なしの確認メッセージを返す必要があります。

  • 署名が明示的に要求されていない場合や、署名付きの確認メッセージの要求パラメーターが受信側パーティのアグリーメントで認識されない場合、受信側パーティは、署名付きまたは署名なしの確認メッセージを返すか、確認メッセージを返しません。

MIC の生成

MDN が要求されている場合、元のメッセージの受信者は MIC (メッセージ整合性チェック) を生成して MDN に追加します。 EDI インターチェンジがマルチパート MIME コンテンツ タイプの一部である場合、EDI インターチェンジと MIME ヘッダーを含め、マルチパート コンテンツ全体にわたって MIC を計算する必要があります。 暗号化された署名されていないメッセージでは、返される MIC は、解読された MIME ヘッダーとコンテンツに基づいて計算されます。 署名も暗号化もされていないメッセージでは、MIC は、MIME ヘッダーを含まないメッセージのコンテンツに基づいて計算される必要があります。

参照

BizTalk Server が AS2 メッセージを受信する方法