<> <>Schemata of Various IdM Protocols ################################# <> <> <> <> 99 Appendix: Schema Grammars ============================ Large parts of ZXID code are generated from +schema grammars+ which are a convenient notation for describing XML schmata. This appendix contains the schema grammars that are currently implemented and distributed in the ZXID package. <> 99.1 SAML 2.0 ------------- 99.1.1 saml-schema-assertion-2.0 (sa) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.1.2 saml-schema-protocol-2.0 (sp) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.1.4 saml-schema-metadata-2.0 (md) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.2 SAML 1.1 ------------- 99.2.1 oasis-sstc-saml-schema-assertion-1.1 (sa11) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.2.2 oasis-sstc-saml-schema-protocol-1.1 (sp11) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.3 Liberty ID-FF 1.2 ---------------------- 99.3.1 liberty-idff-protocols-schema-1.2 (ff12) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.3.2 liberty-metadata-v2.0 (m20) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.3.3 liberty-authentication-context-v2.0 (ac) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.4 Liberty ID-WSF 1.1 ----------------------- 99.4.1 liberty-idwsf-soap-binding-v1.2 (b12) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.4.2 liberty-idwsf-security-mechanisms-v1.2 (sec12) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.4.3 liberty-idwsf-disco-svc-v1.2 (di12) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.4.5 liberty-idwsf-interaction-svc-v1.1 (is12) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5 Liberty ID-WSF 2.0 ----------------------- 99.5.1 liberty-idwsf-utility-v2.0 (lu) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.2 liberty-idwsf-soap-binding (no version, sbf) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.3 liberty-idwsf-soap-binding-v2.0 (b) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.4 liberty-idwsf-security-mechanisms-v2.0 (sec) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.5 liberty-idwsf-disco-svc-v2.0 (di) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.6 liberty-idwsf-interaction-svc-v2.0 (is) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.7 id-dap (dap) ~~~~~~~~~~~~~~~~~~~ <> >> 99.5.8 liberty-idwsf-subs-v1.0 (subs) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.9 liberty-idwsf-dst-v2.1 (dst) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.10 liberty-idwsf-idmapping-svc-v2.0 (im) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.11 liberty-idwsf-people-service-v1.0 (ps) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.5.12 liberty-idwsf-authn-svc-v2.0 (as) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.6 SOAP 1.1 Processors ------------------------ 99.6.2 wsf-soap11 (e) ~~~~~~~~~~~~~~~~~~~~~ <> >> 99.7 XML and Web Services Infrastructure ---------------------------------------- 99.7.1 xmldsig-core (ds) ~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.7.2 xenc-schema (xenc) ~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.7.3 ws-addr-1.0 (a) ~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.7.4 wss-secext-1.0 (wsse) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 99.7.5 wss-util-1.0 (wsu) ~~~~~~~~~~~~~~~~~~~~~~~~~ <> >> 100 Appendix: Some Example XML Blobs ==================================== These XML blobs are for reference. They have been pretty printed. Indentation indicates nesting level and closing tags have been abbreviated as "". The actual XML on wire generally does not have any whitespace. 100.1 SAML 2.0 Artifact Response with SAML 2.0 SSO Assertion and Two Bootstraps ------------------------------------------------------------------------------- This example corresponds to t/sso-w-bootstraps.xml in the distribution. Both bootstraps illustrate SAML assertion as bearer token. https://a-idp.liberty-iop.org:8881/idp.xml https://a-idp.liberty-iop.org:8881/idp.xml https://a-idp.liberty-iop.org:8881/idp.xml r8OvtNmq5LkYwCNg6bsRZAdT4NE= GtWVZzHYW54ioHk/C7zjDRThohrpwC4= PB5fLIA4lRU2bH4HkQsn9 https://sp1.zxidsp.org:8443/zxidhlo?o=B https://a-idp.liberty-iop.org:8881/idp.xml dqq/28hw5eEv+ceFyiLImeJ1P8w= UKlEgHKQwuoCE= https://sp1.zxidsp.org:8443/zxidhlo?o=B urn:oasis:names:tc:SAML:2.0:ac:classes:Password Sue https://a-idp.liberty-iop.org/profiles/WSF1.1/RID-DISCO-sue urn:liberty:disco:2003-08 https://a-idp.liberty-iop.org:8881/idp.xml urn:liberty:security:2005-02:TLS:Bearer CREDOTGAkvhNoP1aiTq4bXBg https://a-idp.liberty-iop.org:8881/DISCO-S Symlabs Discovery Service Team G https://a-idp.liberty-iop.org:8881/DISCO-S SYMfiam Discovery Service https://a-idp.liberty-iop.org:8881/idp.xml urn:liberty:disco:2006-08 urn:liberty:security:2005-02:TLS:Bearer https://a-idp.liberty-iop.org:8881/idp.xml o2SgbuKIBzl4e0dQoTwiyqXr/8Y= hHdUKaZ//cZ8UYJxvTReNU= 9my93VkP3tSxEOIb3ckvjLpn0pa6aV3yFXioWX-TzZI= https://a-idp.liberty-iop.org:8881/idp.xml urn:oasis:names:tc:SAML:2.0:ac:classes:Password 100.2 ID-WSF 2.0 Call with X509v3 Sec Mech ------------------------------------------ 123 ... ... 2005-06-17T04:49:17Z MIIB9zCCAWSgAwIBAgIQ... ... ... ... ... Ru4cAfeBAB YgGfS0pi56p HJJWbvqW9E84vJVQkjDElgscSXZ5Ekw== The salient features of the above XML blob are * Signature that covers relevant SOAP headers and Body * Absence of any explicit identity token. Absence of identity token means that from the headers it is not possible to identify the taget identity. The signature generally coveys the Invoker identity (the WSC that is calling the service). Since one WSC typically serves many principals, knowing which is impossible. For this reason X509 security mechanism is seldom used in ID-WSF 2.0 world (with ID-WSF 1.1 the ResourceID provides an alternative way of identifying the principal, thus making X509 a viable option). 100.3 ID-WSF 2.0 Call with Bearer (Binary) Sec Mech --------------------------------------------------- ... ... ... 2005-06-17T04:49:17Z mQEMAzRniWkAAAEH9RWir0eKDkyFAB7PoFazx3ftp0vWwbbzqXdgcX8fpEqSr1v4 YqUc7OMiJcBtKBp3+jlD4HPUaurIqHA0vrdmMpM+sF2BnpND118f/mXCv3XbWhiL VT4r9ytfpXBluelOV93X8RUz4ecZcDm9e+IEG+pQjnvgrSgac1NrW5K/CJEOUUjh oGTrym0Ziutezhrw/gOeLVtkywsMgDr77gWZxRvw01w1ogtUdTceuRBIDANj+KVZ vLKlTCaGAUNIjkiDDgti= ... ... ... ... ... YgGfS0pi56pu ... 100.4 ID-WSF 2.0 Call with Bearer (SAML) Sec Mech ------------------------------------------------- ... ... ... 2005-06-17T04:49:17Z http://idp.symdemo.com/ ... U2XTCNvRX7 Bl1NK182nmY00TEk== ... http://wsp.zxidsp.org urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport mQEMAzRniWkAAAEH9RbzqXdgcX8fpEqSr1v4= ... A7N123 ... ... ... ... ... *** is the reference above to wsse11:TokenType really correct? Note who the and the attributes are encrypted such that only the WSP can open them. This protects against WSC gaining knowledge of the NameID at the WSP. 100.5 XACML 2.0 SAML Profile SOAP Call -------------------------------------- https://sp1.zxidsp.org:5443/protected/saml?o=B F2r41OppQA2ZLsosLO6V9VNJ0J8= sAvByKH9--(snip)--HV+1oqcdUw= guest jesterbester FdGaMOmtJPfvK9dN64lWgKTOp /protected/env.cgi urn:oasis:names:tc:xacml:1.0:action:implied-action 0.33 1251217347 https://idp.tas3.pt:8443/zxididp?o=B urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport S6QaJzAylXfkw1tFlrZSD9Zwr https://idp.tas3.pt:8443/zxididp?o=B jdBsc0wOvJsBJCCc4eyq1bnG1u4= AZyw2fK5--(snip)--UTOSSov7kc= https://idp.tas3.pt:8443/zxididp?o=B Permit <ZXID Schemata

ZXID Schemata

>> <> <><> <>