17. Auth

← トランザクション個別解説 目次へ戻る



 Authトランザクションを利用すると受信者は相互に信頼しているサードパーティを通じて組織の認証情報を検証できます。このトランザクションは共有シークレットやMACが含まれていないドキュメントを受け取ったときの認証に使用します。受信者は送信者 (プリンシパル) の認証情報をAuthRequestドキュメントに入れ信頼できるサードパーティに送信して検証を依頼します。プリンシパルがデジタル証明書を使用してクライアント認証を行おうとしている場合、受信者がプリンシパルの認証情報とデジタル証明書に関する情報の両方をAuthRequestドキュメントに含めます。受信者はこの証明書情報をそのWebサーバーまたはSSL/TLS実装から取得します。信頼できるサードパーティは、AuthRequestを受け取り、プリンシパルの認証情報を照会して、プリンシパルが認識されている組織かどうかを確認します。プリンシパルの証明書情報が含まれていた場合、信頼できるサードパーティはその証明書が有効であることと、その証明書が認証情報に関連付けられている組織のものであることを確認します。認証情報 (および指定されていれば証明書) による認証が完了すると、信頼できるサードパーティは、検証済みの認証情報が含まれる肯定のAuthResponseで応答します。認証情報が無効な場合、信頼できるサードパーティは、空のcXML Responseである状況 403 (Forbidden) を返します。受信者はAuthResponseで示される有効期限までAuthトランザクションの結果をキャッシュすることができます。この期間にプリンシパルから同じ認証情報と証明書が提示された場合、同じAuthRequestを受信者が再度送信する必要はありません。

17.1. AuthRequest

 エンティティを認証するために相互に信頼しているサードパーティに送信する要求です。次の例にはX509証明書情報が含まれています。このデジタル証明書で要求元エンティティのクライアント認証が行われます。

click here to expand/close XML view
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE cXML SYSTEM "https://electric-blue-industries.com/schemas/cXML/1.2.052/cXML.dtd">
<!--
 * Author:      Electric Blue Industries Ltd.
 * Author URI:  https://electric-blue-industries.com/
 * Copyright:   (c)2015-2023 Electric Blue Industries Ltd.
 * Contact:     admin@electric-blue-industris.com
 * License:     GNU General Public License v3.0
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 * Reference:   http://xml.cxml.org/current/cXMLReferenceGuide.pdf
-->
<cXML timestamp="0000-00-00T00:00:00+09:00" payloadID="">
    <Header>
        <From>
            <Credential domain="DUNS">
                <Identity>123456789</Identity>
            </Credential>
        </From>
        <To>
            <Credential domain="NetworkID">
                <Identity>AN01000000001</Identity>
            </Credential>
        </To>
        <Sender>
            <Credential domain="DUNS">
                <Identity>123456789</Identity>
                <SharedSecret>SharedSecret</SharedSecret>
                <CredentialMac
                    type="FromSenderCredentials"
                    algorithm="HMAC-SHA1-96"
                    creationDate="0000-00-00T00:00:00+09:00"
                    expirationDate="0000-00-00T00:00:00+09:00">CredentialMAC</CredentialMac>
            </Credential>
            <UserAgent>Procurement Application Name</UserAgent>
        </Sender>
    </Header>
    <Request>
        <AuthRequest>
            <Credential domain="DUNS">
                <Identity>12345</Identity>
            </Credential>
            <!-- 認証に使用するX.509クライアント証明書を示します。 -->
            <X509Data>
                <!-- X.509証明書のシリアル番号と発行者名を定義します。 -->
                <X509IssuerSerial>
                    <!-- X.509証明書の発行者の識別名です。この識別名はRFC 2253に従ってLDAP識別名を文字列表現したものです。
                    たとえば次のようになります。C=US, O="Mega Data Security, Inc.", OU=Secure Server CA -->
                    <X509IssuerName>Verisign</X509IssuerName>
                    <!-- X.509証明書のシリアル番号です。 -->
                    <X509SerialNumber>12345</X509SerialNumber>
                </X509IssuerSerial>
                <!-- X.509証明書のサブジェクトキー識別子です。 -->
                <X509SKI />
                <!-- X.509証明書のサブジェクトの識別名です。この識別名はRFC 2253に従ってLDAP識別名を文字列表現したものです。 -->
                <X509SubjectName />
                <!-- Base-64 でエンコードした X.509v3証明書です。 -->
                <CertificDte />
                <!-- Base-64 でエンコードした X.509v3証明書の失効リストです。 -->
                <X509CRL />
            </X509Data>
        </AuthRequest>
    </Request>
</cXML>