OIDC-Authentifizierung einrichten
OpenID Connect (OIDC) ist eine Authentifizierungsschicht auf dem OAuth 2.0 Autorisierungs-Framework, die verwendet werden kann, um einen Benutzer sicher bei ADOIT anzumelden. Die Authentifizierung und Autorisierung erfolgt über den Authorization Code Flow.
Um diesen Authentifizierungsmechanismus zu konfigurieren, müssen Sie folgende Schritte ausführen:
Wenn Sie diese Schritte abgeschlossen haben, können Sie die:
Um diesen Authentifizierungsmechanismus zu konfigurieren, benötigen Sie Erfahrung mit JSON. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihren ADOIT-Kundenbetreuer.
Voraussetzungen
Bevor Sie ADOIT für die Verwendung von OpenID Connect zur Authentifizierung konfigurieren, benötigen Sie ein Konto bei einem OpenID Connect-Provider (OP) wie Microsoft Azure AD oder Google, um die Identität Ihrer Benutzer zu verifizieren. Registrieren Sie ADOIT bei Ihrem OP und besorgen Sie die folgenden Informationen:
Client-ID
Clientgeheimnis
Autorisierungsendpunkt
Tokenendpunkt
Aussteller-URL (= Issuer)
Authentifizierungskonfiguration der Webapplikation anpassen
Dieser Authentifizierungsmechanismus muss auf der Administratorseite konfiguriert werden:
- Öffnen Sie die Administratorseite. Klicken Sie auf der Symbolleiste ganz oben auf dem Bildschirm auf Mehr , und klicken Sie dann auf Authentifizierung.
Im Folgenden sind die notwendigen Einstellungen beschrieben.
OIDC-Konnektor erstellen
Auf der Seite Authentifizierung sind unter Konnektoren alle Authentifizierungsmechanismen (= Konnektoren) für den ADOIT Web-Client aufgelistet. Als erstes müssen Sie hier einen neuen OIDC-Konnektor hinzufügen:
- Klicken Sie auf die Schaltfläche , um einen neuen Konnektor hinzuzufügen, und klicken Sie dann auf die Schaltfläche , um Ihren neuen Konnektor zu bearbeiten.
Der neue Konnektor enthält bereits einige Parameter. Ersetzen Sie den Inhalt durch das folgende JSON-Snippet und klicken Sie dann auf Speichern:
{
"enabled": true,
"id": "OIDC Login",
"index": 0,
"ldap": {
"domains": [],
"enabled": false,
"properties": []
},
"properties": {
"auth_server_client_id": {
"value": "<Client-ID>"
},
"auth_server_client_secret": {
"value": "<Clientgeheimnis>"
},
"auth_server_issuer": {
"value": "<Aussteller-URL>"
},
"auth_server_url_authorize": {
"value": "<Autorisierungsendpunkt>"
},
"auth_server_url_token": {
"value": "<Tokenendpunkt>"
},
"scopes": {
"value": "profile"
},
"store_login_hint": {
"value": "true"
},
"claims": {
"value": "claim_login,claim_firstname,claim_lastname"
},
"claim_login": {
"value": "sub"
},
"claim_firstname": {
"value": "given_name"
},
"claim_lastname": {
"value": "family_name"
}
},
"type": "OIDC",
"user-mapping": {}
}
Diese Konfiguration lässt sich folgendermaßen erklären:
OIDC-Authentifizierung ist jetzt aktiviert (
"enabled": true,
) und wird als Standard-Konnektor verwendet ("index": 0,
).Wenn Sie möchten, können Sie den Namen des Konnektors ändern (
"id": "OIDC Login",
).LDAP-Kopplung ist deaktiviert (
"ldap": {},
).Eine Reihe von Eigenschaften (
"properties": {},
) haben noch Platzhalter , diese werden im nächsten Schritt konfiguriert.Ein Set von OIDC-Claims, die Informationen über den Benutzer enthalten, ist bereits vorhanden (
"claims": {
). Diese werden später angepasst.Dieser Konnektor ist ein OIDC-Konnektor (
"type": "OIDC",
).Das User Mapping (
"user-mapping": {}
) ist noch leer und wird ebenfalls später konfiguriert.
Konfiguration für Autorisierungsserver bearbeiten
Als nächstes müssen Sie die Konfiguration für den Autorisierungsserver für den OIDC-Konnektor bearbeiten:
- Klicken Sie auf das OpenID Symbol auf der rechten Seite des OIDC-Konnektors.
Das Formular Konfiguration für Autorisierungsserver (OIDC Login) öffnet sich. Sie können folgende Daten eingeben und bearbeiten:
Autorisierungsendpunkt
Der Autorisierungsendpunkt des OP.
Tokenendpunkt
Der Tokenendpunkt des OP.
Issuer
Die Aussteller-URL des OP.
Client-ID
Der allgemeine Kennung für ADOIT wie beim OP registriert.
Client-Schlüssel (= Clientgeheimnis)
Das geheime Passwort für ADOIT wie beim OP registriert.
Benutzer merken
Aktivieren Sie dieses Kontrollkästchen, um die zuletzt verwendete Benutzer-ID zu speichern und für zukünftige Authentifizierungsvorgänge weiterzugeben, sodass dieses Benutzerkonto automatisch ausgewählt wird (kann nützlich sein, wenn mehrere Benutzerkonten betrieben werden).
Claims definieren
Als nächstes müssen Sie die Claims definieren, die der OP bereitstellen soll. Claims werden verwendet, um Informationen über den Benutzer zu übermitteln, z. B. seine E-Mail-Adresse, seinen Vornamen und seinen Nachnamen:
- Klicken Sie auf das Symbol auf der rechten Seite des OIDC-Konnektors.
Passen Sie folgende Parameter an:
scopes
OAuth 2.0-Scopes für die Verwendung mit Ihrem OP. Der Standardwert ist "profile", was eine Anfrage zur Anzeige von Informationen über den Benutzer an den OP bedeutet.
claims
Mit dieser Eigenschaft registrieren Sie alle Claims, die ausgewertet werden sollen, z. B.
"value": "claim_login,claim_firstname,claim_lastname"
. Geben Sie für jeden Claim, den Sie synchronisieren möchten, einen sprechenden Namen ein. Trennen Sie die Claims durch Beistriche.claim_login
Der Name des Claims, der den Benutzernamen enthält, der verwendet werden soll.
claim_firstname
Der Name des Claims, der den Vornamen enthält, der verwendet werden soll.
claim_lastname
Der Name des Claims, der den Nachnamen enthält, der verwendet werden soll.
Sie können bei Bedarf weitere Claims erstellen und registrieren (z. B. claim_email
).
User Mapping bereitstellen
Als nächstes müssen Sie ein User Mapping erstellen. Das User Mapping enthält Anweisungen, wie ein Benutzer während des Authentifizierungsprozesses zu behandeln ist, z. B. ob ein Benutzer erstellt werden soll, wenn er noch nicht existiert, oder welche System-Rollen oder Benutzergruppen dem Benutzer zugewiesen werden sollen. Außerdem enthält das User Mapping Anweisungen darüber, wie die vom OP gelieferten Claims auf ADOIT-Benutzerattribute gemappt werden sollen:
- Ersetzen Sie den Abschnitt
"user-mapping": {}
des OIDC-Konnektors mit folgendem JSON-Snippet:
"user-mapping": {
"autoCreateUser": true,
"auto_sync_user": {
"auto_sync_attributes": true,
"auto_sync_groups": true,
"auto_sync_roles": true,
"enabled": true
},
"default_groups": [
"Standardgruppe"
],
"default_roles": [
{
"name": "Architect"
}
],
"properties": [
{
"attr": "NAME",
"name": "claim_login"
},
{
"attr": "FORENAME",
"name": "claim_firstname"
},
{
"attr": "SURNAME",
"name": "claim_lastname"
}
],
"repositories": [],
"roles": [],
"user_deletion_handling": {
"deleteNotFoundUsers": true,
"moveUndeletableUsersToGroup": false
}
}
Diese Konfiguration lässt sich folgendermaßen erklären:
Die Benutzer werden bei der Anmeldung automatisch erstellt (
"autoCreateUser": true,
) und die Benutzerdaten werden bei jeder Anmeldung aktualisiert ("auto_sync_user": {...},
).Jedem Benutzer werden die Benutzergruppe "Standardgruppe" und die System-Rolle "Enterprise Architect" (sprachunabhängiger Name
"Architect"
zugewiesen.Die vorher registrierten Claims werden auf ADOIT-Benutzerattribute gemappt
"attr": "...", "name": "..."
.Benutzer, die bei der Synchronisierung nicht gefunden werden, sollen gelöscht werden (
"user_deletion_handling": { "deleteNotFoundUsers": true, ...}
).
Sie können das User Mapping nach Bedarf anpassen. Weitere Informationen finden Sie in der Hilfe Datei, die Sie von der Administratorseite herunterladen können, und im Abschnitt User Mapping.
Authentifizierung von Benutzern starten
Sobald die Änderungen auf der Administratorseite gespeichert werden, werden sie sofort wirksam. Ein Neustart ist nicht erforderlich.
Alle Benutzer, die sich an dem konfigurierten OP anmelden können, sollten sich jetzt auch am ADOIT Web-Client anmelden können. Wenn Benutzer noch nicht in ADOIT vorhanden sind, werden sie dort erzeugt. Anhand des Mappings in der Konfiguration werden sie entsprechenden System-Rollen/Benutzergruppen zugewiesen.
(Optional) Fehlersuche
Fehler werden in den Dateien ”<Tomcat Installation>/logs/ADOIT16_0.log” und ”<ADOIT Installation/*_aworker.log>” geloggt.