OpenID CX : XML Signature binding format ( 2nd draft )

以下の案。

<?xml version="1.0" encoding="UTF-8" ?>
<Contract>
    <Id><!– Document identifier –></Id>
    <Proposal>
        <!–
        There MUST be element nodes for a initail  proposal. Only if initial proposal Contract XML document
        –>
    </Proposal>
    <Original>
        <!–
    Base64 form of the requested Contract XML document
        –>
    </Original>
    <Agreement>
      <Rel>relation in this contract</Rel>
        <!–
        Agreeing signers information.
         –>
    </Agreement>
    <Signature>
        <!–
        W3C XML Security xmldsig-core “Enveloped Signature“ element nodes
        –>
    </Signature>
</Contract>

なので、RPが以下のPropsalを送ると、

<?xml version="1.0" encoding="UTF-8" ?>
<Contract>
    <Id>RP00002</Id>
    <Proposal><!– 決済おねがいします –></Proposal>
    <Signature><!– XML Signature 情報 –></Signature>
</Contract>

OPは
1. XML Signature検証
2. Proposalの内容確認
3. 全体をbase64

して以下のContract(のひな形)を用意し、

<?xml version="1.0" encoding="UTF-8" ?>
<Contract>
    <Id>OP00343</Id>
    <Original><!– base64 of Proposal –></Original>
    <Agreement><Rel>OpenID OP</Rel><!– 同意情報 —> </Agreement>
    <Signature><!– XML Signature 情報(実際は後で署名) –></Signature>
</Contract>

RPにOP00343というArtifactを返します。

ブラウザがOPのエンドポイントにArtifact=OP00343を持っていくと、

1. 認証
2. 要求の権限確認
3. Proposalの同意

の手順を踏んでOKだったら、先ほどのContractのAgreementを完成させて、XML署名します。

ブラウザがRPにステータスをインダイレクトでかえすと、RPがContractを直接要求して、返されたドキュメントの署名を検証し、必要であればOriginalのbase64をでコードしてさらに検証します。

3パーティになると、agreement Contract XML を作るステップがもう1回発生して、その前のXMLを同じようにOriginalにbase64で入れます。

という流れかな。

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中