Benutzer anlegen und CKAN-Token zuweisen¶
Diese Anleitung zeigt, wie einem Benutzer in Keycloak ein CKAN-API-Token zugewiesen wird. Danach kann die Person in den Anwendungen der ODI Datensätze im Datenkatalog anlegen und ändern.
Das geht auch, bevor sich die Person zum ersten Mal angemeldet hat: Das Konto wird vorab angelegt, und Keycloak übernimmt es bei der ersten Anmeldung.
Voraussetzungen¶
- Administratorrechte im Keycloak-Realm der gewünschten Umgebung.
- Die E-Mail-Adresse, mit der sich die Person über den Identity Provider anmeldet.
- Ein CKAN-API-Token für das CKAN-Konto, in dessen Namen die Person schreiben soll. Nutzt der Herausgeber bereits eine Gruppe mit hinterlegtem Token, ist kein eigenes nötig.
1. Keycloak öffnen¶
Die Administrationsoberfläche der Umgebung öffnen und anmelden.
keycloak.odi.schleswig-holstein.de – Realm open-data-infrastruktur
keycloak.odi-stage.schleswig-holstein.de – Realm open-data-infrastruktur
Oben links steht der aktuelle Realm. Steht dort master, über Manage realms in den Realm der ODI wechseln: Benutzer aus master können sich nicht an der ODI anmelden.
2. Benutzer suchen oder anlegen¶
-
Im Menü links Users öffnen und nach der E-Mail-Adresse der Person suchen.
-
Das Konto existiert: Mit einem Klick auf den Benutzernamen öffnen und mit Schritt 3 fortfahren.
-
Das Konto existiert noch nicht: Add user wählen und das Formular ausfüllen.
Feld Eintrag Email die E-Mail-Adresse, mit der sich die Person über den Identity Provider anmeldet – exakt so geschrieben Email verified einschalten First name, Last name Vor- und Nachname Required user actions leer lassen -
Create wählen. Keycloak öffnet die Detailseite des neuen Benutzers.
Ein Feld für den Benutzernamen gibt es nicht: Im Realm der ODI ist die E-Mail-Adresse zugleich der Benutzername. Ein Passwort wird nicht vergeben.
Die E-Mail-Adresse muss stimmen
Keycloak erkennt die Person bei der ersten Anmeldung an der E-Mail-Adresse und verbindet das vorbereitete Konto mit dem Identity Provider. Weicht die Adresse ab – ein Tippfehler, eine andere Domain, ein Alias –, legt Keycloak ein zweites Konto ohne Token an. Im Zweifel nachfragen, welche Adresse der Identity Provider liefert.
3. CKAN-Token zuweisen¶
Das Token lässt sich direkt am Benutzer hinterlegen, oder der Benutzer wird in eine Gruppe aufgenommen, die es bereits trägt.
| Direkt am Benutzer | Über eine Gruppe | |
|---|---|---|
| Geeignet, wenn … | genau eine Person das Token nutzt | mehrere Personen oder Service Accounts eines Herausgebers dasselbe Token nutzen |
| Token tauschen | an jedem Benutzer einzeln | einmal an der Gruppe |
Direkt am Benutzer¶
- Am Benutzer den Reiter Attributes öffnen.
- Unter Key den Namen
ckan-tokeneintragen und unter Value das CKAN-API-Token. -
Save wählen.
Die Schreibweise ckan-token muss exakt stimmen – klein geschrieben, mit Bindestrich. Soll die Person auch Schemata veröffentlichen, wird über Add attributes zusätzlich gitlab-token hinzugefügt.
Der Reiter „Attributes“ fehlt?
Dann lässt der Realm keine frei benannten Attribute zu. Unter Realm settings im Reiter General die Einstellung Unmanaged Attributes auf Enabled oder Only administrators can write stellen.
Über eine Gruppe¶
Die Gruppe trägt das Attribut ckan-token; der Benutzer erbt es durch die Mitgliedschaft. Wie eine Gruppe für einen Herausgeber angelegt wird, beschreibt die Seite Autorisierung.
- Am Benutzer den Reiter Groups öffnen und Join Group wählen.
-
Die Gruppe des Herausgebers suchen, markieren und mit Join bestätigen.
Das Attribut nicht zusätzlich am Benutzer setzen. Sonst ist später unklar, welches Token gilt.
4. Zuweisung prüfen¶
Ob Keycloak das Token an die ODI-Dienste weitergibt, lässt sich sofort prüfen – auch bevor sich die Person zum ersten Mal angemeldet hat:
- Clients öffnen und den Client der Anwendung wählen, an der sich die Person anmeldet:
odwfür das Open-Data-Portal oderschema-repository-frontendfür das Schema-Repository. - Den Reiter Client scopes öffnen und darin Evaluate.
- Unter Users den Benutzer auswählen.
-
Rechts Generated user info wählen.
Die Ausgabe muss einen Eintrag "ckan-token" enthalten. Fehlt er, obwohl das Attribut gesetzt ist, gibt der Realm das Attribut nicht an diesen Client weiter – siehe Wenn es nicht funktioniert.
Ob das Token im Datenkatalog auch gilt, beantwortet der CKAN-Service. Die angemeldete Person oder ein Service Account ruft dazu mit dem eigenen Access-Token auf:
| Antwort | Bedeutung |
|---|---|
hasCkanToken: true, ckanTokenValid: true |
Alles in Ordnung: Die Person kann schreiben. |
hasCkanToken: true, ckanTokenValid: false |
Keycloak liefert ein Token, der Datenkatalog lehnt es aber ab – widerrufen, falsch kopiert oder aus der anderen Umgebung. |
hasCkanToken: false |
Keycloak liefert kein ckan-token – das Attribut fehlt, ist falsch geschrieben oder wird vom Realm nicht weitergegeben. |
Was bei der ersten Anmeldung passiert¶
Meldet sich die Person über den Identity Provider an, sucht Keycloak ein Konto mit derselben E-Mail-Adresse:
- Konto gefunden: Keycloak verbindet das vorbereitete Konto mit dem Identity Provider. Die Person arbeitet sofort mit dem hinterlegten Token. Die Verbindung ist danach am Benutzer im Reiter Identity provider links sichtbar.
- Kein Konto gefunden: Keycloak legt ein neues Konto ohne Token an.
Die Person muss dabei nichts bestätigen.
Benutzer ohne Identity Provider
Für Personen, die keinen Zugang zum Identity Provider haben, wird ein Passwort in Keycloak vergeben: Am Benutzer den Reiter Credentials öffnen, Set password wählen und Temporary eingeschaltet lassen. Die Person muss das Startpasswort dann bei der ersten Anmeldung ändern. Für Skripte und Fremdsysteme wird stattdessen ein Service Account eingerichtet.
Wenn es nicht funktioniert¶
| Beobachtung | Ursache | Abhilfe |
|---|---|---|
| Der Reiter Attributes fehlt | Der Realm lässt keine frei benannten Attribute zu. | Unter Realm settings → General die Einstellung Unmanaged Attributes auf Enabled oder Only administrators can write stellen. |
ckan-token fehlt unter Generated user info |
Dem Client fehlt der Client Scope ckan-token. |
Am Client im Reiter Client scopes über Add client scope den Scope ckan-token als Default hinzufügen. |
hasCkanToken: false, obwohl das Attribut gesetzt ist |
Schreibfehler im Namen, etwa ckan_token oder CKAN-Token, oder Attribut im falschen Realm gesetzt. |
Namen und Realm prüfen. |
ckanTokenValid: false |
Der Datenkatalog kennt das Token nicht. | Auf Leerzeichen am Anfang oder Ende und auf die richtige Umgebung achten; sonst ein neues Token im Datenkatalog erstellen. |
| Die Person kann sich anmelden, aber nichts veröffentlichen | Das CKAN-Konto hinter dem Token gehört nicht zur Organisation des Herausgebers. | Das CKAN-Konto im Datenkatalog in die Organisation aufnehmen. |
| Nach der ersten Anmeldung gibt es zwei Konten | Die E-Mail-Adresse des vorbereiteten Kontos wich von der des Identity Providers ab. | Token am neu entstandenen Konto zuweisen, das vorbereitete Konto löschen. |
Benutzer sperren oder entfernen¶
Verlässt eine Person das Team, wird auf der Detailseite des Benutzers Enabled ausgeschaltet oder das Konto gelöscht. War das Token nur dieser Person zugewiesen, muss es zusätzlich im Datenkatalog widerrufen werden. Ein Token, das die Person kennt, bleibt sonst auch ohne Keycloak-Konto gültig.




