Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.
Kommentera: Updated the ui-expand macro with the following parameter(s): []

...

Expandera
titleVisa revisionshistorik


Version

Datum

Författare

Kommentar

0.1

  

  • Kopierad från tidigare version
0.2

 

  • Kompletterat information om förval av principalen
1.0

 

Godkänd



Expandera
titleVisa innehållsförteckning

Innehållsförteckning
maxLevel2

...


AuthnRequest utan index

Kodblock
languagexml
themeRDark
titleBeror på...
<samlp:AuthnRequest xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    ForceAuthn="false" IsPassive="false" ProviderName="Sp Example Name"
    ID="ID850325636986645032969715339748802383986121801227" Version="2.0"
    IssueInstant="2013-03-21T09:31:17.235Z" Destination="https://auth.dev.inera.test:443/saml/HTTP-Redirect"
    Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified">

Här har skickar SP:n inte med något index. I exemplen ovan så leder detta till att "index=0" kommer att användas (dvs utan HSA-uppslag), eftersom "index=0" var satt som default.

Förval av principalen

Som SP finns möjligheten att på förhand ange information om användaren som inloggningen ska slutföras med. Informationen skickas in som Extension i AuthnRequesten och benämns PrincipalSelection. Se dokumentationen hos DIGG över hur PrincipalSelection fungerar och hur det är tänkt att användas. IdP stödjer idag förval av personnummer, tjänste-id, medarbetaruppdrags-id, organisationsnummer eller orgAffiliation och skickas in som Extension i AuthnRequesten och benämns PrincipalSelection. Dess . Dessa värden kan användas enskilt men också kombineras med varandra. IdP ser de tillhandahållna uppgifter som tvingande uppgifter som måste uppfyllas för att slutföra inloggningen. Vidare så gäller att ifall flera av dessa principal-fält specifierats måste samtliga uppfyllas, det räcker alltså inte ifall bara något eller några av principal-värden matchar. Skulle det visa sig att användarens uppgifter inte stämmer överens med det som skickats via PrincipalSelection kommer inloggningen markeras som misslyckad.

Under filtreringen försöker IdP:n göra ett val automatiskt baserad på den informationen som tagits emot i den AuthnRequest som skickats in. Om det är möjligt kan alltså exempelvis ett specifikt tjänste-id pekas ut och användaren slipper göra ett aktivt val i IdP:n. Om den angivna informationen inte är tillräckligt precis för att göra ett automatiskt val kommer användaren presenteras med tjänste-id eller medarbetaruppdragsväljaren i IdP:ns GUI. I väljaren presenteras endast alterantiven som på förhand har filtrerats med hjälp av de inskickade värden i PrincipalSelection.

Attribut som används i syfte att kunna förvälja principalen ändrar inte beteendet även om attributet har isRequired-flaggan specifierat i SP:ns SAML metadata. Detta för att förenkla logiken och få ett konsistent beteende för hur förvalet fungerar. Oavsett om "true" eller "false" återfinns i isRequred-flaggan kommer inloggningen misslyckas om inte IdP hittar matchande uppgifter om identiteten eller medarbetaruppdragen.

Värt att notera är att attributen som kan skickas in via PrincipalSelection inte måste återfinnas bland de begärda attributen i det inlästa SAML metadatat för SP:n. Denna lösa koppling möjliggör således att en SP kan styra förvalet av principalen utan att samtidigt också begära dessa attribut i den resulterande SAML-biljetten. Ett sådant exempel skulle kunna se ut som följer: SP:ns metadata specifierar att man begär attributet commissionName och commissionPurpose. SP:n väljer att göra ett förval av principalen genom att skicka in ett organisationsnummer i PrincipalSelection. Den resulterande SAML-biljetten innehåller commissionName och commissionPurpose, där medarbetaruppdraget som dessa uppgifter kommer ifrån tillhör det inskickade organisationsnumret.

Notera även att filtrering på organisation (orgAffiliation, organizationIdentifier) endast kan leda till en lyckad inloggning om användaren i fråga har medarbetaruppdrag konfigurerat på sig. Det är en känd begränsning då uppgifter om organisationstillhörighet endast erhålls via medarbetaruppdrag genom HSA. Som ett exempel så skulle alltså inloggningen misslyckas i fallet då en organisation matas in i förvalet av principalen men användaren saknar medarbetaruppdrag helt och hållet (eller även när inget av medarbetaruppdragen tillhör den inmatade organisationen).

Attribut

De värden som avläses i IdP:n för PrincipalSelection är:

...


Övriga attribut kommer att ignoreras. Attributet SAML Subject kan användas för att förmedla personidentifierare med samma påföljder som om PrincipalSelection används. Endast ETT sätt ska användas för att förmedla Personidentifierare. Endast ETT sätt ska användas för att förmedla tjänste-id och organisationsidentifierare.

Exempel på användningsfall

Låt oss anta att användaren har en uppsättning i HSA som grovt förenklat ser ut som strukturen nedan. Vi antar också att användaren använder sitt eget SITHS eID med personnummret som finns speficierat nedan.

För att hålla exemplen enkla används enbart employeeHsaId, commissionHsaId och personalIdentityNumber som de attribut som begärs via SP:ns SAML metadata. Kom ihåg att som tidigare beskrivet så finns det ingen koppling mellan attributen från SAML metadata och attributen som matas in via PrincipalSelection. Exemplen i tabellen är bara ett litet urval av möjliga scenarion och täcker inte alla användningsfall eller kombinationer.

  • Person: 19121212-1212
    • Tjänste-id: employeeHsaId 111
      • Medarbetaruppdrag: commissionHsaId aaa, organisationsnummer 12345
      • Medarbetaruppdrag: commissionHsaId bbb, organisationsnummer 12345
    • Tjänste-id: employeeHsaId 222
      • Medarbetaruppdrag: commissionHsaId ccc, organisationsnummer 12345
    • Tjänste-id: employeeHsaId 333
      • Medarbetaruppdrag: commissionHsaId ddd, organisationsnummer 67890
    • Tjänste-id: employeeHsaId 444 (saknar medarbetaruppdrag)

Expandera


Inmatning till förvalResultat
employeeHsaId: 111Ingen användarinteraktion krävs. SAML-biljett erhålles med employeeHsaId 111.
employeeHsaId: 444Ingen användarinteraktion krävs. SAML-biljett erhålles med employeeHsaId 444.
employeeHsaId: 999

Inloggningen misslyckas, inget giltigt tjänste-id hittas.

commissionHsaId: bbbIngen användarinteraktion krävs. SAML-biljett erhålles med employeeHsaId 111.
commissionHsaId: zzzInloggningen misslyckas, inget giltigt medarbetaruppdrag hittas.
organisationIdentifier: 12345

Användarinteraktion krävs, användaren presenteras med tjänste-id-väljaren och får välja bland tjänste-id:n 111 och 222. SAML-biljett erhålles med det valda employeeHsaId.

employeeHsaId: 333

organizationIdentifier: 67890

Ingen användarinteraktion krävs. SAML-biljett erhålles med employeeHsaId 333.

employeeHsaId: 333

organizationIdentifier: 12345

Inloggningen misslyckas, inget matchande medarbetaruppdrag hittas.

personalIdentityNumber: 19000101-0001

Inloggningen misslyckas, personnummer matchar inte identiteten.



Expandera


Inmatning till förvalResultat

commissionHsaId: ccc

Ingen användarinteraktion krävs. SAML-biljett erhålles med commissionHsaId ccc.

employeeHsaId: 111

Användarinteraktion krävs, användaren presenteras med medarbetaruppdrags-väljaren och får välja bland medarbetaruppdrag aaa och bbb. SAML-biljett erhålles med det valda commissionHsaId.

employeeHsaId: 444

commissionHsaId har isRequired="false": Inloggningen lyckas. Tom SAML-biljett erhålles.

commissionHsaId har isRequired="true": Inloggningen misslyckas. IdP kan inte uppfylla krav på commissionHsaId.

employeeHsaId: 999

Inloggningen misslyckas, inget giltigt tjänste-id hittas.

organizationIdentifier: 12345

Användarinteraktion krävs, användaren presenteras med medarbetaruppdrags-väljaren och får välja bland medarbetaruppdrag aaa, bbb och ccc. SAML-biljett erhålles med det valda commissionHsaId.

employeeHsaId: 222

organizationIdentifier: 12345

Ingen användarinteraktion krävs. SAML-biljett erhålles med commissionHsaId ccc.

personalIdentityNumber: 19121212-1212

Användarinteraktion krävs, användaren presenteras med medarbetaruppdrags-väljaren och får välja bland medarbetaruppdrag aaa, bbb, ccc, ddd. SAML-biljett erhålles med det valda commissionHsaId.



Expandera


Inmatning till förvalResultat

personalIdentityNumber: 19121212-1212

Ingen användarinteraktion krävs. SAML-biljett erhålles med personalIdentityNumber 19121212-1212.

personalIdentityNumber: 19000101-0001

Inloggningen misslyckas, personnummer matchar inte identiteten.

employeeHsaId: 111

Ingen användarinteraktion krävs. SAML-biljett erhålles med personalIdentityNumber 19121212-1212.

commissionHsaId: aaa

Ingen användarinteraktion krävs. SAML-biljett erhålles med personalIdentityNumber 19121212-1212.




Förval av principalen i praktiken

I exemplet nedan förväntas användaren bli inloggad med personnummer 194211196979, tjänste-id:t TSTNMT2321000156-10NG för organisationen med organisationsnumret 232100-0214.

Kodblock
languagexml
themeRDark
titlePrincipalSelection
<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
  Destination="https://idp.dev.inera.test:8443/saml/sso/HTTP-POST"
  ForceAuthn="false"
  ID="a4c722ff-4a14-4719-9c11-a36a47c00139"
  IsPassive="false"
  IssueInstant="2023-10-19T08:50:52.279Z"
  ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
  Version="2.0">
  <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">https://sp.dev.inera.test:8881</saml2:Issuer>
  <saml2p:Extensions>
    <psc:PrincipalSelection xmlns:psc="http://id.swedenconnect.se/authn/1.0/principal-selection/ns">
      <psc:MatchValue Name="http://sambi.se/attributes/1/personalIdentityNumber" xmlns:psc="http://id.swedenconnect.se/authn/1.0/principal-selection/ns">194211196979</psc:MatchValue>
      <psc:MatchValue Name="urn:orgAffiliation" xmlns:psc="http://id.swedenconnect.se/authn/1.0/principal-selection/ns">SE2321000040-4C08@2321000040</psc:MatchValue>  
    </psc:PrincipalSelection>
  </saml2p:Extensions>
</saml2p:AuthnRequest>