Sun Java System Access Manager 7 2005Q4 Federation and SAML Administration Guide

Authentication Web Service Schema

Following is a reproduction of liberty-idwsf-authn-svc-v1.0.xsd, the XSD file that accompanies the Liberty ID-WSF Authentication Service Specification as discussed in Chapter 5, Authentication Web Service.


Example B–4 Authentication Web Service XSD File


<?xml version="1.0" encoding="UTF-8"?>

<xs:schema
targetNamespace="urn:liberty:sa:2004-04"
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:sa="urn:liberty:sa:2004-04"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:lib="urn:liberty:iff:2003-08"
xmlns:disco="urn:liberty:disco:2003-08"
xmlns="urn:liberty:sa:2004-04"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="06">

<!-- Filename: lib-arch-authn-svc.xsd  -->
<!-- $Id: liberty-idwsf-authn-svc-v1.0.xsd,v 1.1 2004/08/02 19:25:27 dgreenspon Exp $ -->
<!-- Author: Jeff Hodges -->
<!-- Last editor: $Author: dgreenspon $ -->
<!-- $Date: 2004/08/02 19:25:27 $ -->
<!-- $Revision: 1.1 $ -->

  <xs:import
      namespace="urn:liberty:iff:2003-08"
      schemaLocation="liberty-idff-protocols-schema-v1.2.xsd"/>

  <xs:import
      namespace="urn:liberty:disco:2003-08"
      schemaLocation="liberty-idwsf-disco-svc-1.0-errata-v1.0.xsd"/>

  <xs:include schemaLocation="liberty-idwsf-utility-1.0-errata-v1.0.xsd"/>

  <xs:annotation>
      <xs:documentation>
          Liberty ID-WSF Authentication Service XSD
      </xs:documentation>
      <xs:documentation>
          The source code in this XSD file was excerpted verbatim from:
          Liberty ID-WSF Authentication Service Specification
          Version 1.0
          16 Feb 2004
          Copyright (c) 2003, 2004 Liberty Alliance participants,
          see http://www.projectliberty.org/specs/idwsf_copyrights.html
      </xs:documentation>
  </xs:annotation>

  <!-- SASLRequest and SASLResponse ID-* messages  -->

  <xs:element name="SASLRequest">
      <xs:complexType>
          <xs:sequence>

              <xs:element name="Data" minOccurs="0">
                  <xs:complexType>
                      <xs:simpleContent>
                          <xs:extension base="xs:base64Binary"/>
                      </xs:simpleContent>
                  </xs:complexType>
              </xs:element>

              <xs:element ref="lib:RequestAuthnContext"
                          minOccurs="0"/>

          </xs:sequence>

          <xs:attribute name="mechanism"
                        type="xs:string"
                        use="required"/>

          <xs:attribute name="authzID"
                        type="xs:string"
                        use="optional"/>

          <xs:attribute name="advisoryAuthnID"
                        type="xs:string"
                        use="optional"/>

          <xs:attribute name="id"
                        type="xs:ID"
                        use="optional"/>

      </xs:complexType>
  </xs:element>


  <xs:element name="SASLResponse">
      <xs:complexType>
          <xs:sequence>

              <xs:element ref="Status"/>

              <xs:element ref="PasswordTransforms" minOccurs="0"/>

              <xs:element name="Data" minOccurs="0">
                  <xs:complexType>
                      <xs:simpleContent>
                          <xs:extension base="xs:base64Binary"/>
                      </xs:simpleContent>
                  </xs:complexType>
              </xs:element>

              <xs:element ref="disco:ResourceOffering"
                          minOccurs="0"
                          maxOccurs="unbounded"/>

              <xs:element name="Credentials" minOccurs="0">
                  <xs:complexType>
                      <xs:sequence>
                          <xs:any namespace="##any"
                                  processContents="lax"
                                  minOccurs="0"
                                  maxOccurs="unbounded"/>
                      </xs:sequence>
                   </xs:complexType>
               </xs:element>

           </xs:sequence>

           <xs:attribute name="serverMechanism"
                         type="xs:string"
                         use="optional"/>

           <xs:attribute name="id"
                         type="xs:ID"
                         use="optional"/>

      </xs:complexType>
  </xs:element>

  <!-- Password Transformations  -->

  <xs:element name="PasswordTransforms">

      <xs:annotation>
          <xs:documentation>
              Contains ordered list of sequential password transformations
          </xs:documentation>
      </xs:annotation>

      <xs:complexType>
          <xs:sequence>

              <xs:element name="Transform" maxOccurs="unbounded">
                  <xs:complexType>
                      <xs:sequence>

                          <xs:element name="Parameter"
                                      minOccurs="0"
                                      maxOccurs="unbounded">
                              <xs:complexType>
                                  <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                          <xs:attribute name="name"
                                                        type="xs:string"
                                                        use="required"/>
                                      </xs:extension>
                                  </xs:simpleContent>
                              </xs:complexType>
                          </xs:element>

                      </xs:sequence>

                      <xs:attribute name="name"
                                    type="xs:anyURI"
                                    use="required"/>

                      <xs:attribute name="id"
                                    type="xs:ID"
                                    use="optional"/>

                  </xs:complexType>
              </xs:element>
          </xs:sequence>
      </xs:complexType>
  </xs:element>

</xs:schema>