Anslutning till CGI:s Identity Provider

Ändringshistorik

Datum Version Kommentar
2018-04-25 3.0 Omgjord för webb
2018-09-27 3.0.1 Freja, eIDAS IDP
2018-11-07 3.1 Allmänna uppdateringar
2018-12-19 3.2 Fel Freja metadata, Norskt BankID test
2019-09-02 3.3 Uppdatering av metadatalänkar
2020-02-24 3.3.1 Korrigerat metadatalänk Freja IDP produktion
2021-09-23 3.3.2 Nya metadatalänkar Tekniskt Ramverk (test)

1 CGI:s IdP SAML 2.0

1.1 Introduktion

Detta dokument beskriver CGI:s implementation av SAML i sin Identity Provider (IdP) för en normal standardanslutning. För specifikationer och generell information om SAML hänvisas till OASIS på http://www.oasis-open.org/specs/index.php#saml.

Vänligen kontakta CGI på funktionstjanster@cgi.com om ni vill göra en anslutning som inte följer den standardanslutning som beskrivs i detta dokument.

1.2 Översikt

CGI:s IdP-tjänst baseras på en SAML 2.0 standard med vissa givna profiler. Kunder som litar på vår IdP kallas för Service Provider (SP) och måste kunna hantera de protokoll och profiler som IdP-tjänsten hanterar.

1.3 SAML 2.0 Profiles

SAML specificerar ett antal profiler som beskriver olika användningsfall. CGI stödjer två profiler: ”Web browser SSO”- och ”Single Logout SLO”-profilerna.

1.4 SAML 2.0 Bindings

I SAML 2.0 finns ett antal så kallade ”bindings”, olika sätt som meddelanden mellan SP och IdP utbyts på. Vi använder normalt två av dessa sätt i en standardanslutning.

I SSO-profilen används ”HTTP Redirect (GET) ” för SP och på IdP används ”HTTP POST”.

I SLO-profilen används bindningen ”HTTP POST” både i SLO Request och Response.

1.5 SSO – Single Sign-On

Vid vanlig SP-initierad inloggning:

  1. Klienten hämtar en sida som kräver autentisering.
  2. SP kontrollerar om klienten har en inloggad session. Om ej, genereras ett SAML ”authentication request”-meddelande och klienten riktas om till IdP med meddelandet.
  3. Klienten skickar ”authentication request”-meddelandet med GET-metoden till IdP.
  4. Om klienten inte redan är inloggad mot IdP tillkommer steg för eventuellt val av autentiseringmetod samt autentisering.
  5. Efter autentiseringen skickas en webbsida tillbaka till klienten. Webbsidan innehåller responsen samt kod för att klienten skall posta den till SP.
  6. Responsen postas till SP.
  7. SP kontrollerar att responsen stämmer. Om den stämmer loggas användaren in och den önskade sidan returneras.
sequenceDiagram participant A as Client participant B as Service Provider participant C as Identity Provider A->>B: 1. Hämtar sida som kräver inlogg (GET) B->>A: 2. Ompekning till IDP med AuthnRequest A->>C: 3. Skicka AuthnRequest till IDP (GET) opt 4. Autentiseringsförfarande C-->>A: Note right of C: Autentiseringen<br/>skiljer mellan<br/>olika metoder. A-->>C: end C->>A: 5 Ompekning till SP med AuthnResponse A->>B: 6 Skicka AuthnResponse till SP (POST) B->>A: 7 Leverera begärd sida

1.6 IdP-initierad inloggning (Unsolicited Response)

1.6 SLO – Single Logout

Observera att en SP som skickar SLO till IdP:n samtidigt stoppar all fortsatt federering för användaren. En SP måste vara medveten om vad avsikten vid en utloggning är. En utloggning av användaren i SP:s egna system är en sak, men att även sända en SLO kan orsaka problem om användaren har för avsikt att från en federering arbeta vidare hos annan SP.

2 Metadata

Metadata-filerna beskriver IdP-funktionen mer formellt och innehåller även certifikatet som används för att signera assertions i både test och i produktion.

Vi rekommenderar att ni i ert SP-system antingen har en tydlig rutin för att manuellt uppdatera med ny metadata från IdP:n eller att ni bygger in en automatisk hämtning av ny metadatafil när ”validUntil” har gått ut. Ibland måste metadatat ändras, exempelvis när certifikatet på IdP:n går ut och måste bytas. Om någon viktig förändring kommer ske i metadatafilen går CGI ut med information till alla kunder i förväg.

Ta alltid ut metadata direkt från IdP test eller IdP produktion för att vara säker på att få senaste version. Detta görs enklast genom att ange nedanstående länkar eller hämtar hem metadatafilen (xml).

2.1 Metadata för testmiljö*

IdP länk
Privata e-legitimationer (alla tillgängliga hos CGI) https://m00-mg-local.testidp.funktionstjanster.se/samlv2/idp/metadata/0/30
Privata Tjänstelegitimationer https://m00-mg-local.testidp.funktionstjanster.se/samlv2/idp/metadata/1/31
*Det finns dedikerade IDP:er för varje e-legitimation. Kontakta oss för mer information.

2.2 Metadata produktion*

IdP länk
Privata e-legitimationer (alla tillgängliga hos CGI) https://m00-mg-local.idp.funktionstjanster.se/samlv2/idp/metadata/0/30
Företag e-tjänstelegitimationer https://m00-mg-local.idp.funktionstjanster.se/samlv2/idp/metadata/1/31
*Det finns dedikerade IDP:er för varje e-legitimation. Kontakta oss för mer information.

3 SAML-attribut

Som standard används nedanstående attribut-profiler, om annan önskas meddela CGI vid beställning.

3.1 e-legitimationer för privatpersoner

CGI har tagit hänsyn till den information som finns i privata e-legitimationer med statlig legitimitet i Sverige samt även arbetet inom EU kring federeringslösningar. Nya SAML-attribut kan komma att tillkomma.

Alla attribut i SAML-biljetten kommer direkt från certifikatet, och i vissa fall är det delar av datat i certifikatet som är utmappat. Attribut från externa datakällor kan framöver också komma att läggas in som tilläggstjänst.

Beroende på e-legitimationsutfärdare kan attribut skilja. Attribut som inte kan mappas mot certifikatinformation plockas bort i svaret.

(Värdet OSIF: motsvarar samma parameter enligt OSIF 2.1 standarden.)

saml:Attribute Name Beskrivning
Subject_SerialNumber Svenskt personnummer med 12 siffror. OSIF: Subject.SerialNumber
Subject_GivenName Förnamn. Ett eller flera, beror på olika CA. OSIF: Subject.GivenName
Subject_Surname Efternamn. OSIF: Subject.Surname
Subject_CommonName För- och efternamn. OSIF: Subject.commonName (if included)
Subject_CountryName Landskod, SE=Sverige OSIF: Subject.CountryName
Gender F (female)/M (male) Använd näst sista siffran i personnumret: Jämn siffra F, udda siffra M.
dateOfBirth YYYYMMDD (ISO 8601). 8 första siffrorna i Subject_SerialNumber
age Ålder i år. Räknas fram från 8 första siffrorna i Subject_SerialNumber
Issuer_CommonName Namn på CA . OSIF: Issuer.CommonName
Issuer_OrganizationName Organisationsnamn på CA (Utgivaren av e-legitimationen). OSIF: Issuer.OrganizationName
SecurityLevelDescription Inloggningsmetodens läsbara namn. Text beskrivning av autentiseringsmetod. OSIF: securitylevel.description
SecurityLevel 3 för e-legitimation på fil och 4 för e-legitimation på kort. OSIF: security.level
sn_id Personnummer med 10 siffror istället för 12 (position 3-12 i OSIF:Subject.SerialNumber).
CertificateSerialNumber e-legitimationen/klientcertifikatets unika serienummer. Kan användas främst i forensic syfte. OSIF: SerialNumber Förväxla ej med personnummer i Subject_SerialNumber
ValidationType Om revokeringskontroll skett med OCSP eller CRL. OSIF:validation.type
ValidationResponse Signerat ”kvitto” från CA om spärrkontroll skett med OCSP, eller information om vilken CRL som använts. OSIF:validation.response
LoginMethod Beskrivet den tekniska inloggningsmetoden. Kan vara bra om en efterföljande signatur skall ske: ccp8 – Telia ”challenge” inloggning NetiD ccp10 – BankID på samma enhet (GRP) ccp11 – BankID på annan enhet (GRP)
urn:oid:1.2.752.29.4.13 Svenskt personnummer med 12 siffror. OSIF: Subject.SerialNumber
urn:oid:2.5.4.42 Förnamn. Ett eller flera, beror på olika CA. OSIF: Subject.GivenName
urn:oid:2.5.4.4 Efternamn. OSIF: Subject.Surname
urn:oid:2.16.840.1.113730.3.1.241 För- och efternamn. OSIF: Subject.commonName (if included)
urn:oid:1.3.6.1.5.5.7.9.1 YYYYMMDD (ISO 8601). 8 första siffrorna i Subject_SerialNumber
urn:oid:1.2.752.201.3.2 Referensid, används för att identifiera en transaktion istället för personnummer/ipadress.
norEduPersonNIN Svenskt personnummer med 12 siffror.
authServerSignatureType Format AuthServerSignatur förväntas vara. Exempelvis xmldsig/jws
authServerSignature Signerat svar från utgivaren.

3.2 Tekniskt ramverk

Om anslutning sker till IdP som följer DIGGs tekniska ramverk kommer attributen i svaret att följa attributprofilen som anges i ramverket. Följande attribut kan förekomma i svaret.

saml:Attribute Friendly Name saml:Attribute name Beskrivning
sn urn:oid:2.5.4.4 Surname
givenName urn:oid:2.5.4.42 Given Name
displayName urn:oid:2.16.840.1.113730.3.1.241 Display Name
gender urn:oid:1.3.6.1.5.5.7.9.3 Gender
personalIdentity-Number urn:oid:1.2.752.29.4.13 National civic registration number/code
dateOfBirth urn:oid:1.3.6.1.5.5.7.9.1 Date of birth
birthName urn:oid:1.2.752.201.3.8 Name at the time of birth
street urn:oid:2.5.4.9 Street address
postOfficeBox urn:oid:2.5.4.18 Post box
postalCode urn:oid:2.5.4.17 Postal code
l urn:oid:2.5.4.7 Locality
c urn:oid:2.5.4.6 Country
placeOfBirth urn:oid:1.3.6.1.5.5.7.9.2 Place of birth
countryOfCitizenship urn:oid:1.3.6.1.5.5.7.9.4 Country of citizenship
countryOfResidence urn:oid:1.3.6.1.5.5.7.9.5 Country of Residence
telephoneNumber urn:oid:2.5.4.20 Telephone number
mobile urn:oid:0.9.2342.19200300.100.1.41 Mobile number
mail urn:oid:0.9.2342.19200300.100.1.3 E-mail address
o urn:oid:2.5.4.10 Organization name
ou urn:oid:2.5.4.11 Organizational unit name
organizationIdentifier urn:oid:2.5.4.97 Organizational identifier code
orgAffiliation urn:oid:1.2.752.201.3.1 <uid>@<orgnr>
transactionIdentifier urn:oid:1.2.752.201.3.2 Transaction identifier
authContextParams urn:oid:1.2.752.201.3.3 Authentication Context Parameters.
userCertificate urn:oid:1.2.752.201.3.10 User certificate
userSignature urn:oid:1.2.752.201.3.11 User signature
authServerSignature urn:oid:1.2.752.201.3.13 Authentication server signature
sad urn:oid:1.2.752.201.3.12 Signature activation data
prid urn:oid:1.2.752.201.3.4 Provisional identifier
pridPersistence urn:oid:1.2.752.201.3.5 Provisional identifier persistence indicator
personalIdentity-NumberBinding urn:oid:1.2.752.201.3.6 National civic registration number/code binding URI
eidasPersonIdentifier urn:oid:1.2.752.201.3.7 eIDAS uniqueness identifier for natural persons
eidasNatural-PersonAddress urn:oid:1.2.752.201.3.9 eIDAS Natural Person Address

3.3 e-tjänstelegitimationer

Vi har tagit hänsyn till den information som finns i de e-tjänstelegitimationer som idag har en spridning i Sverige, utgivna av Steria och SITHS.

eID-tjänsten har en IdP speciellt för e-tjänstelegitimationer, IdP företag.

saml:Attribute Name Beskrivning
Subject_SerialNumber Kan se lite olika ut för respektive CA, men innehåller bl.a. organisationsnummer. Hela strängen är dock unik för den användaren i den organisationen. OSIF: Subject.SerialNumber
Subject_GivenName Förnamn. Ett eller flera, beror på olika CA. OSIF: Subject.GivenName
Subject_Surname Efternamn OSIF: Subject.Surname
Subject_CommonName Kan se olika ut beroende på CA. Normalt namn, titel och firmanamn. Bygg ingen logik kring detta. OSIF: Subject.commonName (if included)
Subject_OrganisationName Juridiskt firmanamn. OSIF: Subject.OrganizationName
Subject_LocalityName Geografisk ort. OSIF: usercert.subject.localityName (if included)
Subject_CountryName Landskod, SE=Sverige. OSIF: Subject.CountryName
Subject_EmployeeID Ett unikt id för individen i den organisationen. Kan vara ett anställningsnummer. position 13- slut i OSIF: Subject.SerialNumber
Subject_emailAdress e-postaddress. OSIF:Subject.email (if included)
Subject_Title Titel. Kan vara både text på en satt titel, eller en titelkod enligt SSYK. OSIF: usercert.subject.title (if included)
Issuer_CommonName Namn på CA .. OSIF: Issuer.CommonName
Issuer_OrganisationName Organisationsnamn på CA (Utgivaren av e-legitimationen). OSIF: Issuer.OrganizationName
SecurityLevelDescription Inloggningsmetodens läsbara namn. Text beskrivning av autentiseringsmetod. OSIF: securitylevel.description
SecurityLevel 3 för e-legitimation på fil och 4 för e-legitimation på kort. OSIF: security.level
CertificateSerialNumber e-tjänstelegitimationens unika serienummer. Kan användas främst i forensic syfte. OSIF: SerialNumber
Subject_OrganisationNumber Organisationsnummer, 10-siffror.
ValidationType Om revokeringskontroll skett med OCSP eller CRL. OSIF:validation.type
ValidationResponse Signerat ”kvitto” från CA om spärrkontroll skett med OCSP, eller information om vilken CRL som använts. OSIF:validation.response

4 Exempelmeddelanden IdP

Exempel på meddelanden från testmiljön: Authentication Request , Authentication Response, Logout Request och Logout Response. Observera att exemplen är uttagna vid en viss tidpunkt och att mindre uppdateringar kan ha skett.

4.1 Authentication Request

I produktion har CGI:s IdP kontroll på vilka SP som det är tillåtet att skicka svar till. Vi behöver alltså ha adressen AssertionConsumerServiceURL som skall användas. Vi kan godkänna alla URL:er under en adress, som: https://sp.exempel.com/*

Antingen kopplas AssertionConsumerServiceURL till en SP och ett unikt ServiceID i eID-tjänsten. Om flera olika ”kunder” i samma e-tjänst använder samma AssertionConsumerServiceURL måste även saml:Issuer även användas och detta måste då vara unikt för varje SP.

Men IdP test godkänner * som Issuer/EntityID och AssertionConsumerServiceURL, så för testmiljön kan ni ange vilken adress ni vill.

```xml

https://my.sp/

```

4.2 Authentication Response

Exempel på en lyckad inloggning med e-legitimation (test) med BankID xml <saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://my.sp/service" ID="_03d09018d388a67710d2dfb9abc4a2de80" InResponseTo="_92530e1eb6c65269f4bf192684236e94" IssueInstant="2018-07-11T05:40:51.499Z" Version="2.0"> <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> https://m00-mg-local.testidp.funktionstjanster.se/samlv2/idp/metadata/0/0 </saml2:Issuer> <saml2p:Status> <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> </saml2p:Status> <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="_0314187957f3e443b738f07bbb8cc4999d" IssueInstant="2018-07-11T05:40:51.499Z" Version="2.0"> <saml2:Issuer> https://m00-mg-local.testidp.funktionstjanster.se/samlv2/idp/metadata/0/0 </saml2:Issuer> <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/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#_0314187957f3e443b738f07bbb8cc4999d"> <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#"> <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/> </ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>coH/v/cL2sUA0NrbtlRbPghnTYs=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> Q7fcIl/lbYK9+B+YRPup6cMGqqzk26mtJO6n9GUaeB5ZEqTabCuUSuifX1WVEpDCdHxI+AwkTM0b5QNdGBWDpTsUPDDmcpHlaK+RcfSPKDwfRt45MZ5Bd8cxYGO66bMNSLYWBGwHNcuz3dVDPnCX/Mk4rIS7ovMHnHftpebarVzOf6bdZ0u11ML9YPa7QOdVfjXIAlTkmofLdu1jaYy8mXZypyDYqfG07l8NtuPf+uaZqUtXLKpDijfqt8Q5hc0SLZif5gQIlCyMTNFI11Q7i7A5eMQZWggNVztlwqeLrsm4nPm1z6p3gprZN/wnoYhjgu/LX7lrph179joi2+ekEw== </ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate> MIIE1zCCA7+gAwIBAgISESFuhLPvw43EYoLwuCaHpSHsMA0GCSqGSIb3DQEBBQUAMC4xETAPBgNV BAoTCEFscGhhU1NMMRkwFwYDVQQDExBBbHBoYVNTTCBDQSAtIEcyMB4XDTEzMDYxMzA4MDgzNloX DTE4MDYxMzA4MDgzNlowTDEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMScwJQYD VQQDFB4qLnRlc3RpZHAuZnVua3Rpb25zdGphbnN0ZXIuc2UwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQDfkLxHfEIFI6Sr+JW9cQkXRDG714aRIXCN0+NdrPi2BPAmK34gVAxiED1pavsD A7vQRmgd4RTrTCGFnL87wKZ9ZpBwkJd2j5VpT1Augn80hPPlSL097q3iCpxZSYekxpdoo120Dsdz oFdiwhsK8AUfKn/KGJFaYxYL05+iUgVY2FYrRRuy3IpYcmz7UUpmYV37tWeYbnwJ+O53uPDOCK5e nQ8vufakAPGFbOSvRCAuJ0doCQMFBjWbNZnAcpSLCL45YOxnNPLho70y22ID97mDCyRVy3vQd7dC 2gp391XfgRtTYHhHy1O1Qun8N5tEgRGlYeogQI+hzutT9/+72i2zAgMBAAGjggHPMIIByzAOBgNV HQ8BAf8EBAMCBaAwSQYDVR0gBEIwQDA+BgZngQwBAgEwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93 d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wRwYDVR0RBEAwPoIeKi50ZXN0aWRwLmZ1bmt0 aW9uc3RqYW5zdGVyLnNlghx0ZXN0aWRwLmZ1bmt0aW9uc3RqYW5zdGVyLnNlMAkGA1UdEwQCMAAw HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9j cmwyLmFscGhhc3NsLmNvbS9ncy9nc2FscGhhZzIuY3JsMH8GCCsGAQUFBwEBBHMwcTA8BggrBgEF BQcwAoYwaHR0cDovL3NlY3VyZTIuYWxwaGFzc2wuY29tL2NhY2VydC9nc2FscGhhZzIuY3J0MDEG CCsGAQUFBzABhiVodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vZ3NhbHBoYWcyMB0GA1UdDgQW BBQreTDWAazuWiWVhrSs73MOyLXnBDAfBgNVHSMEGDAWgBQU6hlV8A4NMsYfdDO3jmYaTBIxHjAN BgkqhkiG9w0BAQUFAAOCAQEAuETgY/eviBQ7JD+Dm3RZzmQNbGGlpUjkBexmSdmBoy/yV4ZzN830 aiqe0/wq9LKt/t/cglDZpjgGqJ3m+0TycoyrgI6DPBnBvPZTUWnjp/ZV/kBWQL1hNCc+LxoxAXbC OnUQN8ecSKNVxyCqGLRI4zw9It8tCPPHRL0P++HSaIM/UItGWWBBp1qGHAnSnGHwFceCQYLwMVVE vdsQ0aJFSniw9x/FymRVdpWJXV3vHuaXdcYj8z2NFSAOCfFWWjfIueKUXdQlVQbrQNMhxZixiiZy UYkwvRU6geuoOfDY0iz1nZRWhfnfhgorLOVK3FTsUHqiroYcTOxvC9PFYQgZiA== </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml2:Subject> <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">_037aac8d632fd7f13285e7a02659e7a350</saml2:NameID> <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml2:SubjectConfirmationData Address="85.119.130.113" InResponseTo="_92530e1eb6c65269f4bf192684236e94" NotOnOrAfter="2018-07-11T06:27:28.499Z" Recipient="https://my.sp/service"/> </saml2:SubjectConfirmation> </saml2:Subject> <saml2:Conditions NotBefore="2018-07-11T05:35:51.499Z" NotOnOrAfter="2018-07-11T06:27:28.499Z"> <saml2:AudienceRestriction> <saml2:Audience>https://my.sp</saml2:Audience> </saml2:AudienceRestriction> </saml2:Conditions> <saml2:AuthnStatement AuthnInstant="2018-07-11T05:40:51.499Z" SessionIndex="_03c4e0466dbad35018b45b01fa0a3b0fb4"> <saml2:SubjectLocality Address="85.119.130.113"/> <saml2:AuthnContext> <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:SoftwarePKI</saml2:AuthnContextClassRef> </saml2:AuthnContext> </saml2:AuthnStatement> <saml2:AttributeStatement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <saml2:Attribute Name="Subject_SerialNumber"> <saml2:AttributeValue xsi:type="xs:string">196001046710</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Subject_GivenName"> <saml2:AttributeValue xsi:type="xs:string">Börje</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Subject_Surname"> <saml2:AttributeValue xsi:type="xs:string">Åkeland</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Subject_CommonName"> <saml2:AttributeValue xsi:type="xs:string">Börje Åkeland</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Subject_CountryName"> <saml2:AttributeValue xsi:type="xs:string">SE</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Gender"> <saml2:AttributeValue xsi:type="xs:string">M</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="dateOfBirth"> <saml2:AttributeValue xsi:type="xs:string">19600104</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="age"> <saml2:AttributeValue xsi:type="xs:string">58</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Issuer_CommonName"> <saml2:AttributeValue xsi:type="xs:string">Testbank A Customer CA1 v1 for BankID Test</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Issuer_OrganizationName"> <saml2:AttributeValue xsi:type="xs:string">Testbank A AB (publ)</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="SecurityLevelDescription"> <saml2:AttributeValue xsi:type="xs:string">SoftwarePKI</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="SecurityLevel"> <saml2:AttributeValue xsi:type="xs:string">3</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="ValidationOcspResponse"> <saml2:AttributeValue xsi:type="xs:string"> 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 </saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="sn_id"> <saml2:AttributeValue xsi:type="xs:string">6001046710</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="CertificateSerialNumber"> <saml2:AttributeValue xsi:type="xs:string">46faf4f3b1d8624b</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="Subject_OrganisationName"> <saml2:AttributeValue xsi:type="xs:string">Testbank A AB (publ)</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="LoginMethod"> <saml2:AttributeValue xsi:type="xs:string">ccp10</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="authServerSignatureType"> <saml2:AttributeValue xsi:type="xs:string">xmldsig</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="authServerSignature"> <saml2:AttributeValue xsi:type="xs:string"> PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiPjwvQ2Fub25pY2FsaXphdGlvbk1ldGhvZD48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZSBUeXBlPSJodHRwOi8vd3d3LmJhbmtpZC5jb20vc2lnbmF0dXJlL3YxLjAuMC90eXBlcyIgVVJJPSIjYmlkU2lnbmVkRGF0YSI+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ij48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPlp3OWNxd0VVWCt5UjRWcUkwQ20yZ1dXOUlZdUZEYTRQSTE0S0RvKzJaT1U9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48UmVmZXJlbmNlIFVSST0iI2JpZEtleUluZm8iPjxUcmFuc2Zvcm1zPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiPjwvRGlnZXN0TWV0aG9kPjxEaWdlc3RWYWx1ZT5hUldoZGcvVlVsdG40K3FGRjA2V0tLUW9JcS9iOHVTTUpxRjFLZk9EN29VPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5aRWZVQ0pTcC9FK3RoZVBBWWtZTDcwQ2xaRnFhckpkRHZYVnI5ZlNRYXZBYW9FczJpZlo5Q3NZMEF6MHl5Z2hrRW91UTVGSm9PZmwxWlVPdWsyUXVYWGFsTzd0cmkyM0U2M1o5dFR3dFBzNUdJUjFXZ2FuUkhzTDRhV28wYjg5eTZnMWxsM1pVaVdpQVoyTVNTSXpUaFJYTnpRSGZOSzhsUVBWWGxzeUwxNWcrZUc4eXhIOHJsQzhSbEh2YVh5UE5uNUxqdFJPbnRFT2VhYlZTWjJOUzJHT1hNRTNZYVA5QldrMkRHbjRPOVFLS09MY1BRQStwVVp1ZzE2OVJtSzRkR1JkUVNWaDUyMTVEaEcybE1vbmw0ZXJ6eTNrTjJMYXllaWt4UEdqSEl3dkV1c0UwSitDd3VmdWJ6b2dMNExwMFdvVVY3QnR3WWhMTXRLby9RRlVDZHc9PTwvU2lnbmF0dXJlVmFsdWU+PEtleUluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIElkPSJiaWRLZXlJbmZvIj48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlGV2pDQ0EwS2dBd0lCQWdJSVJ2cjA4N0hZWWtzd0RRWUpLb1pJaHZjTkFRRUxCUUF3ZURFTE1Ba0dBMVVFQmhNQ1UwVXhIVEFiQmdOVkJBb01GRlJsYzNSaVlXNXJJRUVnUVVJZ0tIQjFZbXdwTVJVd0V3WURWUVFGRXd3eE1URXhNVEV4TVRFeE1URXhNekF4QmdOVkJBTU1LbFJsYzNSaVlXNXJJRUVnUTNWemRHOXRaWElnUTBFeElIWXhJR1p2Y2lCQ1lXNXJTVVFnVkdWemREQWVGdzB4T0RBMU16QXlNakF3TURCYUZ3MHlNREExTXpBeU1UVTVOVGxhTUlHN01Rc3dDUVlEVlFRR0V3SlRSVEVkTUJzR0ExVUVDZ3dVVkdWemRHSmhibXNnUVNCQlFpQW9jSFZpYkNreEVUQVBCZ05WQkFRTUNNT0ZhMlZzWVc1a01ROHdEUVlEVlFRcURBWkN3N1p5YW1VeEZUQVRCZ05WQkFVVERERTVOakF3TVRBME5qY3hNREU0TURZR0ExVUVLUXd2S0RFNE1EVXpNU0F4TWk0d01Da2dRc08yY21wbElNT0ZhMlZzWVc1a0lDMGdRbUZ1YTBsRUlIRERwU0JtYVd3eEdEQVdCZ05WQkFNTUQwTER0bkpxWlNERGhXdGxiR0Z1WkRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSlZuQ0o5bU43TGQwKzB4STdyVWovaGtPWTBnNUs2aU90Zi96WDk0TWw5Sy9qajVjQzM4eHc0UkVDNitLbXRiM1hjN0gxV0YyMVp4c0g1SCtDS0R0YkRBcFVSaHVOcTVQSlZNd3MyWHNEYmxhSG9nOGE3eDVwSTVCQXB1eHhNR2N4VXIxM0x1UTladFN1SFNrT05ETXhlMHhQQTZ3TGZPL05Db3MvamJCbzdxRCtaeENsTDNTa3YraUVDUGZjYU9jNVdvSWJlcCthUks5eC83RGtKVkVHYmJGWlVIc1psY1RvVGl6amgxZm04UmR6SkpsY3MxWTNJZmIwbUpmTnFkMjlNdzJaRU9CTmdkQ3Y1TkphNEJYdDdraXJXenBvUFJsdEh0TUpQWDROMDVCUGNBaldySlY2Q2RKY2ltYzhDSWIrNlg5bnBCMVZNaHNFY3BDQk1CUDRzQ0F3RUFBYU9Cb3pDQm9EQTdCZ2dyQmdFRkJRY0JBUVF2TUMwd0t3WUlLd1lCQlFVSE1BR0dIMmgwZEhBNkx5OTBaWE4wTG5KbGRtOWpZWFJwYjI1emRHRjBkWE11YzJVd0VRWURWUjBnQkFvd0NEQUdCZ1FxQXdRRk1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBZkJnTlZIU01FR0RBV2dCUmdlbjJuV1lPTW42U3hGK29OUTBPVlErYVovVEFkQmdOVkhRNEVGZ1FVVmc3WklnZFlEUjA0ZXJkd0l6a3pOeW0vb2xrd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHQ01haWxVdjJWYkhTRzJqcjh1VzBUZjNjcXdjSi9mRVZjZzBoYWhUVW1SQjJWNHZvalgzSUVsSVBZWkQ4ejY3ODZFUUc4NEZQTVVOSHVjK2RxeVRvQ25TREJJS1pEdy9zU29zL0VNWUZrZlhVS2pmMHJBcTlSdVRybllLSGFLK2lxTVBOU1czWDdjRER0MythMEMvREtSbUQ2ZWhFYjFGeXBkL1B2WjliSVlLaHNaWjBCUlRqNlJvRXN5aXVJNGZXM09uN1czS0IwTitZSFZ2RVIxVEVxaGp6ZGpmYjM5QkxXcERGaHkzVnVpTFBuSndPWDFsbDZ6dEVscUpPdWxyVnRqUVVRajZrK2pieWova3pMMjlkMHBkTFBycUhZNlNxcGUrK0ZaTUNhL3J4a0NuVlhoUVpaZUlJWm01UkllQWRCSHB2MlVEb0FJeXpuZEE3SkdpN2FTRVkxQ2phc3pycFdTWmdCcytWdVpmdkZ1L0lMNHJHeW5WaXZxQUNYdlFVSnhjTDBxWXdSYlVzT3FDZmxwSFVkTE5KN3FCdjYzNzhmWTBQdmlZOC85VDE3Zjhxc0dLbHJYZ28rWG1abWQwSE8vaHFCeWtZMUwyUmFvYWlCTEdPNHZDQmZRZ1VzRzVidnQ5TklpRkVYNHZMV1ZaOGVmbVNLNzBDbFdnMFVKZFhzandIS2RCZ3YwWlBLczZsaU5LY0dkY2orZW9nTzVOVitRQm04QmFuNmtSREZ4SWJQY01TSlpzWEdEU0Q3Qi9BckJpemFWQ3pLbGRSOUFFaStLYTlDQmo5SjhHTHB3cXJ6QkpJRGMyOWswR0lpS0VQTnp5VDVkdGRHRmtubHVNYkdQMDlRTWlXZFBvZUNNMnVidzh6UUpYZ0svUG9POTlGaWRQOEcySVQ2ejwvWDUwOUNlcnRpZmljYXRlPjxYNTA5Q2VydGlmaWNhdGU+TUlJRjNqQ0NBOGFnQXdJQkFnSUlGblpWeWVobVhZd3dEUVlKS29aSWh2Y05BUUVOQlFBd2JqRUxNQWtHQTFVRUJoTUNVMFV4SFRBYkJnTlZCQW9NRkZSbGMzUmlZVzVySUVFZ1FVSWdLSEIxWW13cE1SVXdFd1lEVlFRRkV3d3hNVEV4TVRFeE1URXhNVEV4S1RBbkJnTlZCQU1NSUZSbGMzUmlZVzVySUVFZ1EwRWdkakVnWm05eUlFSmhibXRKUkNCVVpYTjBNQjRYRFRFeE1Ea3lNakUwTWpFeE5Gb1hEVE0wTVRJd01URTBNakV4TkZvd2VERUxNQWtHQTFVRUJoTUNVMFV4SFRBYkJnTlZCQW9NRkZSbGMzUmlZVzVySUVFZ1FVSWdLSEIxWW13cE1SVXdFd1lEVlFRRkV3d3hNVEV4TVRFeE1URXhNVEV4TXpBeEJnTlZCQU1NS2xSbGMzUmlZVzVySUVFZ1EzVnpkRzl0WlhJZ1EwRXhJSFl4SUdadmNpQkNZVzVyU1VRZ1ZHVnpkRENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFJVzBEUG9wTEVodGF3VlJ3TnJFNDMxR1ZzaC9IbldWc1hkZ09qelVzRDdRRDMwL3RmT0hST1FpOW5MdURXa1kxZkVVeFowNllxNUx0Uk9vRnBrVFE2U1JpMlJnaVVrdUNOcU1Fd3NqMmVpYTdLaFlSSWsvWEpra0ZwMUJ2RTYySTYzdnRVelp6UzY5SEFzTU5QbGZkTFUycElaMkFuZDJRSjJkQzB4aW1tRmpZNWs1L3o3L05rM0pHQmJheExIL1g2emhjTnFPcHIyU3J2OUcrbGsrR3Z5N2hRTEltTkxSVis0RzNtYWxIajZRTSt3RGNSS3ZUNFYraVJkdnpQOW84MDMvZytHTDVxaXVmVzZSZFQrMmx3R2lmUDJkM3N1TDc5dUdXMUhPOHFiaWkvaTRIVHhEZnRLZFhGc2xGclhmUisrUVVVNEIrdjZReWI0ckYzcWhEZmVha2dmTDh1emZ0TXRUTVJsb3d4SWIwOGp4Q2VoQ1NhWTBDTUJIUVRTMEx0WDFDL1ZqTTZVYmJwU2EyODB6U0wreFhsUzdTNzI3c0pCNzIyZnpXUjMvTlNwM01aVGJFMFFBcU1URU5ZNHBmd2MvbFh3Vm44VHZBTncxRkl4RTdpa3dJQk1GU282ZVgyVUREejlhaTZkelJyWWZ0STQ0RXRMVHYzS1Y1VURXY0lic1JCdmxnQlFxcXVwaGN1UlZ2MWE2WG85eGVIMitvK0Jzcitzb3VtaUM2eklGdVV1QnhCNHVxc1NxZVZRRmtJYWVwaW53aFg1Q0pCWkxjT1JhTVpGNkkxa0d2RURaT1ZZWE9FdDlQV2cvU3NTY0dNK3NmMjUxMEd6MGYyb21Rak9MNUJlemRZWUtOQXd6aXo5VTFJcjFWcHZ6a0pGNFNBM1cwNWNtampLWkFnTUJBQUdqZGpCME1CMEdBMVVkRGdRV0JCUmdlbjJuV1lPTW42U3hGK29OUTBPVlErYVovVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQjhHQTFVZEl3UVlNQmFBRktQeWVIa2RLMFdLeWVIS2xRbmxubS9PeTA3Rk1CRUdBMVVkSUFRS01BZ3dCZ1lFS2dNRUJUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0RRWUpLb1pJaHZjTkFRRU5CUUFEZ2dJQkFEeGh5eldTem9reUcraFVDcDNVZzdRWnhiTUxLKzZJWXArOGFjUnVUU0ZmcjVtYUgzTXJ5ZDg3L0IyeTlLM2ZXK0ZYUUxwZGhWSG92S0pPQVF5di90M0NBNjJaR3J6aEFYR3FDY1I5U240NGVjS1JKUEU5WkpiemFsbzR3dEtSVXYwNFcyWmdGdW5ZVE41NVRzTm4zYkd6Y0lpQWRkTXE5VE1Ld0lqbDZwNWk2b0lqQW10OS83NVFmN3FRLzF4MjBFVWRzdis4UVBJcDF2bEI4dkF6QXRvKzhiWkZDUnNkTVZMUlJrOTZDb1M1M3Y0YURZWUFNeG1zVGJndkxxVlU1L0NOZlZFZ1ZlU3BGVlN6NmZsYkZNQlpkNUxPUGdsaS9sUko3Rldld1F2clphS2dmSmdkbVVVdkNwaTBlRCsvS0Juc0VKTGJoZG5LL0IraVRvNEE2QndvUis5WGhPUXlOTVRCL1NEdFNZY3pKMzV2RmhaZktKNS8wcHNxWFNKSC8yNXdBNHBlLzM0RVJ6UTFtZ2xhZHQ2Sk9obldmOTJKdzVqZHc3QkZwdGc3bG1Ja0R5WURVKzZSeUVzQXJDaWJJKzI4eUY1L2ZDWkN1VWR3RHc5aUhwb29kZjFoOHQxZ2ZQbm5ta2N3R1RmUGcvZHVVZ2tGd0tZOTdTemZaZ1IwMmhkN3h4bzVwSzc5Y3ppbU1GMkdURnc5U1dTbmxaSzcxZm9ZMjVGelNVSE5tdUdIaEZ6Rzk4QUZJdDBWTHdpVGo4dEplU2pUaTQxaWYyMzd2RE52c2VwdCs4L3R0ODAvZjQ1S3pQTmZXVUIwNi9GR3Iwd2ZvWWdacDRQaTlSUlRYekRhZndqN3FMZHVhZXBSckxjRVVwWFdDR3J1U1V5bHh4Q2hkQlR3VnpabjwvWDUwOUNlcnRpZmljYXRlPjxYNTA5Q2VydGlmaWNhdGU+TUlJRjB6Q0NBN3VnQXdJQkFnSUlVWW1mZHRxdHk4MHdEUVlKS29aSWh2Y05BUUVOQlFBd2JURWtNQ0lHQTFVRUNnd2JSbWx1WVc1emFXVnNiQ0JKUkMxVVpXdHVhV3NnUWtsRUlFRkNNUjh3SFFZRFZRUUxEQlpDWVc1clNVUWdUV1Z0WW1WeUlFSmhibXR6SUVOQk1TUXdJZ1lEVlFRRERCdFVaWE4wSUVKaGJtdEpSQ0JTYjI5MElFTkJJSFl4SUZSbGMzUXdIaGNOTVRFd09USXlNVFF4TlRBeldoY05NelF4TWpNeE1UUXdNVE16V2pCdU1Rc3dDUVlEVlFRR0V3SlRSVEVkTUJzR0ExVUVDZ3dVVkdWemRHSmhibXNnUVNCQlFpQW9jSFZpYkNreEZUQVRCZ05WQkFVVERERXhNVEV4TVRFeE1URXhNVEVwTUNjR0ExVUVBd3dnVkdWemRHSmhibXNnUVNCRFFTQjJNU0JtYjNJZ1FtRnVhMGxFSUZSbGMzUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBd2dnSUtBb0lDQVFDVHFVN3V4azVRemJYUzZBclhJR1RXTmVaWHo2NWJ6ZGdveGI3OUx2WWgvcDdrY0syNW1BMnR6R3BPM1FTMWVLSkp1ODRHOVVOem00bU1sNmNuZ25YY2p4RVRZaUVxdGlqckE1bWZ6ODY1L1g2VWdPcFg3RGtvdVE4ZDVlRHloSjQ5VXJEcWxyZ29WTXgzMjJrTTBTWjRoZVZlWDgzZTFJU0ZpeXhxWkJLeGgyNXlLWUVaQTRFeklyRGoydGk4Q1JyV1BIQ1RXYUlGcGNkNVR5TWhwVVRQbjREendQaFBHV01STnhnT0FlUDRCU0RCN1I2YXo0cm94N1RQa2Qyc1dHMU9Eai8wSVJQaEpTMWRRMUI3UWlOSFk1OFJqbk5UaEVRS3dkV1dNUE1LUHRoU2QrR0VqTDlHRGFmWXhPc0lyS0ZZd2xZTkJXM0M1bWJlM1QrM2orQXhqNlcySGJnbUpYUEdJdEx1Y3hZMWtQd1Q5TDd1NW5JeGFST21oMXVUd1lxcjlwdUdxNnNvSm5nZ0VTM0s0UEloTTZrYW12bkNDUFhvcVdDQ3J1U0VQVmd5RVpFaTBzaHkrODFRc2ViMWdjOXJZZ1ZyRW5MQk9JeU1xYVR0RXhhRnByWWJ2MWYvQXdXdGpGVWkyWGlTZE44YU1wK2txYmkrMXRLSlVVUExDK0NyZHU5ZkZvLzhsc2xTZGV3K1NuUFZGZVZ6NUNPS2J0NkdURTR4Y0plUnpXNXdRMHc3YityR0xXaEp2d1JKc1M1R1h2cWEzTGc4RXlXaUxKc3d1VEZhRXdQVUR2WkJ2eUZaRVplcnRLZ1piUll2ZXpvOS9ncnd5Qittb3JWckxyeXU5Y2hZRVl3RTU1MHV6eUt0elhVenlnVjhGcFhlOURwbXBPU2ZHTUFVUlFJREFRQUJvM1l3ZERBZEJnTlZIUTRFRmdRVW8vSjRlUjByUllySjRjcVZDZVdlYjg3TFRzVXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QWZCZ05WSFNNRUdEQVdnQlJLOTZOcUNOb0lPQmNaVXlqSTJxYldOTmhhdWpBUkJnTlZIU0FFQ2pBSU1BWUdCQ29EQkFVd0RnWURWUjBQQVFIL0JBUURBZ0VHTUEwR0NTcUdTSWIzRFFFQkRRVUFBNElDQVFEUDFEb3hqRWpleUcyN3hlYWkrbXB4eEpvcUIxUkRWVEVZODZSZE55bHVVS1FPSWJmS0pNbVgrRFg0dlR1VVFTMzUzOXh6SEt3cGo2Z2sraVpWakYxVW9KdEdwK3F1cmpqYXJPaDQ0cysrczB5V0tpS3JKQkVsb0puOG8rWVhGVDhDN2UxV3RxSlZvYUZkREJDdm9oSnlLMjBQS1M3L25VRzViN0o2aXEzNTE3WXZqYjREOTRMdDBkSE5TZ0QyQklJSG1Oa3BTWVdneWkxc2VhdmhONUFqdGZKcjRwMTAxdTJTc05jTEFyNDJBNWZyYW45dkwyOUhqYU0yTVRVOEwwT3hvSVg4bGdjcFV5OXdjaTdsSFFLT2l3YU9jSUtmQ0MxcU03bE81ejBjNFArbzB6VDYxODN4SlYzcm13MjJHR1lkNDBFQnFXOTdvcUJLMElqK0tsNXN1eWNaNEoycUsxYVZjaVlCWnNCTmxidG16L2s4SHVCeHk5V2JFZVBzWS82MUk1MGZCTFNBa1ZrL1RlYTRqK05OSEoxaW1wN0JvMThhTG84cGxiOWUyaVplSUR6SDF1NjZvMFJGWWJIZG5KRDhDblBlQkxWZ1N2RXFtQlMxMWZnSHI4MS90azVsSnhjS2VqZHNFZnR6R1F4d3VIdy9wamtqb2JJa3hycm9YcGE2aVhva1Z5SDRiZTE2K2YvZERhRWtoOVJmOExoMVVFUVB4eHBDeUlTTWlmSDVwTDc4REtoR25oOFZmaTdFZXNVVjFrNlkzZVZDRncyQ0NLV2N2WHNKYjlRcUxGc0RxSWxXUGg2YkJnTTRhWGZwZTBhckRyZ1lSYmJ4OEw2b3VoeXhBSHdqdHo5aTBsWGV6V01YNWY3UVlSRU1UQzV5QlBOVFRQMmZDTnNvelE9PTwvWDUwOUNlcnRpZmljYXRlPjwvWDUwOURhdGE+PC9LZXlJbmZvPjxPYmplY3Q+PGJhbmtJZFNpZ25lZERhdGEgeG1sbnM9Imh0dHA6Ly93d3cuYmFua2lkLmNvbS9zaWduYXR1cmUvdjEuMC4wL3R5cGVzIiBJZD0iYmlkU2lnbmVkRGF0YSI+PHNydkluZm8+PG5hbWU+WTI0OVFtRnVhMGxFSUZKUUlHSjFjM1JsYzNRZ1kyVnlkREV3TEc1aGJXVTlSblZ1YTNScGIyNXpkR3JEcEc1emRHVnlJRlJsYzNRc2MyVnlhV0ZzVG5WdFltVnlQVFUxTmpZek1EUTVNamdzYnoxQ1lXNXJTVVFnVkdWemRDeGpQVk5GPC9uYW1lPjxub25jZT40alZJMzJtNDM1dTNIZVJIcmFTV2d6Tjk3dEk9PC9ub25jZT48ZGlzcGxheU5hbWU+Um5WdWEzUnBiMjV6ZEdyRHBHNXpkR1Z5SUZSbGMzUT08L2Rpc3BsYXlOYW1lPjwvc3J2SW5mbz48Y2xpZW50SW5mbz48ZnVuY0lkPklkZW50aWZpY2F0aW9uPC9mdW5jSWQ+PHZlcnNpb24+VUdWeWMyOXVZV3c5Tnk0MExqQXVNalltUW1GdWEwbEVYMlY0WlQwM0xqUXVNQzR5TmlaQ1NWTlFQVGN1TkM0d0xqSTJKbkJzWVhSbWIzSnRQWGRwYmpZMEptOXpYM1psY25OcGIyNDlkMmx1TnlaMWFHazlaM2N6TUdoMlFtZzRRMkV2VlRWNFVrTXdOMW94YURSdU1UUjZaQ1pzWldkaFkzbDFhR2s5WjNKUmQyRnBOalpDUlN0bFQzTjJRamRxU0VoRVkwczRUbVpTZENaaVpYTjBYMkpsWm05eVpUMHhOVE16TURjNU1ESTRKbE50WVhKMFEyRnlaRjlTWldGa1pYSTlRbkp2WVdSamIyMGdRMjl5Y0NCRGIyNTBZV04wWldRZ1UyMWhjblJEWVhKa0lEQW08L3ZlcnNpb24+PGVudj48YWk+PHR5cGU+VjBsT1JFOVhVdz09PC90eXBlPjxkZXZpY2VJbmZvPmQybHVOdz09PC9kZXZpY2VJbmZvPjx1aGk+Z3czMGh2Qmg4Q2EvVTV4UkMwN1oxaDRuMTR6ZDwvdWhpPjxmc2liPjE8L2ZzaWI+PHV0Yj5jczE8L3V0Yj48cmVxdWlyZW1lbnQ+PGNvbmRpdGlvbj48dHlwZT5DZXJ0aWZpY2F0ZVBvbGljaWVzPC90eXBlPjx2YWx1ZT4xLjIuMy40LjU8L3ZhbHVlPjwvY29uZGl0aW9uPjwvcmVxdWlyZW1lbnQ+PHVhdXRoPnB3PC91YXV0aD48L2FpPjwvZW52PjwvY2xpZW50SW5mbz48L2JhbmtJZFNpZ25lZERhdGE+PC9PYmplY3Q+PC9TaWduYXR1cmU+ </saml2:AttributeValue> </saml2:Attribute> </saml2:AttributeStatement> </saml2:Assertion> </saml2p:Response>

4.3 Logout Request

Observera att Logout Request inte per automatik fungerar hela vägen ut i IdP test. IdP:n vet inte var SLO-responsen skall skickas, men användaren blir ändå utloggad ur IdP:n. Skall hela SLO-flödet testas i IdP test måste test-SP konfigureras in speciellt i IdP test vilket normalt inte görs/ingår. I produktion konfigureras SLO normalt för varje SP.

```xml

https://my.sp/

_10ebf5c504763052dd842ad20f8bbfb1f5

_1004c6a48dc3f03a94c9b98c23e53b06aa

```

4.4 Logout Response

Exempel på Logout Response.

```xml

https://m00-mg-local.idp.funktionstjanster.se/samlv2/id p/metadata/0/10Logout successful ```

4.5 Authentication Response – Login Fail + Avbryt/Cancel

Om användaren misslyckas med inloggningen med sin e-legitimation hos IdP visar IdP:n direkt upp felmeddelanden till användaren.

OBS om ni önskar få tillbaka responsen så meddela CGI i samband med beställning.

```xml

https://my.sp/0MzT-aPAv;USER_CANCEL ```

StatusMessage innehåller ett ReferensID följt av något av följande fel.

ALREADY_IN_PROGRESS

CANCELLED

CERTIFICATE_ERR

EXPIRED_TRANSACTION

INVALID_PARAMETERS

START_FAILED

USER_CANCEL

UNKNOWN

4.5.1 DIGG tekniskt ramverk

Ifall det finns behov av att få cancel enligt DIGG tekniska ramverk så är det möjligt, dock kräver det att kör mot specifik IDP som har den inställningen.

```xml

https://m00-mg-local.testidp.funktionstjanster.se/samlv2/idp/metadata/0/24User pressed cancel

```

5 Anslutning

När en SP ska ansluta sig till IdP produktion behöver en del uppgifter utbytas. Dessa uppgifter skall fyllas i Teknisk Bilaga del2 eller annat lämpligt sätt och skickas till funktionstjanster@cgi.com.

5.1 Certifikat för att verifiera XML-DSig

SP måste verifiera att signaturen på IdP:ns svar är korrekt (XML-C14N). För detta behövs CGI:s publika nyckel för IdP-tjänsten. Certifikatet återfinns i metadatat.

6 Tydlighet att inloggning sker på annan domän

Vi rekommenderar att varje SP på sina sidor förklarar att tjänsten säker inloggning sker från CGI och att URL på inloggningssidan kommer vara på funktionstjanster.se

Detta för att vara tydlig till användaren och undvika att användaren blir osäker.

7 Eget domännamn

Det är möjligt att använda eget domännamn på federationen om så önskas. Då ser era användare t.ex. m0x-mg-local.idp.myndighet.se istället för m0x-mg-local.idp.funktionstjanster.se i adressfältet. Kunden behöver delegera en subdomän till funktionstjänsters DNS för att detta ska fungera.

9 Exempel på SP programvaror

SAML 2.0 har ett mycket brett leverantörsstöd. Det finns för alla olika plattformar och miljöer.

9.1 Licensierade produkter – svenska leverantörer

MobilityGuard – Testat av kund + leverantören

Nordic Edge – Testat av leverantören

PortWise – Testat av leverantören

Abou - Testat av leverantören

9.2 Licensierade produkter – internationella leverantörer

IBM Tivoli Federated Identity Manager TFIM

Oracle Federation Manager

Ping Identity

RSA Federated Identity Manager

Siteminder Federated Security Manager

Microsoft ADFS

SAP

9.3 Open Source

OpenSAML – Java, bibliotek för den som utvecklar själv

OpenSSO (Numera OpenAM under ForgeRock)

Shibboleth

OIOSAML.NET

SimpelSamlPHP

sustainsys.saml2

10 Övriga funktioner

10.1 Språkstöd

Det finns möjlighet att införa kundanpassade sidor på IdP:n med språkstöd. Vilket språk som skall visas styrs av vad som anges i requesten. Alla texter som sen skall visas behöver in i en språkfil alternativ hanteras via CSS med fördel för kundanpassade sidor. Detta är lite arbete att sätta upp, men skall man ha många olika språk är det bäst att göra rätt från början. Fördelen är att alla feltexter då också kommer på rätt språk. För att välja språk i anropet kan "?lang=en" eller "?lang=sv" läggas till på AssertionConsumerServiceUrl i AuthnRequest-anropet.

Det är även möjligt att använda sig av en ”flagga” på sidan som byter språket via länk.

```html /mg-local/setlanguage?lang=en

/mg-local/setlanguage?lang=sv ```

10.2 Begär en autentiseringsmetod eller LOA-klass

10.2.1 Begär LOA-klass med AuthnContextClassRef

För att begära en specifik LOA-klass skicka med klassens uri i AuthnContextClassRef. För definition av LOA-klasser se DIGGs tekniska ramverk

LOA-klasser kan endast nyttjas via IdP som stödjer tekniskt ramverk, se metadata ovan.

För mer information kontakta funktionstjanster@cgi.com

10.2.2 Begär autentiseringsmetod med local.methodid

Använd i första hand en IdP som enbart har en autentiseringsmetod.

En SP kan i requesten till IdP:n direkt ange vilken autentiseringsmetod som skall användas. Alternativt anropa en IDP som bara har en inloggningsmetod. Nedan beskrivs hur man skickar med metod i AuthnRequest-anropet. Om man listar inloggningsmetoderna i den egna Discovery-tjänsten minimeras det GUI som IdP:n visar till användaren.

I requesten så kan vi ta mot och tolka strängen local.methodid

IdP test har följande möjliga inloggningsmetoder:

Exempel: Inloggning med BankID i test.

```xml

   <saml2:AuthnContextClassRef xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">urn:local.methodid.ccp10</saml2:AuthnContextClassRef>

```

IdP produktion har följande möjliga inloggningsmetoder:

10.4 Skicka med personnummer till inloggningsmetoden

Det är även möjligt att skicka med personnummer om man har valt att använda sig av BankID på annan enhet.

```xml https://my.sp/191212121212

```

10.5 Information kring respektive certifikatsutgivare

10.5.1 Telia

Vid inloggning med Telia så försöker den först verifiera att det finns en NetID installation, om den ej finner någon installation av NetID så kommer den försöka med dubbelsidig SSL. Dock måste användaren manuellt som det ser ut idag göra denna bekräftelse.

10.5.2 BankID

BankID hanteras som BankID på samma enhet och BankID på annan enhet.

10.5.2.1 BankID på samma enhet

Denna metod använder sig av BankID funktionen autostart.

10.5.2.2 BankID på annan enhet

Denna metod kräver att personnumer matas in. Detta kan ske på SP sidan om så önskas. Personnummer måste även skickas med vid signering om inloggning skett med BankID på annan enhet.

10.5.3 Mobilt BankID, BankID på kort, BankID på fil

Idag accepteras alla typer av BankID, det är dock möjligt att separera dessa om så önskas. Då blir det fler alternativ för användaren som visas på discoverytjänsten.

10.6 ipv4/ipv6

Vår IdP hanterar både ipv4 och ipv6. Om användaren har dualstack så är det operativsystemet som avgör vilket som kommer användas. Oftast är det ipv6.

11 Federering

11.1 Tvingad autentisering eller kontroll av att användare fortfarande är inloggad (aktiv) i IdP:n

För en användare som loggat in med e-legitimation via IdP:n, så är den inloggningen giltig (aktiv) i 60 minuter såvida en SLO-request inte skickats. Detta innebär att användaren kan växla mellan olika e-tjänster och få SSO. (så kallad federering). Men ibland är detta inte önskvärt utan e-tjänsten kanske vill kräva en ny autentisering. Det kan också vara så att e-tjänsten vill kontrollera att användaren verkligen fortfarande är inloggad i IdP:n och att IdP:n inte mottagit någon SLO-request för användaren från annan SP eller att 60-minuters gränsen inte passerat. Dessa två funktioner går att använda och kombinera i SAML standarden med ForceAuthn och IsPassive.

I AuthnRequesten kan SP:n sätta dels ForceAuthn och dels IsPassive för att styra hur IdP:n ska hantera inloggningen.

- IsPassive=true innebär att om användaren inte är inloggad på IdP:n skickas AuthnFailed tillbaka till SP:n (ingen användarinteraktion tillåts).

- ForceAuthn=true innebär att användaren måste logga in, oavsett om användaren redan var inloggad. (användarinteraktion krävs)

CGI kan konfigurera varje SP med "Only allow active authn" som Ja eller Nej. Med detta kan olika ”funktioner” med isPassive fås:

Om "Only allow active authn" för SP är Ja (aktiverad):

Om "Only allow active authn" INTE är aktiverad (Nej):