Freigeben über


Generieren einer ausgehenden MDN

Die AS2-Empfangspipelines generieren für eine eingehende Nachricht eine MDN (Message Disposition Notification)-Antwort. Dieser Vorgang wird von der EDI-Disassembler-Pipeline-Komponente in der AS2EDIReceive-Empfangspipeline (als Reaktion auf eine EDI-codierte Nachricht) bzw. der AS2-Disassembler-Pipeline-Komponente in der AS2Receive-Empfangspipeline (als Reaktion auf eine nicht-EDI-codierte Nachricht) ausgeführt.

Wann und wie eine MDN generiert wird

Eine MDN wird normalerweise auf Basis der AS2-Header in der ursprünglichen AS2-Nachricht generiert, und zwar wie folgt:

  • Eine MDN wird gesendet, wenn der Disposition-Notification-To-Header in der AS2-Nachricht vorhanden ist.

  • Wenn der Disposition-Notification-To-Header und der Receipt-Delivery-Option-Header in der Nachricht vorhanden sind, wird die MDN asynchron gesendet. Sie wird an die URL im Receipt-Delivery-Option-Header gesendet, über eine andere Verbindung als die ursprüngliche Nachricht.

  • Wenn der Disposition-Notification-To-Header in der Nachricht vorhanden ist, aber kein Receipt-Delivery-Option-Header, wird die MDN synchron über die gleiche Verbindung wie die ursprüngliche Nachricht gesendet.

    Der Disassembler erstellt den AS2-From-Header in der MDN aus dem AS2-To-Header in der empfangenen AS2-Nachricht und den AS2-To-Header in der MDN aus dem AS2-From-Header in der empfangenen AS2-Nachricht.

    mit BizTalk Server können Sie diese Einstellungen überschreiben und angeben, ob ein MDN generiert wird und wie es basierend auf den AS2-Vertragseigenschaften einer Partei generiert wird. Sie überschreiben die AS2-Headereinstellungen in der Nachricht mithilfe der Eigenschaften Vereinbarungseinstellungen für Validierung und MDN anstelle des Nachrichtenheaders auf der Registerkarte "Unidirektionale AS2-Vereinbarung" des Dialogfelds "Vereinbarungseigenschaften ". Mit dieser Eigenschaft können Sie eine MDN auch dann senden, wenn der AS2-Header keine MDN abruft. Außerdem kann mit ihrer Hilfe eine MDN asynchron gesendet werden, wenn der AS2-Header eine synchrone Verbindung vorschreibt.

    Wenn Sie die Eigenschaft Vereinbarungseinstellungen für Validierung verwenden und MDN anstelle des Nachrichtenheaders festlegen, werden die Werte im Abschnitt MDN anfordern der Seite Sender MDN-Einstellungen auf der Registerkarte unidirektionale AS2-Vereinbarung des Dialogfelds Vereinbarungseigenschaften wie folgt für die MDN verwendet:

  • Wenn die Eigenschaft MDN anfordern ausgewählt ist, wird ein MDN gesendet.

  • Wenn die Eigenschaft MDN anfordern ausgewählt ist und die Eigenschaft asynchrone MDN anfordern ausgewählt ist, wird der MDN asynchron gesendet. Der MDN wird über eine andere Verbindung als die ursprüngliche Nachricht an die URL gesendet, auf die die Receipt-Delivery-Option (URL)- Eigenschaft festgelegt ist.

  • Wenn die Eigenschaft MDN anfordern ausgewählt ist, aber die Eigenschaft Asynchrone MDN anfordern nicht ausgewählt ist, wird der MDN synchron über dieselbe Verbindung wie die ursprüngliche Nachricht gesendet.

    Wenn die Eigenschaft Vereinbarungseinstellungen für Validierung verwenden und MDN anstelle des Nachrichtenheaders festgelegt ist, wird die eigenschaft AS2-From im Nachrichtenheader zum Generieren des MDN verwendet, aber AS2-To wird aus den Vertragseigenschaften übernommen, und die Pipeline signiert den MDN gemäß der MDN-Eigenschaft Request Signed . Die AS2-Header entsprechen den Vereinbarungseigenschaften wie folgt:

Vereinbarungseigenschaft AS2-Header in der Nachricht
MDN generieren Disposition-Notification-To
MDN signieren Signed-Receipt-Protocol
Receipt-Delivery-Option Receipt-Delivery-Option

Ist eine MDN aktiviert, stuft die Empfangspipeline die folgenden Kontexteigenschaften höher:

  • EdiIntAS.DispositionMode

  • EdiIntAS.DispositionType

    Beide Kontexteigenschaften müssen höher gestuft werden, damit die MDN generiert wird. Weitere Informationen zu diesen Kontexteigenschaften finden Sie unter AS2-Kontexteigenschaften.

    Wenn die Konfigurationseinstellungen und die Header in der eingehenden Nachricht inkonsistent sind, generiert die Pipeline eine negative MDN.

    Wenn die MDN in den Vereinbarungseigenschaften angefordert wird, versucht die Empfangspipeline eine MDN zu senden, auch wenn in der AS2-Verarbeitung ein Fehler auftritt.

So verarbeitet die Empfangspipeline eine generierte MDN

Wird eine MDN nach den oben erwähnten Regeln generiert, verarbeitet die AS2EDIReceive- oder AS2Receive-Empfangspipeline die MDN wie folgt:

  • Eine Kopie der MDN (im Wire-Format) wird erstellt und in der Nichtabstreitbarkeits-Datenbank gespeichert, sofern dies in den unidirektionalen AS2-Vereinbarungseigenschaften festgelegt ist.

  • Die MIME-Verarbeitung wird ausgeführt, wobei eine digitale Signatur angewendet wird, sofern dies in den Eigenschaften der unidirektionalen AS2-Vereinbarung festgelegt ist.

  • Die MIC (Message Integrity Check, Nachrichtenintegritätsprüfung) wird für das AS2-Nachrichtenaufkommen berechnet und an das Received-content-MIC-Erweiterungsfeld der MDN angehängt. Der algorithmus, der für mic angewendet werden soll, wird durch den signed-receipt-micalg-Header der eingehenden Nachricht oder die Signaturalgorithmus-Eigenschaft auf der Seite MdN-Einstellungen des Absenders der Registerkarte "Unidirektionale Vereinbarung" des Dialogfelds Vereinbarungseigenschaften bestimmt (wenn die Eigenschaften eingehender Nachrichten überschrieben werden). Das kann entweder SHA1 oder MD5 sein. Der Wert des Algorithmus ist auch in der MDN enthalten.

  • Erstellen von Korrelationseinträgen in der Nichtabstreitbarkeits-Datenbank.

  • Es wird eine Kopie der MDN-Nachricht erstellt.

  • Wenn der MDN synchron übertragen werden soll, legt die Pipeline die EdiIntAS.IsAS2AsynchronousMDN -Eigenschaft auf False fest; wenn asynchron, legt sie die Eigenschaft auf True fest.

  • Wenn der MDN synchron übertragen werden soll, übernimmt die AS2Send-Sendepipeline, die dem bidirektionalen Empfangsport zugeordnet ist, den MDN basierend auf der EdiIntAS.IsAS2AsynchronousMDN -Eigenschaft (festgelegt auf False) und den Korrelationstoken.

    Hinweis

    Sie können auch einen Sendeport einrichten, der die ausgehende synchrone MDN abonniert. Legen Sie dazu den Sendeportfilter auf fest EdiIntAS.IsAS2MdnResponseMessage==True.

  • Wenn die MDN asynchron gesendet werden soll, leitet die Empfangspipeline die MDN an die MessageBox weiter. Sie müssen einen Sendeport einrichten, um den MDN zu abonnieren, und den Sendeportfilter auf IsAS2AsynchronousMdn==Truefestlegen. Die AS2Send-Sendepipeline übernimmt die Nachricht auf Basis dieser Eigenschaft und der Korrelationstoken. Wenn es sich bei dem Sendeport um einen dynamischen Port handelt, wird die MDN an die in der Receipt-Delivery-Notification-Zeile des Nachrichtenheaders enthaltene Adresse gesendet wird. Handelt es sich um einen statischen Sendeport, wird die Nachricht gemäß der Transport-URI-Eigenschaft des Sendeports weitergeleitet.

MDN-Generierungsregeln

Für die MDN-Generierung gelten die folgenden Regeln:

  • Wenn der Absender einer Nachricht ausdrücklich eine signierte Bestätigung anfordert, aber beim Bearbeiten des Nachrichteninhalts ein Fehler auftritt, muss der Nachrichtenempfänger dennoch eine signierte Bestätigung zurückgeben, obwohl die Transaktion selbst möglicherweise ungültig ist. Der Grund für den Fehler beim Bearbeiten des Nachrichteninhalts muss im "disposition-field" festgelegt werden.

  • Wenn die Anforderung der MDN-Empfangsbestätigung explizit eine signierte Empfangsbestätigung verlangt, aber der Empfänger der ursprünglichen Nachricht weder das angeforderte Protokollformat noch den angeforderten MIC-Algorithmus bereitstellen kann, dann kann/sollte entweder eine signierte oder eine unsignierte Bestätigung zurückgegeben werden.

  • Wenn eine Signatur nicht explizit angefordert wird, oder wenn der Anforderungsparameter für eine signierte Bestätigung von der Vereinbarung der empfangenden Partei nicht erkannt wird, dann kann die empfangende Partei eine unsignierte, signierte oder gar keine Bestätigung zurückgeben.

MIC-Generierung

Wenn eine MDN erforderlich ist, generiert der Empfänger der ursprünglichen Nachricht eine MIC (Nachrichtenintegritätsprüfung) und fügt sie der MDN hinzu. Wenn der EDI-Austausch Teil eines mehrteiligen MIME-Inhaltstyps ist, muss die MIC für den gesamten mehrteiligen Inhalt berechnet werden, einschließlich des EDI-Austauschs und der MIME-Header. Bei verschlüsselten, unsignierten Nachrichten wird die Rückgabe-MIC für den entschlüsselten MIME-Header und den Nachrichteninhalt berechnet. Bei unsignierten, unverschlüsselten Nachrichten wird die MIC nur für den Nachrichteninhalt und ohne die MIME-Header berechnet.

Weitere Informationen

Empfangen von AS2-Nachrichten in BizTalk Server