saml2 und oauth in der cloud - hias222.files.wordpress.comdownload sp daten download idp daten....

Post on 23-Jan-2021

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SAML2 und OAuth in der CloudUlf Lämmerhirt, Matthias Fuchs

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs1

V1 12.11.2017

Agenda

1. Übersicht SAML2 vs. OAuth 2

2. User Integration / Federation

3. SAML2 Konfigurationa. In-House Installation

b. Cloud

4. OAuth2 Konfigurationa. In-House Installation

b. Cloud

5. Zusammenfassung und Fazit

SAML2 und OAuth in der Cloud

Agenda

1. Übersicht SAML2 vs. OAuth2

2. User Integration / Federation

3. SAML2 Konfigurationa. In-House Installation

b. Cloud

4. OAuth2 Konfigurationa. In-House Installation

b. Cloud

5. Zusammenfassung und Fazit

SAML2 und OAuth in der Cloud

Einleitung: SAML 2.0 /OAuth 2.0/(OpenID Connect)

Beide Verfahren ermöglichen SSO für Web-Anwendungen decken aber unterschiedliche Anforderungen ab.

- Security Assertation Markup Language

- Open Authorization

Beide Verfahren haben eine ähnliche Inrastruktur (aber unterschiedliche Namensgebungen)

SAML Historie

- 2002: SAML 1.0 wird OASIS Standard

- 2003: SAML 1.1

- 2005: SAML 2.0

OAuth Historie

- ca. 2008: OAuth 1.0 durch IETF Arbeitsgruppe

- 2012: OAuth 2.0

- ca. 2014 OpenID Connect (Erweiterung auf Basis von OAuth 2.0)

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs5

Unterschiede SAML 2.0 / OAuth 2.0

SAML 2.0

XML-Basiertes Austauschprotokoll

Nutzt HTTP POST Messages- Eher Ungeeignet für Mobile Apps- Gut für Browser-Basiertes SSO

Token enthält UserID und ggf. weitere Informationen- Kann auch zur Autorisierung verwendet werden

OAuth 2.0

Protokoll zur Autorisierung von Zugriffen auf Ressourcen

Nicht direkt für SSO geeignet da keine Credentials des Benutzers im Token- Sicherheitsgewinn- Erweiterung durch OpenID Connect für SSO

Kann Nachrichten auch über URL-Parameter versenden

- Für Mobile Apps geeignet Standardmäßig keine Signierung des Token

- Zusätzlicher Round-Trip notwendig

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs6

SAML 2.0 Rollen und Architektur

Identity Provider (IdP)- Hält die Benutzeridentitäten- Authentisiert Anwender

Service Provider (SP)- IdR. Anwendung o.ä.- Akzeptiert Token von IdP

IdP und SP vertrauen einander

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs7

Identity Provider

Service Provider

ClientUser

TrustRelationship

OAuth 2.0 Rollen und Architektur

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs8

Authorization Server

Resource Server

OAuth 2 ClientResource OwnerUser

Resource Owner vergibt Rechte an Resourcen (Anwendungen, APIs) auf dem Resource Server an Client

Authorization Server - Authorisiert Anwender- Stellt Token aus

Resourcen Server - Hält Resourcen des User (Resourcen

Owner)

- Anwendungen, APIs, Userdaten

- Authorization und Resourceserver vertrauen sich nicht

Session-based Authentication vs Token-based Authentication

Session-based

Session_id

Server merkt sich alles anhand der Session_ID

Stateful

Wird im Memory oder einer Datenbank gespeichert (coherence)

Die Skalierung hängt vom Server ab

Token

Token

Stateless

Geringerer Speicherverbrauch am Server

Skalierbarkeit

Total Flexibilität

Überprüfung nach dem Request des Clients zum Server

1. Übersicht SAML2 vs. OAuth2

2. User Integration / Federation

3. SAML2 Konfigurationa. In-House Installation

b. Cloud

4. OAuth2 Konfigurationa. In-House Installation

b. Cloud

5. Zusammenfassung und Fazit

SAML2 und OAuth in der Cloud

User Integration / Federation OAM

Unterstützung einer Vielzahl von LDAP-Verzeichnissen.- Bestehende Benutzerverzeichnisse können

direkt genutzt werden Kann als Federation-Serviceprovider zu einem

externen IdP-Partner auftreten Nutzung von Social-IdPs (OAuth)

Benutzerdaten bleiben lokal!

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs11

User Integration / Federation Cloud

Anbindung von ADs über eine Directory Bridge

Konfiguration von externen Identityprovidern (SAML) oder „Social IdPs“ (OAuth/OIDC)

z.Z. nur eingeschränkte Möglichkeiten

Nutzung bestehender Benutzerverzeichnisse nicht ohne Aufwand möglich!

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs12

Unterscheidung SAML und OAuth: Einsatzgebiete

SAML OAuth

Applications Architektur Applikations Server Mobile- und Browser Applikationen

Beispiele ADF, JSP, JSF, PHP, .. Angular, Mobile Apps, React, Jet

Webservices SOAP REST

Etablierung Ausgereift Neuer

Bevorzugte Einsatzgebiete

User Integration Hybrid Cloud – Server Application1. User Requests Protected Website (z. B.

ADF)

2. Authentifizierung erforderlich

3. Anmeldung über SAML Identity Provider

4. User Daten werden aus lokalem Active Directory geholt

5. Zugriff mit SAML Token

SAMLIdentity Provider

SAMLIdentity Provider

SAMLService Provider

SAMLService Provider

11

22

33 44

55

CloudOracle, AWS,...

CloudOracle, AWS,...

CloudOracle, AWS,...

CloudOracle, AWS,...

User Integration Hybrid Cloud – Browser Application1. User fordern den Zugriff auf eine

Resource an (z.B. Angular auf REST)

2. Resource verlangt Authorisierung über Token

3. Applikation erfragt Token über OAuth

4. User wird über Unternehmensverzeichnis mit SAML verifiziert

5. Zugriff mit OAuthToken

6. Verifizierung Token am OAuth Server

OAuthOAuth

Protected ResourceProtected Resource

11

22

33 44

55

66

1. Übersicht SAML2 vs. OAuth2

2. User Integration / Federation

3. SAML2 Konfigurationa. In-House Installation

b. Cloud

4. OAuth2 Konfigurationa. In-House Installation

b. Cloud

5. Zusammenfassung und Fazit

SAML2 und OAuth in der Cloud

SAML2 Konfiguration Lokal 1/5 IdP Konfiguration

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs18

OAM – Identity Federation

Identityprovider anlegen

SAML2 Konfiguration Lokal 2a/5 IdP Konfiguration

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs19

Konfiguration durch XML-Datei

Name: beliebig aber eindeutig

Protokolle: SAML1.1, SAML2.0, OpenID2.0

NameID: UserID im Token

SAML2 Konfiguration Lokal 2b/5 IdP Konfiguration

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs20

Manuelle Konfiguration

Provider-ID: Kennung des SP Assertation Consumer-URL:

Adresse des Assertation Consumer Service

Angaben vom jeweiligen Service Provider

SAML2 Konfiguration Lokal 3/5 SP Konfiguration

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs21

Export der IdP-Metadaten

SAML2 Konfiguration Lokal 4/5 SP Konfiguration

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs22

Auszug aus den IdP Metadaten

SAML2 Konfiguration Lokal 5/5 Einlog Vorgang

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs23

Zugriff auf SP Einlog-Maske vom IdP- SAML-Token mit konfigurierten

Attributen wird erstellt

Identity Management Cloud

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs24

Konfiguration SAML2 in der Cloud - Schritt 1

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs25

Konfiguration SAML2 in der Cloud - Schritt 2a

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs26

Manuelle Konfiguration Entity-ID=Provider-ID- Kennung des SP

Konfiguration SAML2 in der Cloud - Schritt 2b

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs27

Manuelle Konfiguration

z.Z. Keine Konfiguration überXML-Upload möglich!

Konfiguration SAML2 in der Cloud - Schritt 2c Metadaten

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs28

Manuelle Konfiguration Metadaten werden auf SP Seite u.U. in

unterschiedlichen Formaten bereitgestellt

z..B. SimpleSAML PHP Download SP Daten Download IDP Daten

Konfiguration SAML2 in der Cloud - Schritt 3a Anmelden

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs30

Zugriff auf SP Einlog-Maske vom IdP- SAML-Token mit konfigurierten

Attributen wird erstellt

Konfiguration SAML2 in der Cloud - Schritt 3b Anmelden

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs31

Agenda

1. Übersicht SAML2 vs. OAuth2

2. User Integration / Federation

3. SAML2 Konfigurationa. In-House Installation

b. Cloud

4. OAuth2 Konfigurationa. In-House Installation

b. Cloud

5. Zusammenfassung und Fazit

SAML2 und OAuth in der Cloud

OAuth Workflow

https://tools.ietf.org/html/rfc6749

Abstract Workflow Übersicht zwei Komponenten

Resource Server Authorization Server

Ergebnis: Token

OAuth 2.0 Tokens and Extensions

Tokens

Bearer Token Usage—RFC 6750   

Assertions

JSON Web Token—RFC 7519   

JWTs represent a set of claims as a JSON object that is encoded in a JWS and/or JWE structure.

Standard Fields: Issuer (iss), Subject (sub), Audience (aud), Expiration time (exp), Not before (nbf), Issued at (iat) , JWT ID (jti)

OPEN ID Connect

obtain basic profile information about the end-user in an interoperable and REST-like manner

sub, iss, aud , Zweck- nonce:, auth_time, Additional Request Details acr, iat, exp

The Authorization Grants

Authorization Code Grant (Auth Code, Native Apps)

Implicit Grant (for Browsers)

Resource Owner Password Credentials Grant (Trusted)

Client Credentials Grant

Lokale Konfiguration - OAM

http://www.ateam-oracle.com/implementing-oauth-2-with-oracle-access-manager-oauth-services-part-i/

Vorraussetzung

OAM – Installation

Funktionsfähige Anmeldung

User sind integriert

Webgate Konfiguration für OAM

OAM über Webgate erreichbar R2

OAuth OAM

OAuth Konfiguration Beispiel Spring

20.11.2017 Fußzeile: Präsentationstitel, Autor, Ort39

Client:

Spring Boot APP

Properties Local OAuth

Konfiguration OAuth2 in der Cloud 1

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs40

Trusted Application

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs41

Konfiguration Cloud Client Types Resources and Scopes

Mobile Application

Konfiguration Cloud Authorization Code Implicit Device Code

Configuration Resource Access

Cloud - Installation

Änderungen an Endpoints

Beispiel Konfiguration Spring App

Beispiel - Client Credentials Grant

Einfachste Weise Token zu holen

Nur für sehr vertraute Appliaktionen

Beispiel - Postman Examples

20.11.2017 Fußzeile: Präsentationstitel, Autor, Ort45

Agenda

1. Übersicht SAML2 vs. OAuth2

2. User Integration / Federation

3. SAML2 Konfigurationa. In-House Installation

b. Cloud

4. OAuth2 Konfigurationa. In-House Installation

b. Cloud

5. Zusammenfassung und Fazit

SAML2 und OAuth in der Cloud

Zusammenfassung / Fazit

SAML 2.0 - Etablierte Verfahren für Browser-basierte Anwendungen- ID-Token/Assertation in XML- Gut geeignet für browserbasierte Anwendungen- Ermöglicht Authentisierung und Autorisierung in einem Schritt

OAuth 2.0 (mit OpenID Connect) - Keine Informationen über Authentisierung daher nicht direkt für SSO geeignet

Benötigt Erweiterung durch OpenID Connect.- Etabliert in Sozialen Netzwerken- Gut geeignet für mobile Anwendungen- JSON Web Token (JWT) für Token/Assertation

Cloud Angebot ist übersichtlicher und „einfacher“

- Weniger Möglichkeiten z.B. Anbindung Benutzerverzeichnisse, Optionen

- Lücken in der Konfiguration (z.B. kein XML- Metadaten Upload)

20.11.2017 SAML2 und OAuth in der Cloud, Ulf Lämmerhirt / Matthias Fuchs47

Q&A

20.11.2017 Fußzeile: Präsentationstitel, Autor, Ort48

top related