viisp-auth-custom 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.gitignore +12 -0
 - data/.rspec +3 -0
 - data/.ruby-version +1 -0
 - data/.travis.yml +6 -0
 - data/CODE_OF_CONDUCT.md +74 -0
 - data/Gemfile +6 -0
 - data/LICENSE.txt +21 -0
 - data/README.md +107 -0
 - data/Rakefile +6 -0
 - data/certs/epaslaugos_ident.cer +0 -0
 - data/certs/testKey.pem +28 -0
 - data/lib/viisp/auth/client.rb +44 -0
 - data/lib/viisp/auth/configuration.rb +131 -0
 - data/lib/viisp/auth/errors.rb +10 -0
 - data/lib/viisp/auth/identity.rb +67 -0
 - data/lib/viisp/auth/requests/identity.rb +45 -0
 - data/lib/viisp/auth/requests/signature.rb +26 -0
 - data/lib/viisp/auth/requests/soap.rb +21 -0
 - data/lib/viisp/auth/requests/ticket.rb +62 -0
 - data/lib/viisp/auth/signing.rb +27 -0
 - data/lib/viisp/auth/version.rb +7 -0
 - data/lib/viisp/auth.rb +52 -0
 - data/schemas/authentication.xsd +205 -0
 - data/schemas/exc-c14n.xsd +39 -0
 - data/schemas/xmldsig-core-schema.xsd +318 -0
 - data/viisp-auth-custom.gemspec +30 -0
 - metadata +168 -0
 
| 
         @@ -0,0 +1,62 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module VIISP
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Auth
         
     | 
| 
      
 5 
     | 
    
         
            +
                module Requests
         
     | 
| 
      
 6 
     | 
    
         
            +
                  class Ticket
         
     | 
| 
      
 7 
     | 
    
         
            +
                    include Soap
         
     | 
| 
      
 8 
     | 
    
         
            +
                    include Signature
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                    NODE_ID = 'uniqueNodeId'
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    def initialize(providers: nil, attributes: nil, user_information: nil, postback_url: nil,
         
     | 
| 
      
 13 
     | 
    
         
            +
                                   custom_data: '')
         
     | 
| 
      
 14 
     | 
    
         
            +
                      @providers = providers || configuration.providers
         
     | 
| 
      
 15 
     | 
    
         
            +
                      @attributes = attributes || configuration.attributes
         
     | 
| 
      
 16 
     | 
    
         
            +
                      @user_information = user_information || configuration.user_information
         
     | 
| 
      
 17 
     | 
    
         
            +
                      @postback_url = postback_url || configuration.postback_url
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @custom_data = custom_data
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    def build
         
     | 
| 
      
 22 
     | 
    
         
            +
                      builder = Nokogiri::XML::Builder.new do |builder|
         
     | 
| 
      
 23 
     | 
    
         
            +
                        soap_envelope(builder) do
         
     | 
| 
      
 24 
     | 
    
         
            +
                          build_request(builder)
         
     | 
| 
      
 25 
     | 
    
         
            +
                        end
         
     | 
| 
      
 26 
     | 
    
         
            +
                      end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                      builder.doc
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                    private
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    def build_request(builder)
         
     | 
| 
      
 34 
     | 
    
         
            +
                      builder[:authentication].authenticationRequest(id: NODE_ID) do
         
     | 
| 
      
 35 
     | 
    
         
            +
                        builder.pid(configuration.pid)
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                        @providers.each do |provider|
         
     | 
| 
      
 38 
     | 
    
         
            +
                          builder.authenticationProvider(provider)
         
     | 
| 
      
 39 
     | 
    
         
            +
                        end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                        @attributes.each do |attribute|
         
     | 
| 
      
 42 
     | 
    
         
            +
                          builder.authenticationAttribute(attribute)
         
     | 
| 
      
 43 
     | 
    
         
            +
                        end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                        @user_information.each do |val|
         
     | 
| 
      
 46 
     | 
    
         
            +
                          builder.userInformation(val)
         
     | 
| 
      
 47 
     | 
    
         
            +
                        end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                        builder.postbackUrl(@postback_url)
         
     | 
| 
      
 50 
     | 
    
         
            +
                        builder.customData(@custom_data)
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                        build_signature(builder, NODE_ID)
         
     | 
| 
      
 53 
     | 
    
         
            +
                      end
         
     | 
| 
      
 54 
     | 
    
         
            +
                    end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                    def configuration
         
     | 
| 
      
 57 
     | 
    
         
            +
                      Auth.configuration
         
     | 
| 
      
 58 
     | 
    
         
            +
                    end
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
      
 62 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'xmldsig'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module VIISP
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Auth
         
     | 
| 
      
 7 
     | 
    
         
            +
                module Signing
         
     | 
| 
      
 8 
     | 
    
         
            +
                  SCHEMAS_PATH = File.expand_path('../../../../schemas', __FILE__).freeze
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  module_function
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  def sign(doc, private_key = Auth.configuration.private_key)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    signed_document = Xmldsig::SignedDocument.new(doc, id_attr: 'id')
         
     | 
| 
      
 14 
     | 
    
         
            +
                    signed_document.sign(private_key)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  def validate!(doc, certificate = Auth.configuration.service_cert)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    Dir.chdir(SCHEMAS_PATH) do
         
     | 
| 
      
 19 
     | 
    
         
            +
                      schema = IO.read('authentication.xsd')
         
     | 
| 
      
 20 
     | 
    
         
            +
                      signed_document = Xmldsig::SignedDocument.new(doc, id_attr: 'id')
         
     | 
| 
      
 21 
     | 
    
         
            +
                      # signed_document.validate(certificate, schema) ||
         
     | 
| 
      
 22 
     | 
    
         
            +
                      #   raise(SignatureError, 'Unable to verify signature')
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/viisp/auth.rb
    ADDED
    
    | 
         @@ -0,0 +1,52 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'nokogiri'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'viisp/auth/version'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'viisp/auth/configuration'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'viisp/auth/errors'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'viisp/auth/client'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'viisp/auth/signing'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'viisp/auth/identity'
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'viisp/auth/requests/soap'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require 'viisp/auth/requests/signature'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'viisp/auth/requests/ticket'
         
     | 
| 
      
 11 
     | 
    
         
            +
            require 'viisp/auth/requests/identity'
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            module VIISP
         
     | 
| 
      
 14 
     | 
    
         
            +
              module Auth
         
     | 
| 
      
 15 
     | 
    
         
            +
                module_function
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def configure
         
     | 
| 
      
 18 
     | 
    
         
            +
                  yield(configuration)
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def configuration
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @configuration ||= Configuration.new
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                def client
         
     | 
| 
      
 26 
     | 
    
         
            +
                  @client ||= Client.new
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                def portal_endpoint
         
     | 
| 
      
 30 
     | 
    
         
            +
                  configuration.portal_endpoint
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                def ticket(options = {})
         
     | 
| 
      
 34 
     | 
    
         
            +
                  request = Requests::Ticket.new(**options).build
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  doc = client.post(request)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  doc.remove_namespaces!
         
     | 
| 
      
 38 
     | 
    
         
            +
                  doc.at('ticket')&.text
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                def identity(options = {})
         
     | 
| 
      
 42 
     | 
    
         
            +
                  request = Requests::Identity.new(**options).build
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  doc = client.post(request)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  doc.remove_namespaces!
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                  Identity.new(doc).to_hash
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,205 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <?xml version="1.0" encoding="UTF-8"?>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.epaslaugos.lt/services/authentication"
         
     | 
| 
      
 3 
     | 
    
         
            +
                       elementFormDefault="qualified" xmlns="http://www.epaslaugos.lt/services/authentication">
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
         
     | 
| 
      
 6 
     | 
    
         
            +
              <xs:import namespace="http://www.w3.org/2001/10/xml-exc-c14n#" schemaLocation="exc-c14n.xsd" />
         
     | 
| 
      
 7 
     | 
    
         
            +
              <xs:import namespace="http://viisp.ivpk.lt/systemHealth" schemaLocation="systemHealth.xsd" />
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              <xs:element name="authenticationRequest">
         
     | 
| 
      
 10 
     | 
    
         
            +
                <xs:complexType>
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <xs:sequence>
         
     | 
| 
      
 12 
     | 
    
         
            +
                    <xs:element name="pid" type="xs:string" />
         
     | 
| 
      
 13 
     | 
    
         
            +
                    <xs:element name="serviceTarget" type="serviceTarget" minOccurs="0" />
         
     | 
| 
      
 14 
     | 
    
         
            +
                    <xs:element name="authenticationProvider" type="authenticationProvider" minOccurs="0" maxOccurs="unbounded" />
         
     | 
| 
      
 15 
     | 
    
         
            +
                    <xs:element name="authenticationAttribute" type="authenticationAttribute" minOccurs="0" maxOccurs="unbounded" />
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <xs:element name="userInformation" type="userInformation" minOccurs="0" maxOccurs="unbounded" />
         
     | 
| 
      
 17 
     | 
    
         
            +
                    <xs:element name="proxyAuthenticationAttribute" type="authenticationAttribute" minOccurs="0" maxOccurs="unbounded" />
         
     | 
| 
      
 18 
     | 
    
         
            +
                    <xs:element name="proxyUserInformation" type="userInformation" minOccurs="0" maxOccurs="unbounded" />
         
     | 
| 
      
 19 
     | 
    
         
            +
                    <xs:element name="postbackUrl" type="xs:anyURI" minOccurs="0" />
         
     | 
| 
      
 20 
     | 
    
         
            +
                    <xs:element name="customData" type="xs:string" minOccurs="0" />
         
     | 
| 
      
 21 
     | 
    
         
            +
                    <xs:element ref="dsig:Signature" />
         
     | 
| 
      
 22 
     | 
    
         
            +
                  </xs:sequence>
         
     | 
| 
      
 23 
     | 
    
         
            +
                  <xs:attribute name="id" type="xs:ID" use="optional" />
         
     | 
| 
      
 24 
     | 
    
         
            +
                </xs:complexType>
         
     | 
| 
      
 25 
     | 
    
         
            +
              </xs:element>
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              <xs:element name="authenticationResponse">
         
     | 
| 
      
 28 
     | 
    
         
            +
                <xs:complexType>
         
     | 
| 
      
 29 
     | 
    
         
            +
                  <xs:sequence>
         
     | 
| 
      
 30 
     | 
    
         
            +
                    <xs:element name="ticket" type="ticket" />
         
     | 
| 
      
 31 
     | 
    
         
            +
                    <xs:element ref="dsig:Signature" />
         
     | 
| 
      
 32 
     | 
    
         
            +
                  </xs:sequence>
         
     | 
| 
      
 33 
     | 
    
         
            +
                  <xs:attribute name="id" type="xs:ID" use="optional" />
         
     | 
| 
      
 34 
     | 
    
         
            +
                </xs:complexType>
         
     | 
| 
      
 35 
     | 
    
         
            +
              </xs:element>
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
              <xs:element name="authenticationDataRequest">
         
     | 
| 
      
 38 
     | 
    
         
            +
                <xs:complexType>
         
     | 
| 
      
 39 
     | 
    
         
            +
                  <xs:sequence>
         
     | 
| 
      
 40 
     | 
    
         
            +
                    <xs:element name="pid" type="xs:string" />
         
     | 
| 
      
 41 
     | 
    
         
            +
                    <xs:element name="ticket" type="ticket" />
         
     | 
| 
      
 42 
     | 
    
         
            +
                    <xs:element name="includeSourceData" type="xs:boolean" minOccurs="0" />
         
     | 
| 
      
 43 
     | 
    
         
            +
                    <xs:element ref="dsig:Signature" />
         
     | 
| 
      
 44 
     | 
    
         
            +
                  </xs:sequence>
         
     | 
| 
      
 45 
     | 
    
         
            +
                  <xs:attribute name="id" type="xs:ID" use="optional" />
         
     | 
| 
      
 46 
     | 
    
         
            +
                </xs:complexType>
         
     | 
| 
      
 47 
     | 
    
         
            +
              </xs:element>
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              <xs:element name="authenticationDataResponse">
         
     | 
| 
      
 50 
     | 
    
         
            +
                <xs:complexType>
         
     | 
| 
      
 51 
     | 
    
         
            +
                  <xs:sequence>
         
     | 
| 
      
 52 
     | 
    
         
            +
                    <xs:element name="authenticationProvider" type="authenticationProvider" />
         
     | 
| 
      
 53 
     | 
    
         
            +
                    <xs:element name="authenticationAttribute" type="authenticationAttributePair" minOccurs="0" maxOccurs="unbounded" />
         
     | 
| 
      
 54 
     | 
    
         
            +
                    <xs:element name="userInformation" type="userInformationPair" minOccurs="0" maxOccurs="unbounded" />
         
     | 
| 
      
 55 
     | 
    
         
            +
                    <xs:element name="proxyAuthenticationAttribute" type="authenticationAttributePair" minOccurs="0" maxOccurs="unbounded"/>
         
     | 
| 
      
 56 
     | 
    
         
            +
                    <xs:element name="proxyUserInformation" type="userInformationPair" minOccurs="0" maxOccurs="unbounded"/>
         
     | 
| 
      
 57 
     | 
    
         
            +
                    <xs:element name="customData" type="xs:string" minOccurs="0" />
         
     | 
| 
      
 58 
     | 
    
         
            +
                    <xs:element name="sourceData" type="authenticationSourceData" minOccurs="0" />
         
     | 
| 
      
 59 
     | 
    
         
            +
                    <xs:element ref="dsig:Signature" />
         
     | 
| 
      
 60 
     | 
    
         
            +
                  </xs:sequence>
         
     | 
| 
      
 61 
     | 
    
         
            +
                  <xs:attribute name="id" type="xs:ID" use="optional" />
         
     | 
| 
      
 62 
     | 
    
         
            +
                </xs:complexType>
         
     | 
| 
      
 63 
     | 
    
         
            +
              </xs:element>
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
              <xs:element name="invalidSignatureException" />
         
     | 
| 
      
 66 
     | 
    
         
            +
              <xs:element name="invalidXmlException" />
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
              <xs:complexType name="authenticationAttributePair">
         
     | 
| 
      
 69 
     | 
    
         
            +
                <xs:sequence>
         
     | 
| 
      
 70 
     | 
    
         
            +
                  <xs:element name="attribute" type="authenticationAttribute" />
         
     | 
| 
      
 71 
     | 
    
         
            +
                  <xs:element name="value" type="xs:string" />
         
     | 
| 
      
 72 
     | 
    
         
            +
                </xs:sequence>
         
     | 
| 
      
 73 
     | 
    
         
            +
              </xs:complexType>
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
              <xs:complexType name="userInformationPair">
         
     | 
| 
      
 76 
     | 
    
         
            +
                <xs:sequence>
         
     | 
| 
      
 77 
     | 
    
         
            +
                  <xs:element name="information" type="userInformation" />
         
     | 
| 
      
 78 
     | 
    
         
            +
                  <xs:element name="value">
         
     | 
| 
      
 79 
     | 
    
         
            +
                    <xs:complexType>
         
     | 
| 
      
 80 
     | 
    
         
            +
                      <xs:choice>
         
     | 
| 
      
 81 
     | 
    
         
            +
                        <xs:element name="stringValue" type="xs:string" />
         
     | 
| 
      
 82 
     | 
    
         
            +
                        <xs:element name="dateValue" type="xs:date" />
         
     | 
| 
      
 83 
     | 
    
         
            +
                      </xs:choice>
         
     | 
| 
      
 84 
     | 
    
         
            +
                    </xs:complexType>
         
     | 
| 
      
 85 
     | 
    
         
            +
                  </xs:element>
         
     | 
| 
      
 86 
     | 
    
         
            +
                </xs:sequence>
         
     | 
| 
      
 87 
     | 
    
         
            +
              </xs:complexType>
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
              <xs:simpleType name="ticket">
         
     | 
| 
      
 90 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 91 
     | 
    
         
            +
                  <xs:maxLength value="512" />
         
     | 
| 
      
 92 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 93 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
              <xs:simpleType name="serviceTarget">
         
     | 
| 
      
 96 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 97 
     | 
    
         
            +
                  <xs:enumeration value="citizen" />
         
     | 
| 
      
 98 
     | 
    
         
            +
                  <xs:enumeration value="business" />
         
     | 
| 
      
 99 
     | 
    
         
            +
                  <xs:enumeration value="provider" />
         
     | 
| 
      
 100 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 101 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
              <xs:simpleType name="authenticationProvider">
         
     | 
| 
      
 104 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 105 
     | 
    
         
            +
                  <xs:enumeration value="auth.login.pass" />
         
     | 
| 
      
 106 
     | 
    
         
            +
                  <xs:enumeration value="auth.lt.identity.card" />
         
     | 
| 
      
 107 
     | 
    
         
            +
                  <xs:enumeration value="auth.lt.government.employee.card" />
         
     | 
| 
      
 108 
     | 
    
         
            +
                  <xs:enumeration value="auth.lt.bank" />
         
     | 
| 
      
 109 
     | 
    
         
            +
                  <xs:enumeration value="auth.stork">
         
     | 
| 
      
 110 
     | 
    
         
            +
                    <xs:annotation>
         
     | 
| 
      
 111 
     | 
    
         
            +
                      <xs:documentation>Reikšmė nebegaliojanti, palikta dėl išorinių sistemų palaikymo</xs:documentation>
         
     | 
| 
      
 112 
     | 
    
         
            +
                    </xs:annotation>
         
     | 
| 
      
 113 
     | 
    
         
            +
                  </xs:enumeration>
         
     | 
| 
      
 114 
     | 
    
         
            +
                  <xs:enumeration value="auth.eidas" />
         
     | 
| 
      
 115 
     | 
    
         
            +
                  <xs:enumeration value="auth.tsl.identity.card" >
         
     | 
| 
      
 116 
     | 
    
         
            +
                    <xs:annotation>
         
     | 
| 
      
 117 
     | 
    
         
            +
                      <xs:documentation>Reikšmė nebegaliojanti, palikta dėl išorinių sistemų palaikymo</xs:documentation>
         
     | 
| 
      
 118 
     | 
    
         
            +
                    </xs:annotation>
         
     | 
| 
      
 119 
     | 
    
         
            +
                  </xs:enumeration>
         
     | 
| 
      
 120 
     | 
    
         
            +
                  <xs:enumeration value="auth.signatureProvider" />
         
     | 
| 
      
 121 
     | 
    
         
            +
                  <xs:enumeration value="auth.iltu.identity.card" />
         
     | 
| 
      
 122 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 123 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
              <xs:simpleType name="authenticationAttribute">
         
     | 
| 
      
 126 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 127 
     | 
    
         
            +
                  <xs:enumeration value="lt-personal-code" />
         
     | 
| 
      
 128 
     | 
    
         
            +
                  <xs:enumeration value="lt-company-code" />
         
     | 
| 
      
 129 
     | 
    
         
            +
                  <xs:enumeration value="lt-government-employee-code" />
         
     | 
| 
      
 130 
     | 
    
         
            +
                  <xs:enumeration value="stork-eid">
         
     | 
| 
      
 131 
     | 
    
         
            +
                    <xs:annotation>
         
     | 
| 
      
 132 
     | 
    
         
            +
                      <xs:documentation>Reikšmė nebegaliojanti, palikta dėl išorinių sistemų palaikymo</xs:documentation>
         
     | 
| 
      
 133 
     | 
    
         
            +
                    </xs:annotation>
         
     | 
| 
      
 134 
     | 
    
         
            +
                  </xs:enumeration>
         
     | 
| 
      
 135 
     | 
    
         
            +
                  <xs:enumeration value="tsl-serial-number">
         
     | 
| 
      
 136 
     | 
    
         
            +
                    <xs:annotation>
         
     | 
| 
      
 137 
     | 
    
         
            +
                      <xs:documentation>Reikšmė nebegaliojanti, palikta dėl išorinių sistemų palaikymo</xs:documentation>
         
     | 
| 
      
 138 
     | 
    
         
            +
                    </xs:annotation>
         
     | 
| 
      
 139 
     | 
    
         
            +
                  </xs:enumeration>
         
     | 
| 
      
 140 
     | 
    
         
            +
                  <xs:enumeration value="eidas-eid" />
         
     | 
| 
      
 141 
     | 
    
         
            +
                  <xs:enumeration value="login" />
         
     | 
| 
      
 142 
     | 
    
         
            +
                  <xs:enumeration value="iltu-personal-code" />
         
     | 
| 
      
 143 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 144 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
              <xs:simpleType name="userInformation">
         
     | 
| 
      
 147 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 148 
     | 
    
         
            +
                  <xs:enumeration value="id" />
         
     | 
| 
      
 149 
     | 
    
         
            +
                  <xs:enumeration value="firstName" />
         
     | 
| 
      
 150 
     | 
    
         
            +
                  <xs:enumeration value="lastName" />
         
     | 
| 
      
 151 
     | 
    
         
            +
                  <xs:enumeration value="address" />
         
     | 
| 
      
 152 
     | 
    
         
            +
                  <xs:enumeration value="email" />
         
     | 
| 
      
 153 
     | 
    
         
            +
                  <xs:enumeration value="phoneNumber" />
         
     | 
| 
      
 154 
     | 
    
         
            +
                  <xs:enumeration value="birthday" />
         
     | 
| 
      
 155 
     | 
    
         
            +
                  <xs:enumeration value="companyName" />
         
     | 
| 
      
 156 
     | 
    
         
            +
                  <xs:enumeration value="nationality" />
         
     | 
| 
      
 157 
     | 
    
         
            +
                  <xs:enumeration value="proxyType" />
         
     | 
| 
      
 158 
     | 
    
         
            +
                  <xs:enumeration value="proxySource" />
         
     | 
| 
      
 159 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 160 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
              <xs:simpleType name="proxyType">
         
     | 
| 
      
 163 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 164 
     | 
    
         
            +
                  <xs:enumeration value="generic" />
         
     | 
| 
      
 165 
     | 
    
         
            +
                  <xs:enumeration value="service" />
         
     | 
| 
      
 166 
     | 
    
         
            +
                  <xs:enumeration value="external" />
         
     | 
| 
      
 167 
     | 
    
         
            +
                  <xs:enumeration value="legal" />
         
     | 
| 
      
 168 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 169 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
              <xs:simpleType name="proxySource">
         
     | 
| 
      
 172 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 173 
     | 
    
         
            +
                  <xs:enumeration value="JAR"/>
         
     | 
| 
      
 174 
     | 
    
         
            +
                  <xs:enumeration value="GR"/>
         
     | 
| 
      
 175 
     | 
    
         
            +
                  <xs:enumeration value="NIRVAR"/>
         
     | 
| 
      
 176 
     | 
    
         
            +
                  <xs:enumeration value="AUTHORIZATION_REGISTER"/>
         
     | 
| 
      
 177 
     | 
    
         
            +
                  <xs:enumeration value="VIISP"/>
         
     | 
| 
      
 178 
     | 
    
         
            +
                  <xs:enumeration value="BANKLINK"/>
         
     | 
| 
      
 179 
     | 
    
         
            +
                  <xs:enumeration value="eIDAS"/>
         
     | 
| 
      
 180 
     | 
    
         
            +
                  <xs:enumeration value="USERNAME_PASSWORD"/>
         
     | 
| 
      
 181 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 182 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
      
 184 
     | 
    
         
            +
              <xs:complexType name="authenticationSourceData">
         
     | 
| 
      
 185 
     | 
    
         
            +
                <xs:sequence>
         
     | 
| 
      
 186 
     | 
    
         
            +
                  <xs:element name="type" type="authenticationSourceType" />
         
     | 
| 
      
 187 
     | 
    
         
            +
                  <xs:element name="parameter" type="authenticationSourceParameter" maxOccurs="unbounded" />
         
     | 
| 
      
 188 
     | 
    
         
            +
                </xs:sequence>
         
     | 
| 
      
 189 
     | 
    
         
            +
              </xs:complexType>
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
      
 191 
     | 
    
         
            +
              <xs:simpleType name="authenticationSourceType">
         
     | 
| 
      
 192 
     | 
    
         
            +
                <xs:restriction base="xs:string">
         
     | 
| 
      
 193 
     | 
    
         
            +
                  <xs:enumeration value="SAML" />
         
     | 
| 
      
 194 
     | 
    
         
            +
                  <xs:enumeration value="BANKLINK" />
         
     | 
| 
      
 195 
     | 
    
         
            +
                </xs:restriction>
         
     | 
| 
      
 196 
     | 
    
         
            +
              </xs:simpleType>
         
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
              <xs:complexType name="authenticationSourceParameter">
         
     | 
| 
      
 199 
     | 
    
         
            +
                <xs:simpleContent>
         
     | 
| 
      
 200 
     | 
    
         
            +
                  <xs:extension base="xs:string">
         
     | 
| 
      
 201 
     | 
    
         
            +
                    <xs:attribute name="name" type="xs:string" />
         
     | 
| 
      
 202 
     | 
    
         
            +
                  </xs:extension>
         
     | 
| 
      
 203 
     | 
    
         
            +
                </xs:simpleContent>
         
     | 
| 
      
 204 
     | 
    
         
            +
              </xs:complexType>
         
     | 
| 
      
 205 
     | 
    
         
            +
            </xs:schema>
         
     | 
| 
         @@ -0,0 +1,39 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <?xml version="1.0" encoding="utf-8"?>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <!DOCTYPE schema
         
     | 
| 
      
 3 
     | 
    
         
            +
                    PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
         
     | 
| 
      
 4 
     | 
    
         
            +
                    [
         
     | 
| 
      
 5 
     | 
    
         
            +
                            <!ATTLIST schema
         
     | 
| 
      
 6 
     | 
    
         
            +
                                    xmlns:ec CDATA #FIXED 'http://www.w3.org/2001/10/xml-exc-c14n#'>
         
     | 
| 
      
 7 
     | 
    
         
            +
                            <!ENTITY ec 'http://www.w3.org/2001/10/xml-exc-c14n#'>
         
     | 
| 
      
 8 
     | 
    
         
            +
                            <!ENTITY % p ''>
         
     | 
| 
      
 9 
     | 
    
         
            +
                            <!ENTITY % s ''>
         
     | 
| 
      
 10 
     | 
    
         
            +
                            ]>
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            <!-- Schema for Exclusive Canonicalization
         
     | 
| 
      
 14 
     | 
    
         
            +
                http://www.w3.org/2001/10/xml-exc-c14n#
         
     | 
| 
      
 15 
     | 
    
         
            +
                $Revision: 1.1 $ on $Date: 2002/07/11 17:26:47 $ by $Author: reagle $
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                Copyright 2002 The Internet Society and W3C (Massachusetts Institute
         
     | 
| 
      
 18 
     | 
    
         
            +
                of Technology, Institut National de Recherche en Informatique et en
         
     | 
| 
      
 19 
     | 
    
         
            +
                Automatique, Keio University). All Rights Reserved.
         
     | 
| 
      
 20 
     | 
    
         
            +
                http://www.w3.org/Consortium/Legal/
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                This document is governed by the W3C Software License [1] as described
         
     | 
| 
      
 23 
     | 
    
         
            +
                in the FAQ [2].
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
         
     | 
| 
      
 26 
     | 
    
         
            +
                [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
         
     | 
| 
      
 27 
     | 
    
         
            +
            -->
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            <schema xmlns="http://www.w3.org/2001/XMLSchema"
         
     | 
| 
      
 30 
     | 
    
         
            +
                    xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"
         
     | 
| 
      
 31 
     | 
    
         
            +
                    targetNamespace="http://www.w3.org/2001/10/xml-exc-c14n#"
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version="0.1" elementFormDefault="qualified">
         
     | 
| 
      
 33 
     | 
    
         
            +
              <element name="InclusiveNamespaces"
         
     | 
| 
      
 34 
     | 
    
         
            +
                       type="ec:InclusiveNamespaces"/>
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              <complexType name="InclusiveNamespaces">
         
     | 
| 
      
 37 
     | 
    
         
            +
                <attribute name="PrefixList" type="NMTOKENS"/>
         
     | 
| 
      
 38 
     | 
    
         
            +
              </complexType>
         
     | 
| 
      
 39 
     | 
    
         
            +
            </schema>
         
     |