Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in den Identity Provider

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in den Identity Provider"—  Präsentation transkript:

1 Einführung in den Identity Provider
Eine technische Übersicht Shibboleth Workshop Freiburg, Franck Borel, AAR-Projekt, UB Freiburg

2 Übersicht Die Aufgaben des Identity Providers
Der Aufbau des Identity Providers Die Übertragungsmethoden von Nachrichten: Grundlagen und Konzept Kleiner Exkurs in Shibboleth-SAML Browser/Post und Browser/Artifact Metadaten Franck Borel, AAR-Projekt, UB-Freiburg

3 Die Aufgaben des Identity Provider
An identity provider maintains user credentials and attributes (T. Scavo & S.Cantor, 2005). User credentials  Authentifizierung Attributes  Autorisierung Franck Borel, AAR-Projekt, UB-Freiburg

4 Der Aufbau des Identity Providers
Komponenten des Identity Provider Beantwortet Anfragen zu Benutzerrechten Identifiziert den Benutzer Authentication Authority Attribute Authority (AA) SSO Service (SSO) Artifact Resolution Service Wartet auf Benutzer-anmeldungen und leitet den Benutzer an die Authentication Authority weiter Beantwortet Anfragen die mit Browser/ Artifact gesendet wurden Franck Borel, AAR-Projekt, UB-Freiburg

5 Die Übertragungsmethoden von Nachrichten
Die Übertragung von Nachrichten erfolgt mit Hilfe von: SAML Browser/Post Browser/Artifact Franck Borel, AAR-Projekt, UB-Freiburg

6 Die Übertragungsmethoden von Nachrichten
Übertragung von Nachrichten – Übersicht ohne WAYF Identity Provider (6) POST Client Authentication Authority Attribute Authority (AA) (7) 200 (4) 302 SSO Dienst Artifact Resolution Service (3) Get (8) 302 Assertion Consumer Service (7) 200 Attribute Requester (5) Get (6) POST (10) 200 (9) Get Access Control Target Resource (2) 302 (1) Get Service Provider Franck Borel, AAR-Projekt, UB-Freiburg

7 Die Übertragungsmethoden von Nachrichten
Kleiner Exkurs in Shibboleth-SAML Eigenschaften: Können digital signiert werden Werden in fünf verschiedenen Varianten verwendet: Bestätigung einer erfolgreichen Authentifizierung Fehlerrückmeldung Attributantwort Autorisierungsnachricht anhand derer der Service Provider entscheiden kann, ob ein Benutzer auf eine Ressource zugreifen darf oder nicht Zusammengesetzter Typ aus a und c (Browser/Artifact) Franck Borel, AAR-Projekt, UB-Freiburg

8 Die Übertragungsmethoden von Nachrichten
Kleiner Exkurs in SAML Beispiel für eine Authentifizierungsbestätigung (SSO Bestätigung) <saml:Assertion ...> <saml:Conditions NotBefore=" T09:17:02Z" NotOnOrAfter=" T09:27:02Z"> <saml:AudienceRestrictionCondition> <saml:Audience>http://sp.example.org/shibboleth</saml:Audience> </saml:AudienceRestrictionCondition> </saml:Conditions> <saml:AuthenticationStatement AuthenticationInstant=" T09:22:00Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password"> <saml:Subject> <saml:NameIdentifier Format="urn:mace:shibboleth:1.0:nameIdentifier" NameQualifier="https://aar.ub.uni-freiburg.de/shibboleth-idp13b"> 3f7b3dcf ecd-92c8-1544f346baf8 </saml:NameIdentifier> <saml:SubjectConfirmation> <saml:ConfirmationMethod> urn:oasis:names:tc:SAML:1.0:cm:bearer </saml:ConfirmationMethod> </saml:SubjectConfirmation> </saml:Subject> </saml:AuthenticationStatement> </saml:Assertion> Zeitstempel Empfänger Authentifizierungs-methode Handle Franck Borel, AAR-Projekt, UB-Freiburg

9 Die Übertragungsmethoden von Nachrichten
Kleiner Exkurs in SAML Beispiel für eine SAML-Nachricht mit Benutzerrechten (Attribute) <saml:Assertion …> <saml:Conditions NotBefore=" T09:17:05Z„ NotOnOrAfter=" T09:52:05Z"> <saml:AudienceRestrictionCondition> <saml:Audience>http://sp.example.org/shibboleth</saml:Audience> </saml:AudienceRestrictionCondition> </saml:Conditions> <saml:AttributeStatement> <saml:Subject> <saml:NameIdentifier Format="urn:mace:shibboleth:1.0:nameIdentifier„ NameQualifier="https://idp.example.org/shibboleth"> 3f7b3dcf ecd-92c8-1544f346baf8 </saml:NameIdentifier> </saml:Subject> <saml:Attribute AttributeName="urn:mace:dir:attribute-def:eduPersonPrincipalName" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri"> <saml:AttributeValue Scope="example.org">userid</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion> Empfänger Handle Attribut Franck Borel, AAR-Projekt, UB-Freiburg

10 Die Übertragungsmethoden von Nachrichten
Es kommen zwei verschiedene Übertragungsmethoden zum Einsatz: Browser/Post: Bestehend aus einer Anfrage mit GET und einer Antwort mit Browser/Post. Browser/Artifact: Bestehend aus einer Anfrage mit GET und einer Antwort mit Browser/Artifact. Franck Borel, AAR-Projekt, UB-Freiburg

11 Die Übertragungsmethoden von Nachrichten
Authentifizierung mit Browser/Post https://idp.example.org/shibboleth/SSO? target=https://sp.example.org/myresource& shire=https://sp.example.org/shibboleth/SSO& providerId=https://sp.example.org/shibboleth& time= Client <form method="post" action="https://sp.example.org/shibboleth/SSO/POST" ...> <input name="TARGET" type="hidden" value="https://sp.example.org/myresource" /> <input name="SAMLResponse" value="response" type="hidden" /> ... <input type="submit" value="Submit"></form> (4)200 (3)Get <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" IssueInstant=" T09:22:02Z" Recipient="https://sp.example.org/shibboleth/SSO/POST" ResponseID="c af61-4fce-8b98-e b306"> <!—- ds:Signature Element --> <samlp:Status><samlp:StatusCode Value="samlp:Success"/> </samlp:Status><!-- SAML assertion Element --> </samlp:Response> SSO Service Authentication Authority Franck Borel, AAR-Projekt, UB-Freiburg

12 Die Übertragungsmethoden von Nachrichten
Authentifizierung mit Browser/Artifact Client Authentication Authority Attribute Authority (4) 302 SSO Service Artifact Resolution Service (3) Get (8) 302 Assertion Consumer Service (7) 200 (6) POST (5) Get (10) 200 (9) Get Access Control Target Resource (2) 302 (1) Get Franck Borel, AAR-Projekt, UB-Freiburg

13 Die Übertragungsmethoden von Nachrichten
Authentifizierung mit Browser/Artifact 1. Benutzeranfrage an den SSO https://idp.example.org/shibboleth/SSO? target=https://sp.example.org/myresource& shire=https://sp.example.org/shibboleth/SSO/Artifact &providerId=https://sp.example.org/shibboleth 2. Anfrage des Service Providers an den Identity Provider <?xml version="1.1" encoding="ISO "?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" RequestID="f81d4fae-7dec-11d0-a765-00a0c91e6bf6" IssueInstant=" T09:22:04Z"> <samlp:AssertionArtifact> AAEwGDwd3Z7Fr1GPbM82Fk2CZbpNB1dxD+t2Prp+TDtqxVA78iMf3F23 </samlp:AssertionArtifact> </samlp:Request> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 3. Antwort des Identity Provider an den Service Provider <?xml version="1.1" encoding="ISO "?> <SOAP-ENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" Recipient="https://sp.example.org/shibboleth/SSO/Artifact" ResponseID="00099cf1-a355-10f9-9e b13a2b" InResponseTo="f81d4fae-7dec-11d0-a765-00a0c91e6bf6" IssueInstant=" T09:22:05Z"> <samlp:Status> <samlp:StatusCode Value="samlp:Success"/> </samlp:Status> <saml:Assertion …><!-- Daten zur Authentifizierung --></saml:Assertion> </samlp:Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Franck Borel, AAR-Projekt, UB-Freiburg

14 Die Übertragungsmethoden von Nachrichten
Übertragung der Attribute: Die Übertragung erfolgt in zwei Schritten: Anfrage vom Service Provider mit einer SAML-Nachricht (Browser/Post oder Browser/Artifact) Antwort vom Identity Provider mit einer SAML-Nachricht (Browser/Post oder Browser/Artifact) Der Austausch von Attributen ist optional. Der Service Provider kann aufgrund der Authentifizierung Ressourcen für einen Benutzer freigeben. In der Praxis wird der Service Provider im Normalfall mehr Informationen zum Benutzer benötigen. Franck Borel, AAR-Projekt, UB-Freiburg

15 Die Übertragungsmethoden von Nachrichten
Übertragung von Attributen Identity Provider Browser/Artifact Client Authentication Authority Attribute Authority (4) 302 SSO Service Artifact Resolution Service (3) Get (7) 200 (6) POST (6) POST (8) 302 Assertion Consumer Service (7) 200 (5) Get Attribute Requester (10) 200 (9) Get Access Control Target Resource (2) 302 (1) Get Browser/Post Service Provider Franck Borel, AAR-Projekt, UB-Freiburg

16 Die Übertragungsmethoden von Nachrichten
Attributanfrage mit Browser/Post 1. Anfrage an die Attribute Authority (AA) <?xml version="1.1" encoding="ISO "?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <samlp:Request xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" IssueInstant=" T09:22:04Z" RequestID="aaf a-fe114412ab72"> <samlp:AttributeQuery Resource="https://sp.example.org/shibboleth"> <saml:Subject> <saml:NameIdentifier Format="urn:mace:shibboleth:1.0:nameIdentifier" NameQualifier="https://idp.example.org/shibboleth"> 3f7b3dcf ecd-92c8-1544f346baf8</saml:NameIdentifier> </saml:Subject> <saml:AttributeDesignator AttributeName="urn:mace:dir:attribute-def:eduPersonPrincipalName" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri"/> </samlp:AttributeQuery> </samlp:Request> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 2. Antwort mit Attributen an den Service Provider <?xml version="1.1" encoding="ISO "?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" InResponseTo="aaf a-fe114412ab72" IssueInstant=" T09:22:05Z" MajorVersion="1" MinorVersion="1" ResponseID="b07b804c-7c29-ea f3d6f7928ac"> <samlp:Status> <samlp:StatusCode Value="samlp:Success"/> </samlp:Status> <saml:Assertion … <!– Attribute --> </saml:Assertion> </samlp:Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Franck Borel, AAR-Projekt, UB-Freiburg

17 Die Übertragungsmethoden von Nachrichten
Attributanfrage mit Browser/Artifact 1. Anfrage an den SSO-Dienst https://idp.example.org/shibboleth/SSO? target=https://sp.example.org/myresource& SAMLart=AAEwGDwd3Z7FrGPbM82Fk2CZbpNB7YuJ8k%2BvmCjh9Y4Wsq6H5%2BKU4C SAMLart=AAEwGDwd3Z7Fr1GPbM82Fk2CZbpNB8tb%2By6Yoo40XGfl4QfLKq9xZ8UW 2. Anfrage an die Attribute Authority (AA) <?xml version="1.1" encoding="ISO "?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" RequestID="f81d4fae-7dec-11d0-a765-00a0c91e6bf6" IssueInstant=" T09:22:04Z"> <samlp:AssertionArtifact> AAEwGDwd3Z7Fr1GPbM82Fk2CZbpNB7YuJ8gk+vmCjh9Y4Wsq6H5+KU4C </samlp:AssertionArtifact> AAEwGDwd3Z7Fr1GPbM82Fk2CZbpNB8tb+y6YOO40XGfl4QfLKq9xZ8UW </samlp:Request> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 3. Antwort mit Attributen an den Service Provider <?xml version="1.1" encoding="ISO "?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" Recipient="https://sp.example.org/shibboleth/SSO/Artifact" ResponseID="00099cf1-a355-10f9-9e b13a2b" InResponseTo="f81d4fae-7dec-11d0-a765-00a0c91e6bf6" IssueInstant=" T09:22:05Z"> <samlp:Status><samlp:StatusCode Value="samlp:Success"/></samlp:Status> <saml:Assertion><!-- Daten zur Authentifikation --></saml:Assertion> <saml:Assertion><!-- Attribute --></saml:Assertion> </samlp:Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Franck Borel, AAR-Projekt, UB-Freiburg

18 Metadaten Wozu Metadaten?
Um die Kommunikation zwischen Identity Provider und Service Provider zu erleichtern Sicherheit In den Metadaten sind Identity Provider und Service Provider aufgeführt, die zu einer Föderation gehören Nur in dem Metadaten aufgeführte Zertifikate werden akzeptiert Franck Borel, AAR-Projekt, UB-Freiburg

19 Metadaten Aufbau der Metadaten: Akzeptierte und verwendete Zertifikate
Auflistung der teilnehmenden Einheiten Franck Borel, AAR-Projekt, UB-Freiburg

20 Weitere Eigenschaften zur Einheit
Metadaten Beispiel für Metadaten des Identity Providers <EntitiesDescriptor…> <!– Extension.shibmeta:KeyAuthority --> <EntityDescriptor entityID=https://idp.example.org/shib> <!-- IDPSSODescriptor Element --> <!-- AttributeAuthorityDescriptor Element --> <Organization> <OrganizationName xml:lang="de"> Shibboleth Identity Provider </OrganizationName> <OrganizationDisplayName xml:lang="de"> Shibboleth Identity Some Location </OrganizationDisplayName> <OrganizationURL xml:lang="de"> </OrganizationURL> </Organization> <ContactPerson contactType="technical"> <SurName>Shibboleth IdP Support</md:SurName> </ContactPerson> </EntityDescriptor> </EntitiesDescriptor> Zertifikate Teilnehmende Einheiten (vier Typen): <IDPSSODescriptor> → SSO Dienst (IdP) <SPSSODescriptor> → Assertion Consumer Service (SP) <AuthnAuthoritDescriptor> → Authentication Authority (IdP) <AttributeAuthorityDescriptor> → Attribute Authority (IdP) Weitere Eigenschaften zur Einheit Franck Borel, AAR-Projekt, UB-Freiburg

21 Verwendete Übertragungsmethode
Metadaten Beispiel für Metadaten des Identity Provider: SSO Dienst <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0"> <KeyDescriptor use="signing"> <ds:KeyInfo> <ds:KeyName>IdP SSO Key</ds:KeyName> </ds:KeyInfo> </KeyDescriptor> <md:ArtifactResolutionService isDefault="true" index="0" Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://idp.example.org/shibboleth/Artifact"/> <NameIDFormat> urn:oasis:names:tc:SAML:1.1:nameid-format: Address </NameIDFormat> urn:mace:shibboleth:1.0:nameIdentifier <SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://idp.example.org/shibboleth/SSO"/> </IDPSSODescriptor> Typ der Einheit Verwendete Übertragungsmethode Standort Franck Borel, AAR-Projekt, UB-Freiburg

22 Typ der teilnehmenden Einheit
Metadaten Beispiel für Metadaten des Identity Provider: Attribute Authority <AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol"> <AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://shib.ub.uni-freiburg.de:8443/shibboleth/AA/"/> <NameIDFormat> urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat> </AttributeAuthorityDescriptor> Typ der teilnehmenden Einheit Standort Franck Borel, AAR-Projekt, UB-Freiburg

23 Danke für Ihre Aufmerksamkeit! Seien Sie gespannt auf…
Identity Provider II, die Rückkehr Heute Nachmittag in diesem Raum Franck Borel, AAR-Projekt, UB-Freiburg


Herunterladen ppt "Einführung in den Identity Provider"

Ähnliche Präsentationen


Google-Anzeigen