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

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

Embed Size (px)

Citation preview

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

Einführung in den Identity ProviderEine technische Übersicht

Shibboleth Workshop Freiburg, 12.10.2005

Franck Borel, AAR-Projekt, UB Freiburg

Page 2: Einführung in den Identity Provider Eine technische Übersicht Shibboleth Workshop Freiburg, 12.10.2005 Franck Borel, AAR-Projekt, UB 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

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

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

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

Franck Borel, AAR-Projekt, UB-Freiburg 4

Der Aufbau des Identity Providers

• Komponenten des Identity Provider

Authentication Authority

Attribute Authority (AA)

SSO Service (SSO)

Artifact Resolution

Service

Identifiziert den Benutzer

Wartet auf Benutzer-anmeldungen und leitet den Benutzer an die Authentication Authority weiter

Beantwortet Anfragen zu Benutzerrechten

Beantwortet Anfragen die mit Browser/Artifact gesendet wurden

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

Franck Borel, AAR-Projekt, UB-Freiburg 5

Die Übertragungsmethoden von Nachrichten

• Die Übertragung von Nachrichten erfolgt mit Hilfe von:

– SAML– Browser/Post– Browser/Artifact

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

Franck Borel, AAR-Projekt, UB-Freiburg 6

Die Übertragungsmethoden von Nachrichten

Client

Authentication Authority

Attribute Authority (AA)

SSO DienstArtifact

Resolution Service

Assertion Consumer

Service

Target Resource

Access

Contro

l

Identity Provider

Service Provider

(4) 302

(3) Get

(8) 302

(5) Get

(10) 200(9) Get(2) 302(1) Get

(6) POST

(7) 200

(7) 200

(6) POST

Übertragung von Nachrichten – Übersicht ohne WAYF

Attribute Requester

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

Franck Borel, AAR-Projekt, UB-Freiburg 7

Die Übertragungsmethoden von Nachrichten

Kleiner Exkurs in Shibboleth-SAMLEigenschaften:• Können digital signiert werden• Werden in fünf verschiedenen Varianten verwendet:

a. Bestätigung einer erfolgreichen Authentifizierungb. Fehlerrückmeldungc. Attributantwortd. Autorisierungsnachricht anhand derer der Service Provider

entscheiden kann, ob ein Benutzer auf eine Ressource zugreifen darf oder nicht

e. Zusammengesetzter Typ aus a und c (Browser/Artifact)

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

Franck Borel, AAR-Projekt, UB-Freiburg 8

Die Übertragungsmethoden von Nachrichten

Kleiner Exkurs in SAMLBeispiel für eine Authentifizierungsbestätigung (SSO Bestätigung)

<saml:Assertion ...> <saml:Conditions NotBefore="2004-12-05T09:17:02Z" NotOnOrAfter="2004-1205T09:27:02Z"> <saml:AudienceRestrictionCondition> <saml:Audience>http://sp.example.org/shibboleth</saml:Audience> </saml:AudienceRestrictionCondition> </saml:Conditions> <saml:AuthenticationStatement AuthenticationInstant="2004-12-05T09: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-1674-4ecd-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

Authentifizierungs-methodeHandle

Empfänger

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

Franck Borel, AAR-Projekt, UB-Freiburg 9

Die Übertragungsmethoden von Nachrichten

Kleiner Exkurs in SAMLBeispiel für eine SAML-Nachricht mit Benutzerrechten (Attribute)

<saml:Assertion …> <saml:Conditions NotBefore="2004-12-05T09:17:05Z„ NotOnOrAfter="2004-12-05T09: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-1674-4ecd-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>

Attribut

Handle

Empfänger

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

Franck Borel, AAR-Projekt, UB-Freiburg 10

Die Übertragungsmethoden von Nachrichten

• Es kommen zwei verschiedene Übertragungsmethoden zum Einsatz:a. Browser/Post: Bestehend aus einer Anfrage mit GET und

einer Antwort mit Browser/Post.

b. Browser/Artifact: Bestehend aus einer Anfrage mit GET und einer Antwort mit Browser/Artifact.

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

Franck Borel, AAR-Projekt, UB-Freiburg 11

Die Übertragungsmethoden von Nachrichten

Authentifizierung mit Browser/Post

Client

SSO Service

Authentication Authority

(4)200 (3)Get

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=1102260120

<samlp:Responsexmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol"MajorVersion="1" MinorVersion="1"IssueInstant="2004-12-05T09:22:02Z"Recipient="https://sp.example.org/shibboleth/SSO/POST"ResponseID="c7055387-af61-4fce-8b98-e2927324b306"> <!—- ds:Signature Element --> <samlp:Status><samlp:StatusCode Value="samlp:Success"/> </samlp:Status><!-- SAML assertion Element --></samlp:Response>

<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>

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

Franck Borel, AAR-Projekt, UB-Freiburg 12

Die Übertragungsmethoden von Nachrichten

Authentifizierung mit Browser/Artifact

Client

Authentication Authority

Attribute Authority

SSO ServiceArtifact

Resolution Service

Assertion Consumer

Service

Target Resource

Access

Contro

l

(4) 302

(3) Get

(8) 302

(5) Get

(10) 200(9) Get(2) 302(1) Get

(6) POST(7) 200

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

Franck Borel, AAR-Projekt, UB-Freiburg 13

1. Benutzeranfrage an den SSOhttps://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

Die Übertragungsmethoden von Nachrichten

Authentifizierung mit Browser/Artifact

2. Anfrage des Service Providers an den Identity Provider<?xml version="1.1" encoding="ISO-8859-1"?><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="2004-12-05T09: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-8859-1"?><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-9e95-004005b13a2b" InResponseTo="f81d4fae-7dec-11d0-a765-00a0c91e6bf6" IssueInstant="2004-12-05T09: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>

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

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.

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

Franck Borel, AAR-Projekt, UB-Freiburg 15

Die Übertragungsmethoden von Nachrichten

Identity Provider

Client

Authentication Authority

Attribute Authority

SSO ServiceArtifact

Resolution Service

Assertion Consumer

Service

Target Resource

Access

Contro

l

Service Provider

(4) 302

(3) Get

(8) 302

(5) Get

(10) 200(9) Get(2) 302(1) Get

(6) POST(7) 200

(7) 200 (6) POST

Browser/Artifact

Browser/Post

Übertragung von Attributen

Attribute Requester

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

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-8859-1"?><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="2004-12-05T09:22:04Z" RequestID="aaf23196-1773-2113-474a-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-1674-4ecd-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-8859-1"?><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="aaf23196-1773-2113-474a-fe114412ab72" IssueInstant="2004-12-05T09:22:05Z" MajorVersion="1" MinorVersion="1" ResponseID="b07b804c-7c29-ea16-7300-4f3d6f7928ac"> <samlp:Status> <samlp:StatusCode Value="samlp:Success"/> </samlp:Status> <saml:Assertion …

<!– Attribute --> </saml:Assertion> </samlp:Response> </SOAP-ENV:Body></SOAP-ENV:Envelope>

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

Franck Borel, AAR-Projekt, UB-Freiburg 17

1. Anfrage an den SSO-Diensthttps://idp.example.org/shibboleth/SSO? target=https://sp.example.org/myresource& SAMLart=AAEwGDwd3Z7FrGPbM82Fk2CZbpNB7YuJ8k%2BvmCjh9Y4Wsq6H5%2BKU4C SAMLart=AAEwGDwd3Z7Fr1GPbM82Fk2CZbpNB8tb%2By6Yoo40XGfl4QfLKq9xZ8UW

Die Übertragungsmethoden von Nachrichten

Attributanfrage mit Browser/Artifact

2. Anfrage an die Attribute Authority (AA)

<?xml version="1.1" encoding="ISO-8859-1"?><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="2004-12-05T09:22:04Z"> <samlp:AssertionArtifact> AAEwGDwd3Z7Fr1GPbM82Fk2CZbpNB7YuJ8gk+vmCjh9Y4Wsq6H5+KU4C </samlp:AssertionArtifact> <samlp:AssertionArtifact> AAEwGDwd3Z7Fr1GPbM82Fk2CZbpNB8tb+y6YOO40XGfl4QfLKq9xZ8UW </samlp:AssertionArtifact> </samlp:Request> </SOAP-ENV:Body></SOAP-ENV:Envelope>

3. Antwort mit Attributen an den Service Provider<?xml version="1.1" encoding="ISO-8859-1"?><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-9e95-004005b13a2b" InResponseTo="f81d4fae-7dec-11d0-a765-00a0c91e6bf6" IssueInstant="2004-12-05T09: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>

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

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

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

Franck Borel, AAR-Projekt, UB-Freiburg 19

Metadaten

Aufbau der Metadaten:

• Akzeptierte und verwendete Zertifikate

• Auflistung der teilnehmenden Einheiten

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

Franck Borel, AAR-Projekt, UB-Freiburg 20

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 Provider @ Some Location </OrganizationDisplayName> <OrganizationURL xml:lang="de"> http://aar.ub.uni-freiburg.de/ </OrganizationURL> </Organization> <ContactPerson contactType="technical"> <SurName>Shibboleth IdP Support</md:SurName> <EmailAddress>[email protected]</md:EmailAddress> </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

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

Franck Borel, AAR-Projekt, UB-Freiburg 21

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:emailAddress </NameIDFormat> <NameIDFormat> urn:mace:shibboleth:1.0:nameIdentifier </NameIDFormat> <SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://idp.example.org/shibboleth/SSO"/></IDPSSODescriptor>

Standort

Verwendete Übertragungsmethode

Typ der Einheit

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

Franck Borel, AAR-Projekt, UB-Freiburg 22

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

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

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