Was ist Identity Provisioning?
Bei der Identitätsbereitstellung geht es um die Erstellung, Pflege und Deaktivierung von Benutzerkonten in einem oder mehreren Systemen oder Anwendungen als Reaktion auf automatisierte oder interaktive Geschäftsprozesse.
SCIM Überblick
Das System for Cross-domain Identity Management (SCIM) wurde entwickelt, um die Verwaltung von Benutzeridentitäten in Cloud-basierten Anwendungen und Diensten zu vereinfachen. Die Spezifikationen bauen auf den Erfahrungen mit bestehenden Schemas und Implementierungen auf, und legen besonderen Wert auf die Einfachheit der Entwicklung und Integration bei gleichzeitiger Nutzung bestehender Authentifizierungs-, Autorisierungs- und Datenschutzmodelle. Ziel ist es, die Kosten und die Komplexität der Benutzerverwaltung zu reduzieren, indem ein gemeinsames Benutzerschema und Erweiterungsmodell sowie verbindliche Dokumente für den Austausch dieses Schemas unter Verwendung von Standardprotokollen bereitgestellt werden.
SCIM 2.0 – die offene API zur Verwaltung von Identitäten – ist nun vollständig und wird unter der IETF veröffentlicht.
SCIM Modell
SCIM 2.0 basiert auf einem Objektmodell, wobei eine Ressource der gemeinsame Nenner ist und alle SCIM-Objekte daraus abgeleitet werden. Es hat eine id, externalId und meta als Attribut und RFC7643 definiert User, Group und EnterpriseUser, welche die gemeinsamen Attribute erweitern.
SCIM 2.0 version Object Model.
Quelle: simplecloud.info
Beispiel-Anwender
Dies ist ein Beispiel dafür, wie Benutzerdaten als SCIM-Objekt in JSON kodiert werden können. Einfache Typen wie Strings für ID, Benutzername, etc. Komplexe Typen, d.h. Attribute mit Unterattributen, für Name und Adresse. Mehrwertige Typen für E-Mail, Telefonnummer, Adresse, etc.
Wie in diesem und späteren Beispielen zu sehen ist, enthält die URL eine Versionsnummer, so dass verschiedene Versionen der SCIM-API nebeneinander existieren können. Verfügbare Versionen können dynamisch über den Endpunkt ServiceProviderConfig ermittelt werden.
{ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "id":"2819c223-7f76-453a-919d-413861904646", "externalId":"jmaster", "meta":{ "resourceType": "User", "created":"2018-08-01T18:29:49.793Z", "lastModified":"2018-08-01T18:29:49.793Z", "location":"https://example.com/v2/Users/2819c223...", "version":"W\/\"f250dd84f0671c3\"" }, "name":{ "formatted": "Mr. James Master, III", "familyName": "Master", "givenName": "James", "middleName": "L.", "honorificPrefix": "Mr.", "honorificSuffix": "III" }, "userName":"jmaster", "phoneNumbers":[ { "value":"0049-711-4711-0815", "type":"work" } ], "emails":[ { "value":"jmaster@example.com", "type":"work", "primary": true } ] }
Beispiel-Gruppe
Zusätzlich zu den Benutzern enthält SCIM die Definitionen von Gruppen. Gruppen werden verwendet, um die Organisationsstruktur der bereitgestellten Ressourcen zu modellieren. Gruppen können Benutzer oder andere Gruppen enthalten.
{ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], "id":"e9e30dba-f08f-4109-8486-d5c6a331660a", "displayName": "IAM Consultant", "members":[ { "value": "2819c223-7f76-453a-919d-413861904646", "$ref": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646", "display": "James Master" }, { "value": "902c246b-6245-4190-8e05-00816be7344a", "$ref": "https://example.com/v2/Users/902c246b-6245-4190-8e05-00816be7344a", "display": "Julian Mueller" } ], "meta": { "resourceType": "Group", "created": "2018-01-23T04:56:22Z", "lastModified": "2018-05-13T04:42:34Z", "version": "W\/\"3694e05e9dff592\"", "location": "https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a" } }
Operationen
Für die Manipulation von Ressourcen bietet SCIM eine REST-API mit einem umfangreichen, aber einfach nutzbaren Satz von Operationen, die alles vom Patchen eines bestimmten Attributs auf einen bestimmten Benutzer bis hin zu größeren Massen-Updates unterstützen:
- Create: POST https://example.com/{v}/{resource}
- Read: GET https://example.com/{v}/{resource}/{id}
- Replace: PUT https://example.com/{v}/{resource}/{id}
- Delete: DELETE https://example.com/{v}/{resource}/{id}
- Update: PATCH https://example.com/{v}/{resource}/{id}
- Search: GET https://example.com/{v}/{resource}?filter={attribute}{op}{value}&sortBy={attributeName}&sortOrder={ascending|descending}
- Bulk: POST https://example.com/{v}/Bulk
Discovery
Um die Interoperabilität zu vereinfachen, bietet SCIM drei sog. „Endpunkte“, um unterstützte Funktionen und spezifische Attributdetails zu entdecken:
- GET /ServiceProviderConfig
Konformität mit Spezifikationen, Authentifizierungsschemata, Datenmodelle.
- GET /ResourceTypes
Ermitteln der Art der verfügbaren Ressourcen.
- GET /Schemas
Ressourcen und Attributerweiterungen überprüfen.
Create Request
Um eine Ressource anzulegen, senden Sie einen HTTP-POST-Request an den jeweiligen Endpunkt der Ressource. Im folgenden Beispiel sehen wir die Erstellung eines Benutzers.
POST /v2/Users HTTP/1.1 Accept: application/json Authorization: Bearer h480djs93hd8 Host: example.com Content-Length: ... Content-Type: application/json { "schemas":["urn:ietf:params:scim:schemas:core:2.0:User"], "externalId":"jmaster", "userName":"jmaster", "name":{ "familyName":"Master", "givenName":"James" } }
Create Response
Eine Antwort enthält die erstellte Ressource und den HTTP-Code 201, um anzuzeigen, dass die Ressource erfolgreich angelegt wurde. Beachten Sie, dass der zurückgegebene Benutzer mehr Daten enthält, als gepostet wurden, ID- und Metadaten wurden vom Dienstanbieter hinzugefügt, um eine vollständige Benutzerressource zu erstellen. Ein Location-Header gibt an, wo die Ressource in nachfolgenden Requests abgeholt werden kann.
HTTP/1.1 201 Created Content-Type: application/scim+json Location: https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646 ETag: W/"e180ee84f0671b1" { "schemas":["urn:ietf:params:scim:schemas:core:2.0:User"], "id":"2819c223-7f76-453a-919d-413861904646", "externalId":"jmaster", "meta":{ "resourceType":"User", "created":"2018-08-01T21:32:44.882Z", "lastModified":"2018-08-01T21:32:44.882Z", "location": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646", "version":"W\/\"e180ee84f0671b1\"" }, "name":{ "familyName":"Master", "givenName":"James" }, "userName":"jmaster" }
SAML 2.0, OAuth 2.0, SCIM 2.0 und OpenID Connect im Überblick
Im Überblick: SAML 2.0, OAuth 2.0, SCIM 2.0 und OpenID Connect
Security Assertion Markup Language (SAML 2.0)
Security Assertion Markup Language 2.0 (SAML 2.0) ist eine Version des SAML-Standards zum Austausch von Authentifizierungs- und Autorisierungsdaten zwischen Sicherheitsdomänen. SAML 2.0 ist ein XML-basiertes Protokoll, das Sicherheitstoken verwendet, um Informationen über einen Auftraggeber (in der Regel einen Endbenutzer) zwischen einer SAML-Authority, genannt Identity Provider, und einem SAML-Konsumenten, genannt Service Provider, weiterzugeben. SAML 2.0 ermöglicht webbasiertes, domänenübergreifendes Single Sign-On (SSO), wodurch der administrative Aufwand für die Verteilung mehrerer Authentifizierungstoken an den Benutzer reduziert wird.
SAML 2.0 wurde im März 2005 als OASIS-Standard ratifiziert und ersetzt SAML 1.1. Die wesentlichen Aspekte von SAML 2.0 werden in den offiziellen Dokumenten SAMLCore, SAMLBind, SAMLProf und SAMLMeta ausführlich behandelt.
Rund 30 Personen aus mehr als 24 Unternehmen und Organisationen waren an der Erstellung von SAML 2.0 beteiligt. Insbesondere hat die Liberty Alliance ihre Identity Federation Framework (ID-FF) Spezifikation an OASIS gespendet, welche die Grundlage der SAML 2.0 Spezifikation wurde. Damit stellt SAML 2.0 die Konvergenz von SAML 1.1 und Liberty ID-FF 1.2 dar.
OAuth 2.0
OAuth ist ein offener Standard für die Delegation des Zugriffs, der häufig als Möglichkeit für Internetnutzer verwendet wird, Websites oder Anwendungen Zugang zu ihren Informationen auf anderen Websites zu gewähren, ohne ihnen jedoch die Passwörter zu geben. Dieser Mechanismus wird von Unternehmen wie Amazon, Google, Facebook, Microsoft und Twitter genutzt, um es den Nutzern zu ermöglichen, Informationen über ihre Konten mit Anwendungen oder Websites Dritter zu teilen.
Im Allgemeinen bietet OAuth Clients einen „sicheren delegierten Zugriff“ auf Serverressourcen im Namen eines Ressourcenbesitzers. Sie spezifiziert einen Prozess, mit dem Ressourcenbesitzer den Zugriff Dritter auf ihre Serverressourcen autorisieren können, ohne ihre Anmeldeinformationen zu teilen. Speziell für die Arbeit mit dem Hypertext Transfer Protocol (HTTP) entwickelt, ermöglicht OAuth im Wesentlichen die Ausgabe von Zugriffstoken an Drittanbieter-Clients durch einen Autorisierungsserver mit Zustimmung des Ressourcenbesitzers. Der Dritte verwendet dann das Zugriffstoken, um auf die geschützten Ressourcen zuzugreifen, die vom Ressourcenserver gehostet werden.
OAuth ist ein Service, der komplementär zu OpenID ist und sich von ihr unterscheidet. OAuth unterscheidet sich auch von OATH, das eine Referenzarchitektur für die Authentifizierung und kein Standard für die Autorisierung ist. OAuth steht jedoch in direktem Zusammenhang mit OpenID Connect (OIDC), da OIDC eine auf OAuth 2.0 aufbauende Authentifizierungsschicht ist. OAuth unterscheidet sich auch von XACML, einem Standard für Autorisierungsrichtlinien. OAuth kann in Verbindung mit XACML verwendet werden, wobei OAuth für die Zustimmung des Eigentümers und die Delegation des Zugriffs verwendet wird, während XACML zur Definition der Autorisierungsrichtlinien verwendet wird.
System for Cross-Domain Identity Management (SCIM 2.0)
System for Cross-domain Identity Management (SCIM) automatisiert den Austausch von Identitätsinformationen zwischen Identitätsdomänen oder IT-Anwendungen/-Systemen.
Wenn ein Unternehmen beispielsweise Mitarbeiter einstellt und entlässt, werden sie dem internen Mitarbeiterverzeichnis des Unternehmens hinzugefügt und daraus entfernt. SCIM kann verwendet werden, um automatisch Konten für diese Benutzer in externen Systemen wie beispielsweise Office 365 oder Salesforce.com hinzuzufügen oder zu löschen. In den Fremdsystemen würde dann für jeden neuen Mitarbeiter ein neues Benutzerkonto existieren und die Benutzerkonten für ehemalige Mitarbeiter könnten in diesen Systemen nicht mehr existieren.
Neben der einfachen Verwaltung von Benutzerdatensätzen (Anlegen und Löschen) kann SCIM auch zum Austausch von Informationen über Benutzerattribute, Attributschemata und Gruppenzugehörigkeit verwendet werden. Die Attribute können von den Kontaktinformationen der Benutzer bis hin zur Gruppenmitgliedschaft reichen. Gruppenzugehörigkeit oder andere Attributwerte werden in der Regel zur Verwaltung von Benutzerberechtigungen verwendet. Attributwerte und Gruppenzuordnungen können sich ändern, was die Pflege der relevanten Daten über mehrere Identitätsdomänen hinweg erschwert.
Der SCIM-Standard hat an Popularität und Bedeutung gewonnen, da Unternehmen mehr SaaS-Tools einsetzen. Ein großes Unternehmen kann Hunderte oder Tausende von gehosteten Anwendungen (interne und externe) und verwandte Server, Datenbanken und Dateifreigaben haben, die eine Benutzerbereitstellung erfordern. Ohne eine Standardverbindungsmethode müssen Unternehmen kundenspezifische Software-Konnektoren schreiben, um diese Systeme und ihr IAM-System zu verbinden.
OpenID Connect
OpenID Connect ist eine leicht nutzbare Identitätsschicht die auf dem OAuth 2.0-Protokoll ausetzt und es Clients ermöglicht, die Identität eines Endbenutzers anhand der von einem Autorisierungsserver durchgeführten Authentifizierung zu überprüfen und grundlegende Profilinformationen über den Endbenutzer auf interoperable und REST-ähnliche Weise zu erhalten. Technisch gesehen spezifiziert OpenID Connect eine RESTful HTTP API, die JSON als Datenformat verwendet.
OpenID Connect ermöglicht es einer Vielzahl von Clients, einschließlich webbasierten, mobilen und JavaScript-Clients, Informationen über authentifizierte Sitzungen und Endbenutzer anzufordern und zu empfangen. Die Spezifikationen sind erweiterbar und unterstützen optionale Funktionen wie die Verschlüsselung von Identitätsdaten, die Erkennung von OpenID-Providern und das Session-Management.
Fazit & Ausblick

Frithard Meyer zu Uptrup, Geschäftsführer intension GmbH
„Moderne Unternehmen setzen verstärkt auf neue Technologien und Arbeitsmodelle. Die zentrale Verwaltung sicherer Zugänge zu den Unternehmens-Anwendungen und -Daten ist dafür die notwendige Voraussetzung.
Die zentrale Herausforderung dabei ist die sichere Verwaltung digitaler Identitäten. Nur so kann sichergestellt werden, dass allein die richtige, autorisierte Person die entsprechende Transaktion abschließen kann.
Für ein unternehmensweites Identity und Access Management müssen diverse Standards und Protokolle unterstützt werden. Standards sind die einzig sinnvolle Möglichkeit, sicheren Zugang zu gewährleisten und prägen maßgeblich die Sicherheitsarchitektur.
Unsere Produkte unterstützen alle relevanten Standards und werden seit vielen Jahren u.a. von Deutschlands größtem IT-Dienstleister eingesetzt. Erfahren Sie weitere Details in unserem Referenzbericht mit T-Systems.“
Fragen? Wir haben Antworten!
Wir freuen uns auf Ihre Nachricht.
Autor: summ-it Unternehmensberatung