AS2手順とは、
「AS2手順」は、国際的なインターネット標準化団体のIETFが策定した国際標準の通信手順。国内で通信を行うものはそこまで多くなく、海外とのやり取りが多い印象。
AS2手順の勘所
AS2手順では多くの設定項目があり、それぞれに適切なパラメータ値を設定しないと通信できない。
AS2手順でどのような内容を記載すればいいかはあまり書いているものが多いように見えないので、知識としてまとめてみる。
そもそもAS2手順は?
AS2手順は、プッシュ型といわれるもので、相手にデータを送り付けるタイプである。全銀手順や、JX手順のようにデータを蓄積して相手から取りに来てもらうことができない。
そのため、逐一送り付ける(発呼送信)か、受信するか(着呼受信)しかできないことは覚えていてよいだろう
どう自分と相手を識別するか
データ送信するなら、接続先URIとしてURIを指定するのは当然として(受信するだけならURIは不要)、同じURIを指定されることがある。
これは同じシステム上に異なる定義がのっかっている場合によくあることだ。
例えば、WEBでも、接続しているURLは同じだが使用するアカウントが異なれば、システムは異なるアカウントをして識別できる。
自分と相手を識別するものとして、当方識別子、相手識別子がある。
これが、相手がどれかを特定する識別子として働き、同じURIを指定されたとしても別の設定として認識できるようになる。
また、経験上、設定値として当方識別子と相手識別子は異なるものを設定しておいたほうがよいだろう。
セキュリティの担保
AS2通信では主に2つの証明書を用いて通信を行う
AS2通信における署名と、暗号化である。
署名の証明書と暗号化の証明書での役割が異なるため、異なる証明書を指定することができる。(一方で正しい証明書を設定できないと正しい設定とするのにかなり時間を要する)
署名の証明書
署名の証明書は、AS2メッセージを送受信するときに使用する。
AS2メッセージを送信するときに暗号化するため秘密鍵が必要である。
したがって秘密鍵を含んだ証明書を指定しなればならない。
また、受信時は、暗号化されたメッセージを複合するために、暗号化に使用された証明書の公開鍵を設定しないといけない。
暗号化の証明書
暗号化の証明書はAS2メッセージを暗号化する際に使用する。
暗号化する際に使用する証明書と、署名の証明書は同じでもよいし、異なるものでもよい。
暗号化する際は、署名の証明書同様、秘密鍵、公開鍵の設定は必須である。
各種設定値
取引相手ごとにどのような設定をするかを決めることができる。
具体的には、
- メッセージは暗号化するのか、しないのか。
- メッセージは署名付きとするのか、しないのか。
- MDN(AS2 交換で返されるレセプト。MDN は受信した内容と受信に成功したかどうかを送信側に報告する)は返すのか返さないのか。
https://arc.cdata.com/jp/kb/articles/as2-breakdown.rst#:~:text=MDN%20%E3%81%AFAS2%20%E4%BA%A4%E6%8F%9B%E3%81%A7,%E6%83%85%E5%A0%B1%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82 - 送信するメッセージは圧縮して送信するのか、送信しないのか。
- content-Typeヘッダには何を指定するのか。(content-typeはそのファイルの種類を指定する)https://qiita.com/AkihiroTakamura/items/b93fbe511465f52bffaa
など、様々な設定値を決めておく必要がある。
もし、取引先から仕様書をもらうようなことがあれば、自分のAS2設定とにらめっこして設定するようにしておけばよいだろう。
まとめ
AS2は、プッシュ型のEDIプロトコル。
海外とやり取りするときに選択されることが多い。
設定値が多いので一つ一つ確実に確認しながら設定することが肝要。
めんどい
以上です。