Commit c9468d1

mo <mo.khan@gmail.com>
2017-10-25 23:48:34
add identity provider parsing.
1 parent dff7ad2
lib/saml/kit/identity_provider_metadata.rb
@@ -1,14 +1,87 @@
 module Saml
   module Kit
     class IdentityProviderMetadata
+      NAMESPACES = {
+        "NameFormat": Namespaces::Formats::Attr::SPLAT,
+        "ds": Namespaces::SIGNATURE,
+        "md": Namespaces::METADATA,
+        "saml": Namespaces::ASSERTION,
+      }.freeze
+
       def initialize(xml)
         @xml = xml
       end
 
+      def entity_id
+        find_by("/md:EntityDescriptor/@entityID").value
+      end
+
+      def name_id_format
+        find_by("/md:EntityDescriptor/md:IDPSSODescriptor/md:NameIDFormat").try(:text)
+      end
+
+      def single_sign_on_services
+        xpath = "/md:EntityDescriptor/md:IDPSSODescriptor/md:SingleSignOnService"
+        find_all(xpath).map do |item|
+          { binding: item.attribute("Binding").value, location: item.attribute("Location").value }
+        end
+      end
+
+      def single_logout_services
+        xpath = "/md:EntityDescriptor/md:IDPSSODescriptor/md:SingleLogoutService"
+        find_all(xpath).map do |item|
+          { binding: item.attribute("Binding").value, location: item.attribute("Location").value }
+        end
+      end
+
+      def certificates
+        xpath = "/md:EntityDescriptor/md:IDPSSODescriptor/md:KeyDescriptor"
+        find_all(xpath).map do |item|
+          cert = Base64.decode64(item.at_xpath("./ds:KeyInfo/ds:X509Data/ds:X509Certificate", NAMESPACES).text)
+          {
+            fingerprint: fingerprint_for(cert),
+            use: item.attribute('use').value,
+            value: cert,
+          }
+        end
+      end
+
+      def attributes
+        find_all("/md:EntityDescriptor/md:IDPSSODescriptor/saml:Attribute").map do |item|
+          {
+            format: item.attribute("NameFormat").value,
+            friendly_name: item.attribute("FriendlyName").value,
+            name: item.attribute("Name").value,
+          }
+        end
+      end
+
+      def validate
+      end
+
       def to_xml
         @xml
       end
 
+      private
+
+      def fingerprint_for(value)
+        x509 = OpenSSL::X509::Certificate.new(value)
+        OpenSSL::Digest::SHA256.new.hexdigest(x509.to_der).upcase.scan(/../).join(":")
+      end
+
+      def document
+        @document ||= Nokogiri::XML(@xml)
+      end
+
+      def find_by(xpath)
+        document.at_xpath(xpath, NAMESPACES)
+      end
+
+      def find_all(xpath)
+        document.search(xpath, NAMESPACES)
+      end
+
       class Builder
         attr_accessor :id, :organization_name, :organization_url, :contact_email, :entity_id, :single_sign_on_location, :single_logout_location, :attributes
 
lib/saml/kit/namespaces.rb
@@ -34,6 +34,7 @@ module Saml
         module Attr
           URI = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
           BASIC = "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
+          SPLAT = "urn:oasis:names:tc:SAML:2.0:attrname-format:*"
         end
 
         module NameId
lib/saml/kit.rb
@@ -1,6 +1,7 @@
 require "saml/kit/version"
 
 require "builder"
+require "nokogiri"
 require "securerandom"
 require "active_support/duration"
 require "active_support/core_ext/numeric/time"
spec/fixtures/metadata/ad_2012.xml
@@ -0,0 +1,1 @@
+<EntityDescriptor ID="_792c1738-e456-48db-a281-1aaf961727f5" entityID="http://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust" xmlns="urn:oasis:names:tc:SAML:2.0:metadata"><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><ds:Reference URI="#_792c1738-e456-48db-a281-1aaf961727f5"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><ds:DigestValue>JNxR1jtP8cpXqmQzfZok6aeOdVxcg2lkyi0ReqLXDKk=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>dcIX3hi/+8A3zrTGGSEjkZ+oMogOfrI9XYyIBfMXqQqYXDCSRdC67kMVzcibu7y7mcAcZ/a8KS2sNhTTxnYfcngV5J1yfyzX9SCf02qaUkmIA8FnVdRkK90JLF9p0hyBBMA6GGtUj+K/snHf4oK2cCEaSP/oYLS0iLzATd/rPwpB8At+Nn8ploUh62Lkud7mpURmjbQmEcR/RuBqkQ99PgCw5A+EQ9idLc1Lb92mNiVbYaC0bQiCzNrPfr+Pw67PzQrTYprLuKfvPvPtyVkmZacusbVUHJr20+Xi+PYNaIOMfnM78oL97RRachKk/8x2ew+T0ZIjYyaYTUFOkk3JgA==</ds:SignatureValue><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC/DCCAeSgAwIBAgIQGobBMVmYz61AqNR/42A7NDANBgkqhkiG9w0BAQsFADA6MTgwNgYDVQQDEy9BREZTIFNpZ25pbmcgLSB3aW4yMDEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDRaFw0xNzEwMjExNDUwMDRaMDoxODA2BgNVBAMTL0FERlMgU2lnbmluZyAtIHdpbjIwMTJyMi1hZC1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuvYden1ksmpxGGvnZGotnRwFCTOYknY4Ol0utUIYTYs/MTOZQtilSRWnsCFhPzUjXATMTF6kKuiH7LIow2QkYxv8JFMrc9FIUvxRauYJ/GVmedT9gMF2nh62Evi9DExDTM5xRM3bmircPB3cwg6M1BixcbvQtlRj37IEXEApk5ZAY24jivElnsQWwCIV9tLL9Kv4pBCDvQiZl6Bjk4ZRulyKolQDd9+S0tXISo+OaxQ6WwXbOFDIekUBgNE6ivXrbPH1+CP+paDAMB6vpj5C+o2c3rP9X53Dk4ig0mjw4mbOqd6p/S1Bs3cpNJb1F8RK9SgSxPIV7SIvI8u2FD+XdwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAlgP26UQUnC/3V1+ZlpCAWO6727MFNtsT/mue6PVEiydtjPurGF7cA4ljfk6E5QEB2U/Hhc4gh0VsbGTAP0g7m/BXAohaxG9S/1ITSj+8B/4IjLwQjUdPDuGcWHuRgOK84LMFj+Ial6zQUP1G4K0eQRFOEV3PeQVbyGDWBzxadFapN7k+BdDNJ1DgTDuEmJPmGAjHMM8I/m/G/UGQfCwZcB19pFPqhv+sV21D8BQ038y6j5Z3YXiIThdJ7LVTbOuN3dTXglgXIy0nPTx9YWGV9bf8hqVLwjYmsBRLH7lUoVxNjRkFeXCnbTrgT7AgG/94VlHtvnhJkCfQ3SMsAjwR3</X509Certificate></X509Data></KeyInfo></ds:Signature><RoleDescriptor xsi:type="fed:ApplicationServiceType" protocolSupportEnumeration="http://docs.oasis-open.org/ws-sx/ws-trust/200512 http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/wsfed/federation/200706" ServiceDisplayName="win2012r2-ad-sso.qa1.immunet.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706"><KeyDescriptor use="encryption"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIDAjCCAeqgAwIBAgIQRra0nUbJhqFBNtFtXXUr4jANBgkqhkiG9w0BAQsFADA9MTswOQYDVQQDEzJBREZTIEVuY3J5cHRpb24gLSB3aW4yMDEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDZaFw0xNzEwMjExNDUwMDZaMD0xOzA5BgNVBAMTMkFERlMgRW5jcnlwdGlvbiAtIHdpbjIwMTJyMi1hZC1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdQOAO/jAtq6Kbdq87+APchTXGNKKr2H168l7iVu7bH/QEtQJg2a3XD5wXwbwAOsMHbIzdZfaEqn4coB6O2kvombJHSl1+ZSz5bm1JV79afPdvfcfw1RBN7WXt59di3WCCN2dUD6l9FJWjI61B83BSFPsJIXYewhPJRmFV+nbFAVPjLr5wQXWIXm2e5JSxKwpAU3kNuUOq57O1IKLXvsqTrb0j+LJyCEs8uum3Ex+K/BAzPn4P8Xq6kRmsHLUCivXyjMHmA1T/4S+HMvTRI08O6zYUYbpNDUztzuxYOjjcDRCyLxbWBJIDv2KVoXG5iGF61CFLhtKaWw8mBPF7OqpQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBDoG1K4XC/xPU3/0BZ0i6DqjzsRhelFB5U9Ufhen+qdx0IjgHwb06U0mUst53kPuLy/uABGUqBololQmctx+RB9A5+6b6Cm6ZQPNnxn2nopJNqT6VKKszsOnaphE6kVSFZUFOXQjezCIbyT22sBSa6lxG4wdun5vKThFh8tUDK1radniEKLrsdISgnVMl7KUYUlEDcy4hUOXR4DJkcbgryBgnP81pAUu01+0rfiLvJgpZnnhMRNYKrMC9X3jSdoSomh+SRV+Pld1j0QX3WambF38qd3AbQ/TXt8ytzh1NwIKkiRDGshkOwKItSbxEMLE2Qx1W4pal0e9J+An7+3eaB</X509Certificate></X509Data></KeyInfo></KeyDescriptor><fed:ClaimTypesRequested><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Given Name</auth:DisplayName><auth:Description>The given name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name</auth:DisplayName><auth:Description>The unique name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>UPN</auth:DisplayName><auth:Description>The user principal name (UPN) of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/CommonName" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Common Name</auth:DisplayName><auth:Description>The common name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/EmailAddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user when interoperating with AD FS 1.1 or AD FS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/Group" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group</auth:DisplayName><auth:Description>A group that the user is a member of</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/UPN" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x UPN</auth:DisplayName><auth:Description>The UPN of the user when interoperating with AD FS 1.1 or AD FS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Role</auth:DisplayName><auth:Description>A role that the user has</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Surname</auth:DisplayName><auth:Description>The surname of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>PPID</auth:DisplayName><auth:Description>The private identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name ID</auth:DisplayName><auth:Description>The SAML name identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication time stamp</auth:DisplayName><auth:Description>Used to display the time and date that the user was authenticated</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication method</auth:DisplayName><auth:Description>The method used to authenticate the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only group SID</auth:DisplayName><auth:Description>The deny-only group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary SID</auth:DisplayName><auth:Description>The deny-only primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary group SID</auth:DisplayName><auth:Description>The deny-only primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group SID</auth:DisplayName><auth:Description>The group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary group SID</auth:DisplayName><auth:Description>The primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary SID</auth:DisplayName><auth:Description>The primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Windows account name</auth:DisplayName><auth:Description>The domain account name of the user in the form of domain\user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Is Registered User</auth:DisplayName><auth:Description>User is registered to use this device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/identifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device Identifier</auth:DisplayName><auth:Description>Identifier of the device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/registrationid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device Registration Identifier</auth:DisplayName><auth:Description>Identifier for Device Registration</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/displayname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device Registration DisplayName</auth:DisplayName><auth:Description>Display name of Device Registration</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/ostype" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device OS type</auth:DisplayName><auth:Description>OS type of the device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/osversion" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device OS Version</auth:DisplayName><auth:Description>OS version of the device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/ismanaged" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Is Managed Device</auth:DisplayName><auth:Description>Device is managed by a management service</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Forwarded Client IP</auth:DisplayName><auth:Description>IP address of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client Application</auth:DisplayName><auth:Description>Type of the Client Application</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client User Agent</auth:DisplayName><auth:Description>Device type the client is using to access the application</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-ip" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client IP</auth:DisplayName><auth:Description>IP address of the client</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Endpoint Path</auth:DisplayName><auth:Description>Absolute Endpoint path which can be used to determine active versus passive clients</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Proxy</auth:DisplayName><auth:Description>DNS name of the federation server proxy that passed the request</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/relyingpartytrustid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Application Identifier</auth:DisplayName><auth:Description>Identifier for the Relying Party</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/applicationpolicy" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Application policies</auth:DisplayName><auth:Description>Application policies of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/authoritykeyidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authority Key Identifier</auth:DisplayName><auth:Description>The Authority Key Identifier extension of the certificate that signed an issued certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/basicconstraints" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Basic Constraint</auth:DisplayName><auth:Description>One of the basic constraints of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/eku" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Enhanced Key Usage</auth:DisplayName><auth:Description>Describes one of the enhanced key usages of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/issuer" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Issuer</auth:DisplayName><auth:Description>The name of the certificate authority that issued the X.509 certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/issuername" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Issuer Name</auth:DisplayName><auth:Description>The distinguished name of the certificate issuer</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/keyusage" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Key Usage</auth:DisplayName><auth:Description>One of the key usages of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/notafter" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Not After</auth:DisplayName><auth:Description>Date in local time after which a certificate is no longer valid</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/notbefore" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Not Before</auth:DisplayName><auth:Description>The date in local time on which a certificate becomes valid</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatepolicy" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Certificate Policies</auth:DisplayName><auth:Description>The policies under which the certificate has been issued</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Public Key</auth:DisplayName><auth:Description>Public Key of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/rawdata" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Certificate Raw Data</auth:DisplayName><auth:Description>The raw data of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/san" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject Alternative Name</auth:DisplayName><auth:Description>One of the alternative names of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/serialnumber" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Serial Number</auth:DisplayName><auth:Description>The serial number of a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/signaturealgorithm" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Signature Algorithm</auth:DisplayName><auth:Description>The algorithm used to create the signature of a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/subject" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject</auth:DisplayName><auth:Description>The subject from the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/subjectkeyidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject Key Identifier</auth:DisplayName><auth:Description>Describes the subject key identifier of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/subjectname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject Name</auth:DisplayName><auth:Description>The subject distinguished name from a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatetemplateinformation" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>V2 Template Name</auth:DisplayName><auth:Description>The name of the version 2 certificate template used when issuing or renewing a certificate. The extension is Microsoft specific.</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatetemplatename" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>V1 Template Name</auth:DisplayName><auth:Description>The name of the version 1 certificate template used when issuing or renewing a certificate. The extension is Microsoft specific.</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Thumbprint</auth:DisplayName><auth:Description>Thumbprint of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/x509version" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>X.509 Version</auth:DisplayName><auth:Description>The X.509 format version of a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Inside Corporate Network</auth:DisplayName><auth:Description>Used to indicate if a request originated inside corporate network</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/passwordexpirationtime" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Password Expiration Time</auth:DisplayName><auth:Description>Used to display the time when the password expires</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/passwordexpirationdays" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Password Expiration Days</auth:DisplayName><auth:Description>Used to display the number of days to password expiry</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/passwordchangeurl" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Update Password URL</auth:DisplayName><auth:Description>Used to display the web address of update password service</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/claims/authnmethodsreferences" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication Methods References</auth:DisplayName><auth:Description>Used to indicate all authentication methods used to authenticate the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/client-request-id" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client Request ID</auth:DisplayName><auth:Description>Identifier for a user session</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2013/11/alternateloginid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Alternate Login ID</auth:DisplayName><auth:Description>Alternate login ID of the user</auth:Description></auth:ClaimType></fed:ClaimTypesRequested><fed:TargetScopes><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/issuedtokenmixedasymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/issuedtokenmixedsymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust/13/issuedtokenmixedasymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust/13/issuedtokenmixedsymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>http://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust</Address></EndpointReference></fed:TargetScopes><fed:ApplicationServiceEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/issuedtokenmixedasymmetricbasic256</Address></EndpointReference></fed:ApplicationServiceEndpoint><fed:PassiveRequestorEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/</Address></EndpointReference></fed:PassiveRequestorEndpoint></RoleDescriptor><RoleDescriptor xsi:type="fed:SecurityTokenServiceType" protocolSupportEnumeration="http://docs.oasis-open.org/ws-sx/ws-trust/200512 http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/wsfed/federation/200706" ServiceDisplayName="win2012r2-ad-sso.qa1.immunet.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706"><KeyDescriptor use="signing"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC/DCCAeSgAwIBAgIQGobBMVmYz61AqNR/42A7NDANBgkqhkiG9w0BAQsFADA6MTgwNgYDVQQDEy9BREZTIFNpZ25pbmcgLSB3aW4yMDEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDRaFw0xNzEwMjExNDUwMDRaMDoxODA2BgNVBAMTL0FERlMgU2lnbmluZyAtIHdpbjIwMTJyMi1hZC1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuvYden1ksmpxGGvnZGotnRwFCTOYknY4Ol0utUIYTYs/MTOZQtilSRWnsCFhPzUjXATMTF6kKuiH7LIow2QkYxv8JFMrc9FIUvxRauYJ/GVmedT9gMF2nh62Evi9DExDTM5xRM3bmircPB3cwg6M1BixcbvQtlRj37IEXEApk5ZAY24jivElnsQWwCIV9tLL9Kv4pBCDvQiZl6Bjk4ZRulyKolQDd9+S0tXISo+OaxQ6WwXbOFDIekUBgNE6ivXrbPH1+CP+paDAMB6vpj5C+o2c3rP9X53Dk4ig0mjw4mbOqd6p/S1Bs3cpNJb1F8RK9SgSxPIV7SIvI8u2FD+XdwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAlgP26UQUnC/3V1+ZlpCAWO6727MFNtsT/mue6PVEiydtjPurGF7cA4ljfk6E5QEB2U/Hhc4gh0VsbGTAP0g7m/BXAohaxG9S/1ITSj+8B/4IjLwQjUdPDuGcWHuRgOK84LMFj+Ial6zQUP1G4K0eQRFOEV3PeQVbyGDWBzxadFapN7k+BdDNJ1DgTDuEmJPmGAjHMM8I/m/G/UGQfCwZcB19pFPqhv+sV21D8BQ038y6j5Z3YXiIThdJ7LVTbOuN3dTXglgXIy0nPTx9YWGV9bf8hqVLwjYmsBRLH7lUoVxNjRkFeXCnbTrgT7AgG/94VlHtvnhJkCfQ3SMsAjwR3</X509Certificate></X509Data></KeyInfo></KeyDescriptor><fed:TokenTypesOffered><fed:TokenType Uri="urn:oasis:names:tc:SAML:2.0:assertion"/><fed:TokenType Uri="urn:oasis:names:tc:SAML:1.0:assertion"/></fed:TokenTypesOffered><fed:ClaimTypesOffered><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Given Name</auth:DisplayName><auth:Description>The given name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name</auth:DisplayName><auth:Description>The unique name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>UPN</auth:DisplayName><auth:Description>The user principal name (UPN) of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/CommonName" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Common Name</auth:DisplayName><auth:Description>The common name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/EmailAddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user when interoperating with AD FS 1.1 or AD FS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/Group" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group</auth:DisplayName><auth:Description>A group that the user is a member of</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/UPN" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x UPN</auth:DisplayName><auth:Description>The UPN of the user when interoperating with AD FS 1.1 or AD FS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Role</auth:DisplayName><auth:Description>A role that the user has</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Surname</auth:DisplayName><auth:Description>The surname of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>PPID</auth:DisplayName><auth:Description>The private identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name ID</auth:DisplayName><auth:Description>The SAML name identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication time stamp</auth:DisplayName><auth:Description>Used to display the time and date that the user was authenticated</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication method</auth:DisplayName><auth:Description>The method used to authenticate the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only group SID</auth:DisplayName><auth:Description>The deny-only group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary SID</auth:DisplayName><auth:Description>The deny-only primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary group SID</auth:DisplayName><auth:Description>The deny-only primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group SID</auth:DisplayName><auth:Description>The group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary group SID</auth:DisplayName><auth:Description>The primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary SID</auth:DisplayName><auth:Description>The primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Windows account name</auth:DisplayName><auth:Description>The domain account name of the user in the form of domain\user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Is Registered User</auth:DisplayName><auth:Description>User is registered to use this device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/identifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device Identifier</auth:DisplayName><auth:Description>Identifier of the device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/registrationid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device Registration Identifier</auth:DisplayName><auth:Description>Identifier for Device Registration</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/displayname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device Registration DisplayName</auth:DisplayName><auth:Description>Display name of Device Registration</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/ostype" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device OS type</auth:DisplayName><auth:Description>OS type of the device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/osversion" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Device OS Version</auth:DisplayName><auth:Description>OS version of the device</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/devicecontext/claims/ismanaged" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Is Managed Device</auth:DisplayName><auth:Description>Device is managed by a management service</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Forwarded Client IP</auth:DisplayName><auth:Description>IP address of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client Application</auth:DisplayName><auth:Description>Type of the Client Application</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client User Agent</auth:DisplayName><auth:Description>Device type the client is using to access the application</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-ip" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client IP</auth:DisplayName><auth:Description>IP address of the client</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Endpoint Path</auth:DisplayName><auth:Description>Absolute Endpoint path which can be used to determine active versus passive clients</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Proxy</auth:DisplayName><auth:Description>DNS name of the federation server proxy that passed the request</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/relyingpartytrustid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Application Identifier</auth:DisplayName><auth:Description>Identifier for the Relying Party</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/applicationpolicy" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Application policies</auth:DisplayName><auth:Description>Application policies of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/authoritykeyidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authority Key Identifier</auth:DisplayName><auth:Description>The Authority Key Identifier extension of the certificate that signed an issued certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/basicconstraints" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Basic Constraint</auth:DisplayName><auth:Description>One of the basic constraints of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/eku" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Enhanced Key Usage</auth:DisplayName><auth:Description>Describes one of the enhanced key usages of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/issuer" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Issuer</auth:DisplayName><auth:Description>The name of the certificate authority that issued the X.509 certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/issuername" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Issuer Name</auth:DisplayName><auth:Description>The distinguished name of the certificate issuer</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/keyusage" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Key Usage</auth:DisplayName><auth:Description>One of the key usages of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/notafter" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Not After</auth:DisplayName><auth:Description>Date in local time after which a certificate is no longer valid</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/notbefore" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Not Before</auth:DisplayName><auth:Description>The date in local time on which a certificate becomes valid</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatepolicy" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Certificate Policies</auth:DisplayName><auth:Description>The policies under which the certificate has been issued</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Public Key</auth:DisplayName><auth:Description>Public Key of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/rawdata" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Certificate Raw Data</auth:DisplayName><auth:Description>The raw data of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/san" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject Alternative Name</auth:DisplayName><auth:Description>One of the alternative names of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/serialnumber" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Serial Number</auth:DisplayName><auth:Description>The serial number of a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/signaturealgorithm" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Signature Algorithm</auth:DisplayName><auth:Description>The algorithm used to create the signature of a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/subject" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject</auth:DisplayName><auth:Description>The subject from the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/subjectkeyidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject Key Identifier</auth:DisplayName><auth:Description>Describes the subject key identifier of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/subjectname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Subject Name</auth:DisplayName><auth:Description>The subject distinguished name from a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatetemplateinformation" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>V2 Template Name</auth:DisplayName><auth:Description>The name of the version 2 certificate template used when issuing or renewing a certificate. The extension is Microsoft specific.</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatetemplatename" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>V1 Template Name</auth:DisplayName><auth:Description>The name of the version 1 certificate template used when issuing or renewing a certificate. The extension is Microsoft specific.</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Thumbprint</auth:DisplayName><auth:Description>Thumbprint of the certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/12/certificatecontext/field/x509version" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>X.509 Version</auth:DisplayName><auth:Description>The X.509 format version of a certificate</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Inside Corporate Network</auth:DisplayName><auth:Description>Used to indicate if a request originated inside corporate network</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/passwordexpirationtime" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Password Expiration Time</auth:DisplayName><auth:Description>Used to display the time when the password expires</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/passwordexpirationdays" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Password Expiration Days</auth:DisplayName><auth:Description>Used to display the number of days to password expiry</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2012/01/passwordchangeurl" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Update Password URL</auth:DisplayName><auth:Description>Used to display the web address of update password service</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/claims/authnmethodsreferences" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication Methods References</auth:DisplayName><auth:Description>Used to indicate all authentication methods used to authenticate the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/2012/01/requestcontext/claims/client-request-id" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Client Request ID</auth:DisplayName><auth:Description>Identifier for a user session</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2013/11/alternateloginid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Alternate Login ID</auth:DisplayName><auth:Description>Alternate login ID of the user</auth:Description></auth:ClaimType></fed:ClaimTypesOffered><fed:SecurityTokenServiceEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/certificatemixed</Address><Metadata><Metadata xmlns="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"><wsx:MetadataSection Dialect="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns=""><wsx:MetadataReference><Address xmlns="http://www.w3.org/2005/08/addressing">https://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust/mex</Address></wsx:MetadataReference></wsx:MetadataSection></Metadata></Metadata></EndpointReference></fed:SecurityTokenServiceEndpoint><fed:PassiveRequestorEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/</Address></EndpointReference></fed:PassiveRequestorEndpoint></RoleDescriptor><SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><KeyDescriptor use="encryption"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIDAjCCAeqgAwIBAgIQRra0nUbJhqFBNtFtXXUr4jANBgkqhkiG9w0BAQsFADA9MTswOQYDVQQDEzJBREZTIEVuY3J5cHRpb24gLSB3aW4yMDEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDZaFw0xNzEwMjExNDUwMDZaMD0xOzA5BgNVBAMTMkFERlMgRW5jcnlwdGlvbiAtIHdpbjIwMTJyMi1hZC1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdQOAO/jAtq6Kbdq87+APchTXGNKKr2H168l7iVu7bH/QEtQJg2a3XD5wXwbwAOsMHbIzdZfaEqn4coB6O2kvombJHSl1+ZSz5bm1JV79afPdvfcfw1RBN7WXt59di3WCCN2dUD6l9FJWjI61B83BSFPsJIXYewhPJRmFV+nbFAVPjLr5wQXWIXm2e5JSxKwpAU3kNuUOq57O1IKLXvsqTrb0j+LJyCEs8uum3Ex+K/BAzPn4P8Xq6kRmsHLUCivXyjMHmA1T/4S+HMvTRI08O6zYUYbpNDUztzuxYOjjcDRCyLxbWBJIDv2KVoXG5iGF61CFLhtKaWw8mBPF7OqpQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBDoG1K4XC/xPU3/0BZ0i6DqjzsRhelFB5U9Ufhen+qdx0IjgHwb06U0mUst53kPuLy/uABGUqBololQmctx+RB9A5+6b6Cm6ZQPNnxn2nopJNqT6VKKszsOnaphE6kVSFZUFOXQjezCIbyT22sBSa6lxG4wdun5vKThFh8tUDK1radniEKLrsdISgnVMl7KUYUlEDcy4hUOXR4DJkcbgryBgnP81pAUu01+0rfiLvJgpZnnhMRNYKrMC9X3jSdoSomh+SRV+Pld1j0QX3WambF38qd3AbQ/TXt8ytzh1NwIKkiRDGshkOwKItSbxEMLE2Qx1W4pal0e9J+An7+3eaB</X509Certificate></X509Data></KeyInfo></KeyDescriptor><KeyDescriptor use="signing"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC/DCCAeSgAwIBAgIQGobBMVmYz61AqNR/42A7NDANBgkqhkiG9w0BAQsFADA6MTgwNgYDVQQDEy9BREZTIFNpZ25pbmcgLSB3aW4yMDEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDRaFw0xNzEwMjExNDUwMDRaMDoxODA2BgNVBAMTL0FERlMgU2lnbmluZyAtIHdpbjIwMTJyMi1hZC1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuvYden1ksmpxGGvnZGotnRwFCTOYknY4Ol0utUIYTYs/MTOZQtilSRWnsCFhPzUjXATMTF6kKuiH7LIow2QkYxv8JFMrc9FIUvxRauYJ/GVmedT9gMF2nh62Evi9DExDTM5xRM3bmircPB3cwg6M1BixcbvQtlRj37IEXEApk5ZAY24jivElnsQWwCIV9tLL9Kv4pBCDvQiZl6Bjk4ZRulyKolQDd9+S0tXISo+OaxQ6WwXbOFDIekUBgNE6ivXrbPH1+CP+paDAMB6vpj5C+o2c3rP9X53Dk4ig0mjw4mbOqd6p/S1Bs3cpNJb1F8RK9SgSxPIV7SIvI8u2FD+XdwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAlgP26UQUnC/3V1+ZlpCAWO6727MFNtsT/mue6PVEiydtjPurGF7cA4ljfk6E5QEB2U/Hhc4gh0VsbGTAP0g7m/BXAohaxG9S/1ITSj+8B/4IjLwQjUdPDuGcWHuRgOK84LMFj+Ial6zQUP1G4K0eQRFOEV3PeQVbyGDWBzxadFapN7k+BdDNJ1DgTDuEmJPmGAjHMM8I/m/G/UGQfCwZcB19pFPqhv+sV21D8BQ038y6j5Z3YXiIThdJ7LVTbOuN3dTXglgXIy0nPTx9YWGV9bf8hqVLwjYmsBRLH7lUoVxNjRkFeXCnbTrgT7AgG/94VlHtvnhJkCfQ3SMsAjwR3</X509Certificate></X509Data></KeyInfo></KeyDescriptor><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/"/><NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat><AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/" index="0" isDefault="true"/><AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/" index="1"/><AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/" index="2"/></SPSSODescriptor><IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><KeyDescriptor use="encryption"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIDAjCCAeqgAwIBAgIQRra0nUbJhqFBNtFtXXUr4jANBgkqhkiG9w0BAQsFADA9MTswOQYDVQQDEzJBREZTIEVuY3J5cHRpb24gLSB3aW4yMDEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDZaFw0xNzEwMjExNDUwMDZaMD0xOzA5BgNVBAMTMkFERlMgRW5jcnlwdGlvbiAtIHdpbjIwMTJyMi1hZC1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdQOAO/jAtq6Kbdq87+APchTXGNKKr2H168l7iVu7bH/QEtQJg2a3XD5wXwbwAOsMHbIzdZfaEqn4coB6O2kvombJHSl1+ZSz5bm1JV79afPdvfcfw1RBN7WXt59di3WCCN2dUD6l9FJWjI61B83BSFPsJIXYewhPJRmFV+nbFAVPjLr5wQXWIXm2e5JSxKwpAU3kNuUOq57O1IKLXvsqTrb0j+LJyCEs8uum3Ex+K/BAzPn4P8Xq6kRmsHLUCivXyjMHmA1T/4S+HMvTRI08O6zYUYbpNDUztzuxYOjjcDRCyLxbWBJIDv2KVoXG5iGF61CFLhtKaWw8mBPF7OqpQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBDoG1K4XC/xPU3/0BZ0i6DqjzsRhelFB5U9Ufhen+qdx0IjgHwb06U0mUst53kPuLy/uABGUqBololQmctx+RB9A5+6b6Cm6ZQPNnxn2nopJNqT6VKKszsOnaphE6kVSFZUFOXQjezCIbyT22sBSa6lxG4wdun5vKThFh8tUDK1radniEKLrsdISgnVMl7KUYUlEDcy4hUOXR4DJkcbgryBgnP81pAUu01+0rfiLvJgpZnnhMRNYKrMC9X3jSdoSomh+SRV+Pld1j0QX3WambF38qd3AbQ/TXt8ytzh1NwIKkiRDGshkOwKItSbxEMLE2Qx1W4pal0e9J+An7+3eaB</X509Certificate></X509Data></KeyInfo></KeyDescriptor><KeyDescriptor use="signing"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC/DCCAeSgAwIBAgIQGobBMVmYz61AqNR/42A7NDANBgkqhkiG9w0BAQsFADA6MTgwNgYDVQQDEy9BREZTIFNpZ25pbmcgLSB3aW4yMDEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDRaFw0xNzEwMjExNDUwMDRaMDoxODA2BgNVBAMTL0FERlMgU2lnbmluZyAtIHdpbjIwMTJyMi1hZC1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuvYden1ksmpxGGvnZGotnRwFCTOYknY4Ol0utUIYTYs/MTOZQtilSRWnsCFhPzUjXATMTF6kKuiH7LIow2QkYxv8JFMrc9FIUvxRauYJ/GVmedT9gMF2nh62Evi9DExDTM5xRM3bmircPB3cwg6M1BixcbvQtlRj37IEXEApk5ZAY24jivElnsQWwCIV9tLL9Kv4pBCDvQiZl6Bjk4ZRulyKolQDd9+S0tXISo+OaxQ6WwXbOFDIekUBgNE6ivXrbPH1+CP+paDAMB6vpj5C+o2c3rP9X53Dk4ig0mjw4mbOqd6p/S1Bs3cpNJb1F8RK9SgSxPIV7SIvI8u2FD+XdwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAlgP26UQUnC/3V1+ZlpCAWO6727MFNtsT/mue6PVEiydtjPurGF7cA4ljfk6E5QEB2U/Hhc4gh0VsbGTAP0g7m/BXAohaxG9S/1ITSj+8B/4IjLwQjUdPDuGcWHuRgOK84LMFj+Ial6zQUP1G4K0eQRFOEV3PeQVbyGDWBzxadFapN7k+BdDNJ1DgTDuEmJPmGAjHMM8I/m/G/UGQfCwZcB19pFPqhv+sV21D8BQ038y6j5Z3YXiIThdJ7LVTbOuN3dTXglgXIy0nPTx9YWGV9bf8hqVLwjYmsBRLH7lUoVxNjRkFeXCnbTrgT7AgG/94VlHtvnhJkCfQ3SMsAjwR3</X509Certificate></X509Data></KeyInfo></KeyDescriptor><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/"/><NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat><SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/"/><SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="E-Mail Address" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Given Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="UPN" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/CommonName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Common Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/EmailAddress" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="AD FS 1.x E-Mail Address" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/Group" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Group" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/UPN" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="AD FS 1.x UPN" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Role" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Surname" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="PPID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Name ID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Authentication time stamp" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Authentication method" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Deny only group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Deny only primary SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Deny only primary group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Primary group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Primary SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Windows account name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Is Registered User" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/devicecontext/claims/identifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Device Identifier" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/devicecontext/claims/registrationid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Device Registration Identifier" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/devicecontext/claims/displayname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Device Registration DisplayName" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/devicecontext/claims/ostype" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Device OS type" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/devicecontext/claims/osversion" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Device OS Version" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/devicecontext/claims/ismanaged" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Is Managed Device" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Forwarded Client IP" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Client Application" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Client User Agent" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-ip" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Client IP" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Endpoint Path" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Proxy" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/relyingpartytrustid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Application Identifier" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/applicationpolicy" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Application policies" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/authoritykeyidentifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Authority Key Identifier" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/basicconstraints" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Basic Constraint" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/eku" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Enhanced Key Usage" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/issuer" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Issuer" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/issuername" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Issuer Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/keyusage" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Key Usage" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/notafter" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Not After" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/notbefore" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Not Before" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatepolicy" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Certificate Policies" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Public Key" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/rawdata" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Certificate Raw Data" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/san" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Subject Alternative Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/serialnumber" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Serial Number" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/signaturealgorithm" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Signature Algorithm" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/subject" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Subject" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/subjectkeyidentifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Subject Key Identifier" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/subjectname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Subject Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatetemplateinformation" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="V2 Template Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/extension/certificatetemplatename" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="V1 Template Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Thumbprint" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/12/certificatecontext/field/x509version" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="X.509 Version" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Inside Corporate Network" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2012/01/passwordexpirationtime" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Password Expiration Time" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2012/01/passwordexpirationdays" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Password Expiration Days" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2012/01/passwordchangeurl" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Update Password URL" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/claims/authnmethodsreferences" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Authentication Methods References" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/2012/01/requestcontext/claims/client-request-id" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Client Request ID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2013/11/alternateloginid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Alternate Login ID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/></IDPSSODescriptor><ContactPerson contactType="support"><GivenName>Cathy</GivenName><SurName>Abraham</SurName><EmailAddress>catabrah@cisco.com</EmailAddress><TelephoneNumber/></ContactPerson></EntityDescriptor>
\ No newline at end of file
spec/fixtures/metadata/ad_with_logout.xml
@@ -0,0 +1,1 @@
+<EntityDescriptor ID="_3f632fb5-0cff-463e-b158-7199fe0cad68" entityID="https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust" xmlns="urn:oasis:names:tc:SAML:2.0:metadata"><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><ds:Reference URI="#_3f632fb5-0cff-463e-b158-7199fe0cad68"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><ds:DigestValue>de3Vuh/NKHihVAwJO9v40Dija1BPqn85JC2hCKVr/qw=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>crVFOJkxK+4o4R+zyqH/YW0dUgYO8DKYBlxgvdkBkKZlzjbWLNxM+urJs2pqpMMAnOh4gB61JTW/xT+MXOOGLtU6/98SRQaGWvDeZ4QzD/ijnw8nlBa4IS7lqrRuZBMBXPg206yDYWwZQCq3t/ZlcNm56G7GiNGShdijfIXXlVvUGi5eHxi47ojJYlvOZGSWgZanSB+gnpgRK3Qhu3cU6RXFBnp8qJQhc+Jioq51HbP7bFA6b3djVHWZD3E27HQmDbuUIB1Mwv9AOid8Z/zGQVNXZ8U8CZdfqK7dXz4PUXAjO/5GX/Iwnx3dhOWrfjooVDMXVpxwyn6ETLiQNI/Lhg==</ds:SignatureValue><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC9DCCAdygAwIBAgIQPUYupdctSKhFxrjyD5572DANBgkqhkiG9w0BAQsFADA2MTQwMgYDVQQDEytBREZTIFNpZ25pbmcgLSBXSU4tOE5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMFoXDTE3MTAwNjIwMzUyMFowNjE0MDIGA1UEAxMrQURGUyBTaWduaW5nIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKBy5neD7sTZ1LJ4ah5tBOYYXvLaTslgyCizqx7vRBsBi9Se+a2Wvo/0KuLe2LtTo4TGA9j0j/1fS4Je3zGDE3DJn4eodRH34XRIerHuTB8EzjarTE6uxWzpaLhnrzbfFi/BDVX7flf3YDavtmqWJGaKcI155zVl9+Iyp7YOXLpmZumsrVi5L8Xcb79C99T/ErMKS7tXLvBvPslKABqm7+09Btdu/JCpKpEL+dxKaGj2VRjz1nFgXZPZJ+37nPkThjt3IvAitYzQCIme926AXBoMnS09yG5QN9Y+i8Fk+2YbSkxQTf+6xnxk51NytIzF8VRumNjZu2moOp5THp+Um2UCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEADzxFG5vtFjnz8SBicenB11wODN6+MP3p+WZGy69eJcig/mq8C4OnOSY9CnQNVhEVgEL8RRmx9TQ3CWrX4QACCQOS9RDlULdczGNnN3hqkj4m/AtyFisbT1f0U+fBK1W3rEo1IqL0b189O7dPDFDr4lmZq7rc9IkbkPEoIR+saC9krUkEf7wBL0pA7hB591Hk5pxx58L4V5qYADoPinOfHM7/7A2N3TC+L21HerIDSzIHdVNb5dQp0BwU+E7A/6DqRtw74SyjPVIoPC/2HDwwhuDmV0/ve5ADSl9yYh06hdOrGg0khlP65N38BbZGYMRaul/EeIZTYNbzSVfBNORtaQ==</X509Certificate></X509Data></KeyInfo></ds:Signature><RoleDescriptor xsi:type="fed:ApplicationServiceType" protocolSupportEnumeration="http://docs.oasis-open.org/ws-sx/ws-trust/200512 http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/wsfed/federation/200706" ServiceDisplayName="win2008r2-ad-sso.qa1.immunet.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706"><KeyDescriptor use="encryption"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC+jCCAeKgAwIBAgIQHjTznGekMIhCsGKTYQfDSjANBgkqhkiG9w0BAQsFADA5MTcwNQYDVQQDEy5BREZTIEVuY3J5cHRpb24gLSBXSU4tOE5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMVoXDTE3MTAwNjIwMzUyMVowOTE3MDUGA1UEAxMuQURGUyBFbmNyeXB0aW9uIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKx9AQ55jyNebZ/n5/WRx8FTQHtEOUUFfoaO6MogC79rsDBdnFrQZh718vTFIV69kRNI9olBlIShcq9OJ2ZIyA1l1o4aBE5VqUpDq+ReNnlsRmwRStGrwibmfPTQQmwcrO6EqjdIcANYHpOpcsqrP7+s7k1kKGE73nZCCzjlcA63xTJHhC1VmxogHnWOutXYVr1KHwGuWZIF6ElfoGorOmaVq7IOrkAwtwHZXwGz7iD9AWiCZF9c9U+aroPCp0enUgZ4XFk59muYl8GReiRIL/D2Lk/WB6Bz5/5qyJlCcB+BJPMYCfLmllyzN17S2L6kCGEpqL9BhAXf5ZAJDTN1wJsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD2frFw+c35baIX1b1daIU+9+o03pzJSLnCdMK0Fy/HAsHQGP8muKGCXdfFCy/cVZ8NxCXX9TsvtiXHyfasQ+H+RJVrer5zRhsQUn1mxP6vNGshpY6cJqkXy1jrZA+af53P3ntUi4Ygu1ofzmleULHmK8m6zAGms1GT6ae82OoAfo7YOYwK5/QWWvOla4uF06fw8mfMRkKFEn/CFU1LAxaJ39tO+8/01VQe+bQaBGH7dmLhfkeMsi+oo3t+uQYdPuPP+WhpsVSEFqgMuzeoo2ZVbfvJUuQNiKvEx97VRe1CAhDasTIlkmN4Fj2Dxkia7nC1esYZd7YQ2LoeDGjyO7oA==</X509Certificate></X509Data></KeyInfo></KeyDescriptor><fed:ClaimTypesRequested><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Given Name</auth:DisplayName><auth:Description>The given name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name</auth:DisplayName><auth:Description>The unique name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>UPN</auth:DisplayName><auth:Description>The user principal name (UPN) of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/CommonName" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Common Name</auth:DisplayName><auth:Description>The common name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/EmailAddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user when interoperating with AD FS 1.1 or ADFS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/Group" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group</auth:DisplayName><auth:Description>A group that the user is a member of</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/UPN" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x UPN</auth:DisplayName><auth:Description>The UPN of the user when interoperating with AD FS 1.1 or ADFS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Role</auth:DisplayName><auth:Description>A role that the user has</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Surname</auth:DisplayName><auth:Description>The surname of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>PPID</auth:DisplayName><auth:Description>The private identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name ID</auth:DisplayName><auth:Description>The SAML name identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication time stamp</auth:DisplayName><auth:Description>Used to display the time and date that the user was authenticated</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication method</auth:DisplayName><auth:Description>The method used to authenticate the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only group SID</auth:DisplayName><auth:Description>The deny-only group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary SID</auth:DisplayName><auth:Description>The deny-only primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary group SID</auth:DisplayName><auth:Description>The deny-only primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group SID</auth:DisplayName><auth:Description>The group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary group SID</auth:DisplayName><auth:Description>The primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary SID</auth:DisplayName><auth:Description>The primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Windows account name</auth:DisplayName><auth:Description>The domain account name of the user in the form of &lt;domain&gt;\&lt;user&gt;</auth:Description></auth:ClaimType></fed:ClaimTypesRequested><fed:TargetScopes><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/issuedtokenmixedasymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/issuedtokenmixedsymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/13/issuedtokenmixedasymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/13/issuedtokenmixedsymmetricbasic256</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/</Address></EndpointReference><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust</Address></EndpointReference></fed:TargetScopes><fed:ApplicationServiceEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/issuedtokenmixedasymmetricbasic256</Address></EndpointReference></fed:ApplicationServiceEndpoint><fed:PassiveRequestorEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/</Address></EndpointReference></fed:PassiveRequestorEndpoint></RoleDescriptor><RoleDescriptor xsi:type="fed:SecurityTokenServiceType" protocolSupportEnumeration="http://docs.oasis-open.org/ws-sx/ws-trust/200512 http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/wsfed/federation/200706" ServiceDisplayName="win2008r2-ad-sso.qa1.immunet.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706"><KeyDescriptor use="signing"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC9DCCAdygAwIBAgIQPUYupdctSKhFxrjyD5572DANBgkqhkiG9w0BAQsFADA2MTQwMgYDVQQDEytBREZTIFNpZ25pbmcgLSBXSU4tOE5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMFoXDTE3MTAwNjIwMzUyMFowNjE0MDIGA1UEAxMrQURGUyBTaWduaW5nIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKBy5neD7sTZ1LJ4ah5tBOYYXvLaTslgyCizqx7vRBsBi9Se+a2Wvo/0KuLe2LtTo4TGA9j0j/1fS4Je3zGDE3DJn4eodRH34XRIerHuTB8EzjarTE6uxWzpaLhnrzbfFi/BDVX7flf3YDavtmqWJGaKcI155zVl9+Iyp7YOXLpmZumsrVi5L8Xcb79C99T/ErMKS7tXLvBvPslKABqm7+09Btdu/JCpKpEL+dxKaGj2VRjz1nFgXZPZJ+37nPkThjt3IvAitYzQCIme926AXBoMnS09yG5QN9Y+i8Fk+2YbSkxQTf+6xnxk51NytIzF8VRumNjZu2moOp5THp+Um2UCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEADzxFG5vtFjnz8SBicenB11wODN6+MP3p+WZGy69eJcig/mq8C4OnOSY9CnQNVhEVgEL8RRmx9TQ3CWrX4QACCQOS9RDlULdczGNnN3hqkj4m/AtyFisbT1f0U+fBK1W3rEo1IqL0b189O7dPDFDr4lmZq7rc9IkbkPEoIR+saC9krUkEf7wBL0pA7hB591Hk5pxx58L4V5qYADoPinOfHM7/7A2N3TC+L21HerIDSzIHdVNb5dQp0BwU+E7A/6DqRtw74SyjPVIoPC/2HDwwhuDmV0/ve5ADSl9yYh06hdOrGg0khlP65N38BbZGYMRaul/EeIZTYNbzSVfBNORtaQ==</X509Certificate></X509Data></KeyInfo></KeyDescriptor><fed:TokenTypesOffered><fed:TokenType Uri="urn:oasis:names:tc:SAML:2.0:assertion"/><fed:TokenType Uri="urn:oasis:names:tc:SAML:1.0:assertion"/></fed:TokenTypesOffered><fed:ClaimTypesOffered><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Given Name</auth:DisplayName><auth:Description>The given name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name</auth:DisplayName><auth:Description>The unique name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>UPN</auth:DisplayName><auth:Description>The user principal name (UPN) of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/CommonName" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Common Name</auth:DisplayName><auth:Description>The common name of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/EmailAddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x E-Mail Address</auth:DisplayName><auth:Description>The e-mail address of the user when interoperating with AD FS 1.1 or ADFS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/Group" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group</auth:DisplayName><auth:Description>A group that the user is a member of</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/claims/UPN" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>AD FS 1.x UPN</auth:DisplayName><auth:Description>The UPN of the user when interoperating with AD FS 1.1 or ADFS 1.0</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Role</auth:DisplayName><auth:Description>A role that the user has</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Surname</auth:DisplayName><auth:Description>The surname of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>PPID</auth:DisplayName><auth:Description>The private identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Name ID</auth:DisplayName><auth:Description>The SAML name identifier of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication time stamp</auth:DisplayName><auth:Description>Used to display the time and date that the user was authenticated</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Authentication method</auth:DisplayName><auth:Description>The method used to authenticate the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only group SID</auth:DisplayName><auth:Description>The deny-only group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary SID</auth:DisplayName><auth:Description>The deny-only primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Deny only primary group SID</auth:DisplayName><auth:Description>The deny-only primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Group SID</auth:DisplayName><auth:Description>The group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary group SID</auth:DisplayName><auth:Description>The primary group SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Primary SID</auth:DisplayName><auth:Description>The primary SID of the user</auth:Description></auth:ClaimType><auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"><auth:DisplayName>Windows account name</auth:DisplayName><auth:Description>The domain account name of the user in the form of &lt;domain&gt;\&lt;user&gt;</auth:Description></auth:ClaimType></fed:ClaimTypesOffered><fed:SecurityTokenServiceEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/2005/certificatemixed</Address><Metadata><Metadata xmlns="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"><wsx:MetadataSection Dialect="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns=""><wsx:MetadataReference><Address xmlns="http://www.w3.org/2005/08/addressing">https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/mex</Address></wsx:MetadataReference></wsx:MetadataSection></Metadata></Metadata></EndpointReference></fed:SecurityTokenServiceEndpoint><fed:PassiveRequestorEndpoint><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/</Address></EndpointReference></fed:PassiveRequestorEndpoint></RoleDescriptor><SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><KeyDescriptor use="encryption"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC+jCCAeKgAwIBAgIQHjTznGekMIhCsGKTYQfDSjANBgkqhkiG9w0BAQsFADA5MTcwNQYDVQQDEy5BREZTIEVuY3J5cHRpb24gLSBXSU4tOE5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMVoXDTE3MTAwNjIwMzUyMVowOTE3MDUGA1UEAxMuQURGUyBFbmNyeXB0aW9uIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKx9AQ55jyNebZ/n5/WRx8FTQHtEOUUFfoaO6MogC79rsDBdnFrQZh718vTFIV69kRNI9olBlIShcq9OJ2ZIyA1l1o4aBE5VqUpDq+ReNnlsRmwRStGrwibmfPTQQmwcrO6EqjdIcANYHpOpcsqrP7+s7k1kKGE73nZCCzjlcA63xTJHhC1VmxogHnWOutXYVr1KHwGuWZIF6ElfoGorOmaVq7IOrkAwtwHZXwGz7iD9AWiCZF9c9U+aroPCp0enUgZ4XFk59muYl8GReiRIL/D2Lk/WB6Bz5/5qyJlCcB+BJPMYCfLmllyzN17S2L6kCGEpqL9BhAXf5ZAJDTN1wJsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD2frFw+c35baIX1b1daIU+9+o03pzJSLnCdMK0Fy/HAsHQGP8muKGCXdfFCy/cVZ8NxCXX9TsvtiXHyfasQ+H+RJVrer5zRhsQUn1mxP6vNGshpY6cJqkXy1jrZA+af53P3ntUi4Ygu1ofzmleULHmK8m6zAGms1GT6ae82OoAfo7YOYwK5/QWWvOla4uF06fw8mfMRkKFEn/CFU1LAxaJ39tO+8/01VQe+bQaBGH7dmLhfkeMsi+oo3t+uQYdPuPP+WhpsVSEFqgMuzeoo2ZVbfvJUuQNiKvEx97VRe1CAhDasTIlkmN4Fj2Dxkia7nC1esYZd7YQ2LoeDGjyO7oA==</X509Certificate></X509Data></KeyInfo></KeyDescriptor><KeyDescriptor use="signing"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC9DCCAdygAwIBAgIQPUYupdctSKhFxrjyD5572DANBgkqhkiG9w0BAQsFADA2MTQwMgYDVQQDEytBREZTIFNpZ25pbmcgLSBXSU4tOE5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMFoXDTE3MTAwNjIwMzUyMFowNjE0MDIGA1UEAxMrQURGUyBTaWduaW5nIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKBy5neD7sTZ1LJ4ah5tBOYYXvLaTslgyCizqx7vRBsBi9Se+a2Wvo/0KuLe2LtTo4TGA9j0j/1fS4Je3zGDE3DJn4eodRH34XRIerHuTB8EzjarTE6uxWzpaLhnrzbfFi/BDVX7flf3YDavtmqWJGaKcI155zVl9+Iyp7YOXLpmZumsrVi5L8Xcb79C99T/ErMKS7tXLvBvPslKABqm7+09Btdu/JCpKpEL+dxKaGj2VRjz1nFgXZPZJ+37nPkThjt3IvAitYzQCIme926AXBoMnS09yG5QN9Y+i8Fk+2YbSkxQTf+6xnxk51NytIzF8VRumNjZu2moOp5THp+Um2UCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEADzxFG5vtFjnz8SBicenB11wODN6+MP3p+WZGy69eJcig/mq8C4OnOSY9CnQNVhEVgEL8RRmx9TQ3CWrX4QACCQOS9RDlULdczGNnN3hqkj4m/AtyFisbT1f0U+fBK1W3rEo1IqL0b189O7dPDFDr4lmZq7rc9IkbkPEoIR+saC9krUkEf7wBL0pA7hB591Hk5pxx58L4V5qYADoPinOfHM7/7A2N3TC+L21HerIDSzIHdVNb5dQp0BwU+E7A/6DqRtw74SyjPVIoPC/2HDwwhuDmV0/ve5ADSl9yYh06hdOrGg0khlP65N38BbZGYMRaul/EeIZTYNbzSVfBNORtaQ==</X509Certificate></X509Data></KeyInfo></KeyDescriptor><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/"/><NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat><AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/" index="0" isDefault="true"/><AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/" index="1"/><AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/" index="2"/></SPSSODescriptor><IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><KeyDescriptor use="encryption"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC+jCCAeKgAwIBAgIQHjTznGekMIhCsGKTYQfDSjANBgkqhkiG9w0BAQsFADA5MTcwNQYDVQQDEy5BREZTIEVuY3J5cHRpb24gLSBXSU4tOE5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMVoXDTE3MTAwNjIwMzUyMVowOTE3MDUGA1UEAxMuQURGUyBFbmNyeXB0aW9uIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKx9AQ55jyNebZ/n5/WRx8FTQHtEOUUFfoaO6MogC79rsDBdnFrQZh718vTFIV69kRNI9olBlIShcq9OJ2ZIyA1l1o4aBE5VqUpDq+ReNnlsRmwRStGrwibmfPTQQmwcrO6EqjdIcANYHpOpcsqrP7+s7k1kKGE73nZCCzjlcA63xTJHhC1VmxogHnWOutXYVr1KHwGuWZIF6ElfoGorOmaVq7IOrkAwtwHZXwGz7iD9AWiCZF9c9U+aroPCp0enUgZ4XFk59muYl8GReiRIL/D2Lk/WB6Bz5/5qyJlCcB+BJPMYCfLmllyzN17S2L6kCGEpqL9BhAXf5ZAJDTN1wJsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD2frFw+c35baIX1b1daIU+9+o03pzJSLnCdMK0Fy/HAsHQGP8muKGCXdfFCy/cVZ8NxCXX9TsvtiXHyfasQ+H+RJVrer5zRhsQUn1mxP6vNGshpY6cJqkXy1jrZA+af53P3ntUi4Ygu1ofzmleULHmK8m6zAGms1GT6ae82OoAfo7YOYwK5/QWWvOla4uF06fw8mfMRkKFEn/CFU1LAxaJ39tO+8/01VQe+bQaBGH7dmLhfkeMsi+oo3t+uQYdPuPP+WhpsVSEFqgMuzeoo2ZVbfvJUuQNiKvEx97VRe1CAhDasTIlkmN4Fj2Dxkia7nC1esYZd7YQ2LoeDGjyO7oA==</X509Certificate></X509Data></KeyInfo></KeyDescriptor><KeyDescriptor use="signing"><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>MIIC9DCCAdygAwIBAgIQPUYupdctSKhFxrjyD5572DANBgkqhkiG9w0BAQsFADA2MTQwMgYDVQQDEytBREZTIFNpZ25pbmcgLSBXSU4tOE5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMFoXDTE3MTAwNjIwMzUyMFowNjE0MDIGA1UEAxMrQURGUyBTaWduaW5nIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKBy5neD7sTZ1LJ4ah5tBOYYXvLaTslgyCizqx7vRBsBi9Se+a2Wvo/0KuLe2LtTo4TGA9j0j/1fS4Je3zGDE3DJn4eodRH34XRIerHuTB8EzjarTE6uxWzpaLhnrzbfFi/BDVX7flf3YDavtmqWJGaKcI155zVl9+Iyp7YOXLpmZumsrVi5L8Xcb79C99T/ErMKS7tXLvBvPslKABqm7+09Btdu/JCpKpEL+dxKaGj2VRjz1nFgXZPZJ+37nPkThjt3IvAitYzQCIme926AXBoMnS09yG5QN9Y+i8Fk+2YbSkxQTf+6xnxk51NytIzF8VRumNjZu2moOp5THp+Um2UCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEADzxFG5vtFjnz8SBicenB11wODN6+MP3p+WZGy69eJcig/mq8C4OnOSY9CnQNVhEVgEL8RRmx9TQ3CWrX4QACCQOS9RDlULdczGNnN3hqkj4m/AtyFisbT1f0U+fBK1W3rEo1IqL0b189O7dPDFDr4lmZq7rc9IkbkPEoIR+saC9krUkEf7wBL0pA7hB591Hk5pxx58L4V5qYADoPinOfHM7/7A2N3TC+L21HerIDSzIHdVNb5dQp0BwU+E7A/6DqRtw74SyjPVIoPC/2HDwwhuDmV0/ve5ADSl9yYh06hdOrGg0khlP65N38BbZGYMRaul/EeIZTYNbzSVfBNORtaQ==</X509Certificate></X509Data></KeyInfo></KeyDescriptor><ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust/artifactresolution" index="0"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/"/><NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat><NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat><SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/"/><SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="E-Mail Address" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Given Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="UPN" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/CommonName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Common Name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/EmailAddress" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="AD FS 1.x E-Mail Address" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/Group" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Group" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/claims/UPN" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="AD FS 1.x UPN" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Role" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Surname" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="PPID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Name ID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Authentication time stamp" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Authentication method" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Deny only group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Deny only primary SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Deny only primary group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Primary group SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Primary SID" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/><Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Windows account name" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"/></IDPSSODescriptor><ContactPerson contactType="support"/></EntityDescriptor>
\ No newline at end of file
spec/fixtures/metadata/okta.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://www.okta.com/exk8dx3jilpueVzpU0h7">
+  <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+    <md:KeyDescriptor use="signing">
+      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+        <ds:X509Data>
+          <ds:X509Certificate>
+            MIIDpDCCAoygAwIBAgIGAVea2yXEMA0GCSqGSIb3DQEBBQUAMIGSMQswCQYDVQQGEwJVUzETMBEG
+            A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU
+            MBIGA1UECwwLU1NPUHJvdmlkZXIxEzARBgNVBAMMCmRldi05ODk4NDgxHDAaBgkqhkiG9w0BCQEW
+            DWluZm9Ab2t0YS5jb20wHhcNMTYxMDA2MTYzNjE1WhcNMjYxMDA2MTYzNzE1WjCBkjELMAkGA1UE
+            BhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDTALBgNV
+            BAoMBE9rdGExFDASBgNVBAsMC1NTT1Byb3ZpZGVyMRMwEQYDVQQDDApkZXYtOTg5ODQ4MRwwGgYJ
+            KoZIhvcNAQkBFg1pbmZvQG9rdGEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+            j3XqgEw1CcsnHFYA8Sol/441SEFaf3gpDusagKBTKlLEfclMMmpP6VzjtndohUzyHFfDtRSjkvDj
+            4xMTPU5/eZ5jMPQpY1+y0ikVDVdxVPudZ0BQZeSWr2oharrGRBH/mdTBMv4KygXYy3qj8KRnuQrr
+            m0KRDwWKJh58/969sCWQPp2lThaBclf74ghOPg3JCcDSoZvH4yU8Y43S4Yg9q+On3sE/ZrQE4JgE
+            lbgPf1kgo30wx9IWUv5aUtIcHf2EegaB2N93y/rs2AzCWZXfeNCtRrGDY5i3vRntu7Bz2IV48g9n
+            1gFidCFQVckrc8gtD85sTPovZMwQJOlpHA5x/QIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAdq/K0
+            D+hwHk+xaF/oB3qCtPDJWAY+izt4l0NHk4LPXhu1Kb+ikv1cfMQK7ltuSzg0EhXa32Hz+8iJctRR
+            VmkSxQaH/b0u37m6bob8AJtUe1sKVrSibL7ovMBJVJ6irre5MQ/SDgwKr4WZNl8f5Dgk0v0q2APl
+            KB1P9zGlZndWspsfxua8zvm7mBcfF0X+/5ar2wwHNyeaTChweyOhXFJnDRe3AzxFEZUsPV76ftyu
+            ZTNzF9hE0XP7BKbeuW5Im18jejMISODj/ayGgQbq93zHAf9xZnwrxjeGmFRDP48rVaCHpi/VX2AC
+            KD+eYRgY/kFJc/d0diiGR17H6XLVMWZ7
+          </ds:X509Certificate>
+        </ds:X509Data>
+      </ds:KeyInfo>
+    </md:KeyDescriptor>
+    <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
+    <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
+    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://dev-989848.oktapreview.com/app/ciscodev843126_portal_1/exk8dx3jilpueVzpU0h7/sso/saml"/>
+    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-989848.oktapreview.com/app/ciscodev843126_portal_1/exk8dx3jilpueVzpU0h7/sso/saml"/>
+  </md:IDPSSODescriptor>
+</md:EntityDescriptor>
spec/saml/identity_provider_metadata_spec.rb
@@ -38,4 +38,210 @@ RSpec.describe Saml::Kit::IdentityProviderMetadata do
       expect(result['EntityDescriptor']['ContactPerson']['Company']).to eql("mailto:#{email}")
     end
   end
+
+  subject { described_class.new(raw_metadata) }
+
+  context "okta metadata" do
+    let(:raw_metadata) { IO.read("spec/fixtures/metadata/okta.xml") }
+    let(:certificate) do
+      Hash.from_xml(raw_metadata)['EntityDescriptor']['IDPSSODescriptor']['KeyDescriptor']['KeyInfo']['X509Data']['X509Certificate']
+    end
+
+    it { expect(subject.entity_id).to eql("http://www.okta.com/exk8dx3jilpueVzpU0h7") }
+    it { expect(subject.name_id_format).to eql("urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress") }
+    it do
+      expect(subject.single_sign_on_services).to match_array([
+        { binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", location: "https://dev-989848.oktapreview.com/app/ciscodev843126_portal_1/exk8dx3jilpueVzpU0h7/sso/saml" },
+        { binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", location: "https://dev-989848.oktapreview.com/app/ciscodev843126_portal_1/exk8dx3jilpueVzpU0h7/sso/saml" },
+      ])
+    end
+    it { expect(subject.single_logout_services).to be_empty }
+    it do
+      expect(subject.certificates).to match_array([
+        {
+          use: "signing",
+          value: Base64.decode64(certificate),
+          fingerprint: "9F:74:13:3B:BC:5A:7B:8B:2D:4F:8B:EF:1E:88:EB:D1:AE:BC:19:BF:CA:19:C6:2F:0F:4B:31:1D:68:98:B0:1B",
+        }
+      ])
+    end
+    it { expect(subject.attributes).to be_empty }
+  end
+
+  context "active directory metadata" do
+    let(:raw_metadata) { IO.read("spec/fixtures/metadata/ad_with_logout.xml") }
+    let(:signing_certificate) do
+      <<-EOS
+MIIC9DCCAdygAwIBAgIQPUYupdctSKhFxrjyD5572DANBgkqhkiG9w0BAQsFADA2MTQwMgYDVQQDEytBREZTIFNpZ25pbmcgLSBXSU4tOE5QU
+EcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMFoXDTE3MTAwNjIwMzUyMFowNjE0MDIGA1UEAxMrQURGUyBTaWduaW5nIC0gV0lOLThOUFBHMDBOQUJSLjJrOHNzb
+y5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKBy5neD7sTZ1LJ4ah5tBOYYXvLaTslgyCizqx7vRBsBi9Se+a2Wvo/0KuLe2LtTo4TGA9j0j/1fS4Je3zGDE
+3DJn4eodRH34XRIerHuTB8EzjarTE6uxWzpaLhnrzbfFi/BDVX7flf3YDavtmqWJGaKcI155zVl9+Iyp7YOXLpmZumsrVi5L8Xcb79C99T/ErMKS7tXLvBvPslKABqm7+09Btdu/
+JCpKpEL+dxKaGj2VRjz1nFgXZPZJ+37nPkThjt3IvAitYzQCIme926AXBoMnS09yG5QN9Y+i8Fk+2YbSkxQTf+6xnxk51NytIzF8VRumNjZu2moOp5THp+Um2UCAwEAATANBgkqh
+kiG9w0BAQsFAAOCAQEADzxFG5vtFjnz8SBicenB11wODN6+MP3p+WZGy69eJcig/mq8C4OnOSY9CnQNVhEVgEL8RRmx9TQ3CWrX4QACCQOS9RDlULdczGNnN3hqkj4m/AtyFisbT
+1f0U+fBK1W3rEo1IqL0b189O7dPDFDr4lmZq7rc9IkbkPEoIR+saC9krUkEf7wBL0pA7hB591Hk5pxx58L4V5qYADoPinOfHM7/7A2N3TC+L21HerIDSzIHdVNb5dQp0BwU+E7A/
+6DqRtw74SyjPVIoPC/2HDwwhuDmV0/ve5ADSl9yYh06hdOrGg0khlP65N38BbZGYMRaul/EeIZTYNbzSVfBNORtaQ==
+EOS
+    end
+    let(:encryption_certificate) do
+      <<-EOS
+MIIC+jCCAeKgAwIBAgIQHjTznGekMIhCsGKTYQfDSjANBgkqhkiG9w0BAQsFADA5MTcwNQYDVQQDEy5BREZTIEVuY3J5cHRpb24gLSBXSU4tO
+E5QUEcwME5BQlIuMms4c3NvLmxvY2FsMB4XDTE2MTAwNjIwMzUyMVoXDTE3MTAwNjIwMzUyMVowOTE3MDUGA1UEAxMuQURGUyBFbmNyeXB0aW9uIC0gV0lOLThOUFBHMDBOQUJSL
+jJrOHNzby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKx9AQ55jyNebZ/n5/WRx8FTQHtEOUUFfoaO6MogC79rsDBdnFrQZh718vTFIV69kRNI9olBlIShc
+q9OJ2ZIyA1l1o4aBE5VqUpDq+ReNnlsRmwRStGrwibmfPTQQmwcrO6EqjdIcANYHpOpcsqrP7+s7k1kKGE73nZCCzjlcA63xTJHhC1VmxogHnWOutXYVr1KHwGuWZIF6ElfoGorO
+maVq7IOrkAwtwHZXwGz7iD9AWiCZF9c9U+aroPCp0enUgZ4XFk59muYl8GReiRIL/D2Lk/WB6Bz5/5qyJlCcB+BJPMYCfLmllyzN17S2L6kCGEpqL9BhAXf5ZAJDTN1wJsCAwEAA
+TANBgkqhkiG9w0BAQsFAAOCAQEAD2frFw+c35baIX1b1daIU+9+o03pzJSLnCdMK0Fy/HAsHQGP8muKGCXdfFCy/cVZ8NxCXX9TsvtiXHyfasQ+H+RJVrer5zRhsQUn1mxP6vNGs
+hpY6cJqkXy1jrZA+af53P3ntUi4Ygu1ofzmleULHmK8m6zAGms1GT6ae82OoAfo7YOYwK5/QWWvOla4uF06fw8mfMRkKFEn/CFU1LAxaJ39tO+8/01VQe+bQaBGH7dmLhfkeMsi+
+oo3t+uQYdPuPP+WhpsVSEFqgMuzeoo2ZVbfvJUuQNiKvEx97VRe1CAhDasTIlkmN4Fj2Dxkia7nC1esYZd7YQ2LoeDGjyO7oA==
+EOS
+    end
+
+    it { expect(subject.entity_id).to eql("https://win2008r2-ad-sso.qa1.immunet.com/adfs/services/trust") }
+    it { expect(subject.name_id_format).to eql("urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress") }
+    it do
+      expect(subject.single_sign_on_services).to match_array([
+        { binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", location: "https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/" },
+        { binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", location: "https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/" },
+      ])
+    end
+    it do
+      expect(subject.single_logout_services).to match_array([
+        { location: "https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/", binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" },
+        { location: "https://win2008r2-ad-sso.qa1.immunet.com/adfs/ls/", binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" },
+      ])
+    end
+    it { expect(subject.certificate_base64).to eql(certificate) }
+    it do
+      expect(subject.certificates).to match_array([
+        { use: 'signing', value: Base64.decode64(signing_certificate), fingerprint: "E6:03:E1:2D:F2:70:9C:D6:CC:8B:3E:4C:5A:37:F5:53:D7:B2:78:B1:2E:95:5B:31:5C:56:E8:7F:16:A1:1B:D2"  },
+        { use: 'encryption', value: Base64.decode64(encryption_certificate), fingerprint: "E1:0A:68:23:E4:17:32:A3:3A:F8:B7:30:A3:1D:D8:75:F4:C5:76:48:A4:C0:C8:D3:5E:F1:AE:AB:5B:B2:37:22" },
+      ])
+    end
+    it do
+      expect(subject.attributes).to include({
+        format: "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
+        friendly_name: "E-Mail Address",
+        name: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
+      })
+    end
+  end
+
+  context "active directory windows server 2012 metadata" do
+    let(:raw_metadata) { IO.read("spec/fixtures/metadata/ad_2012.xml") }
+    let(:signing_certificate) do
+<<-EOS
+MIIC/DCCAeSgAwIBAgIQGobBMVmYz61AqNR/42A7NDANBgkqhkiG9w0BAQsFADA6MTgwNgYDVQQDEy9BREZTIFNpZ25pbmcgLSB3aW4yMDEyc
+jItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDRaFw0xNzEwMjExNDUwMDRaMDoxODA2BgNVBAMTL0FERlMgU2lnbmluZyAtIHdpbjIwMTJyMi1hZC1zc28uc
+WExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuvYden1ksmpxGGvnZGotnRwFCTOYknY4Ol0utUIYTYs/MTOZQtilSRWnsCFhPzUjXATMTF6kK
+uiH7LIow2QkYxv8JFMrc9FIUvxRauYJ/GVmedT9gMF2nh62Evi9DExDTM5xRM3bmircPB3cwg6M1BixcbvQtlRj37IEXEApk5ZAY24jivElnsQWwCIV9tLL9Kv4pBCDvQiZl6Bjk
+4ZRulyKolQDd9+S0tXISo+OaxQ6WwXbOFDIekUBgNE6ivXrbPH1+CP+paDAMB6vpj5C+o2c3rP9X53Dk4ig0mjw4mbOqd6p/S1Bs3cpNJb1F8RK9SgSxPIV7SIvI8u2FD+XdwIDA
+QABMA0GCSqGSIb3DQEBCwUAA4IBAQAlgP26UQUnC/3V1+ZlpCAWO6727MFNtsT/mue6PVEiydtjPurGF7cA4ljfk6E5QEB2U/Hhc4gh0VsbGTAP0g7m/BXAohaxG9S/1ITSj+8B/
+4IjLwQjUdPDuGcWHuRgOK84LMFj+Ial6zQUP1G4K0eQRFOEV3PeQVbyGDWBzxadFapN7k+BdDNJ1DgTDuEmJPmGAjHMM8I/m/G/UGQfCwZcB19pFPqhv+sV21D8BQ038y6j5Z3YX
+iIThdJ7LVTbOuN3dTXglgXIy0nPTx9YWGV9bf8hqVLwjYmsBRLH7lUoVxNjRkFeXCnbTrgT7AgG/94VlHtvnhJkCfQ3SMsAjwR3
+EOS
+    end
+    let(:encryption_certificate) do
+<<-EOS
+MIIDAjCCAeqgAwIBAgIQRra0nUbJhqFBNtFtXXUr4jANBgkqhkiG9w0BAQsFADA9MTswOQYDVQQDEzJBREZTIEVuY3J5cHRpb24gLSB3aW4yM
+DEycjItYWQtc3NvLnFhMS5pbW11bmV0LmNvbTAeFw0xNjEwMjExNDUwMDZaFw0xNzEwMjExNDUwMDZaMD0xOzA5BgNVBAMTMkFERlMgRW5jcnlwdGlvbiAtIHdpbjIwMTJyMi1hZ
+C1zc28ucWExLmltbXVuZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdQOAO/jAtq6Kbdq87+APchTXGNKKr2H168l7iVu7bH/QEtQJg2a3XD5wXwbwAOsM
+HbIzdZfaEqn4coB6O2kvombJHSl1+ZSz5bm1JV79afPdvfcfw1RBN7WXt59di3WCCN2dUD6l9FJWjI61B83BSFPsJIXYewhPJRmFV+nbFAVPjLr5wQXWIXm2e5JSxKwpAU3kNuUO
+q57O1IKLXvsqTrb0j+LJyCEs8uum3Ex+K/BAzPn4P8Xq6kRmsHLUCivXyjMHmA1T/4S+HMvTRI08O6zYUYbpNDUztzuxYOjjcDRCyLxbWBJIDv2KVoXG5iGF61CFLhtKaWw8mBPF
+7OqpQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBDoG1K4XC/xPU3/0BZ0i6DqjzsRhelFB5U9Ufhen+qdx0IjgHwb06U0mUst53kPuLy/uABGUqBololQmctx+RB9A5+6b6Cm6ZQP
+Nnxn2nopJNqT6VKKszsOnaphE6kVSFZUFOXQjezCIbyT22sBSa6lxG4wdun5vKThFh8tUDK1radniEKLrsdISgnVMl7KUYUlEDcy4hUOXR4DJkcbgryBgnP81pAUu01+0rfiLvJg
+pZnnhMRNYKrMC9X3jSdoSomh+SRV+Pld1j0QX3WambF38qd3AbQ/TXt8ytzh1NwIKkiRDGshkOwKItSbxEMLE2Qx1W4pal0e9J+An7+3eaB
+EOS
+    end
+
+    it { expect(subject.entity_id).to eql("http://win2012r2-ad-sso.qa1.immunet.com/adfs/services/trust") }
+    it { expect(subject.name_id_format).to eql("urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress") }
+    it do
+      expect(subject.single_sign_on_services).to match_array([
+        { location: "https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/", binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" },
+        { location: "https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/", binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" },
+      ])
+    end
+    it do
+      expect(subject.single_logout_services).to match_array([
+        { location: "https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/", binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" },
+        { location: "https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/", binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" },
+      ])
+    end
+    it do
+      expect(subject.certificates).to match_array([
+        { use: "signing", value: Base64.decode64(signing_certificate), fingerprint: "BE:12:70:84:AD:99:6A:58:28:2A:BC:DA:AB:E8:51:D3:FF:AB:58:30:E0:77:DB:23:57:15:01:B3:86:60:97:80" },
+        { use: "encryption", value: Base64.decode64(encryption_certificate), fingerprint: "5C:51:0C:8A:6A:02:24:3C:9E:96:96:18:2E:37:65:8F:CC:EA:51:0E:2C:C5:3F:1D:72:47:11:D0:7B:95:26:1F" },
+      ])
+    end
+    it { expect(subject.attributes).to be_present }
+  end
+
+  describe "#validate" do
+    let(:errors) { [] }
+    let(:service_provider_metadata) do
+      builder = Saml::Kit::ServiceProviderMetadata::Builder.new
+      builder.to_xml
+    end
+    let(:identity_provider_metadata) { IO.read("spec/fixtures/metadata/okta.xml") }
+
+    it 'valid when given valid identity provider metadata' do
+      subject = described_class.new(identity_provider_metadata)
+      subject.validate do |error|
+        errors << error
+      end
+      expect(errors).to be_empty
+    end
+
+    it 'is invalid, when given service provider metadata' do
+      subject = described_class.new(service_provider_metadata)
+      subject.validate do |error|
+        errors << error
+      end
+      expect(errors).to be_present
+      expect(errors[0].message).to eql(I18n.translate("activerecord.errors.models.sso_configuration.attributes.metadata.not_service_provider"))
+    end
+
+    it 'is invalid, when the metadata is nil' do
+      subject = described_class.new(nil)
+      subject.validate do |error|
+        errors << error
+      end
+      expect(errors).to be_present
+      expect(errors[0].message).to eql(I18n.translate("activerecord.errors.models.sso_configuration.attributes.metadata.blank"))
+    end
+
+    it 'is invalid, when the metadata does not validate against the xsd schema' do
+      xml = IO.read("spec/fixtures/utf8_policy.xml").force_encoding(Encoding::ASCII_8BIT)
+      subject = described_class.new(xml)
+      subject.validate do |error|
+        errors << error
+      end
+      expect(errors).to be_present
+      expect(errors[0].message).to eql(I18n.translate("activerecord.errors.models.sso_configuration.attributes.metadata.not_service_provider"))
+    end
+
+    context "signature validation" do
+      it 'is invalid, when the signature is invalid' do
+        old_url = 'https://win2012r2-ad-sso.qa1.immunet.com/adfs/ls/'
+        new_url = 'https://myserver.com/hacked'
+        metadata_xml = IO.read("spec/fixtures/metadata/ad_2012.xml").gsub(old_url, new_url)
+
+        subject = described_class.new(metadata_xml)
+        subject.validate do |error|
+          errors << error
+        end
+        expect(errors).to be_present
+        expect(errors[0].message).to eql(I18n.translate("activerecord.errors.models.sso_configuration.attributes.metadata.invalid_signature"))
+      end
+
+      it 'is valid, when the content has not been tampered with' do
+        metadata_xml = IO.read("spec/fixtures/metadata/ad_2012.xml")
+
+        subject = described_class.new(metadata_xml)
+        subject.validate do |error|
+          errors << error
+        end
+        expect(errors).to be_empty
+      end
+    end
+  end
 end
saml-kit.gemspec
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
 
   spec.add_dependency "builder", "~> 3.2"
   spec.add_dependency "activesupport", "~> 5.1"
+  spec.add_dependency "nokogiri", "~> 1.8"
   spec.add_development_dependency "bundler", "~> 1.15"
   spec.add_development_dependency "rake", "~> 10.0"
   spec.add_development_dependency "rspec", "~> 3.0"