Keycloak: Client-Anbindung mit "OpenID Connect"?

Hallo.
Ich würde gerne einen Dienst per keycloak / SSO anbinden. Dazu habe ich eine Übersicht von Angaben erhalten, die benötigt werden, um das zu realisieren. Es geht um „OpenID Connect“.

Nun ist es ja so, dass der edulution-Host bereits ein fix und fertiges keycloak mitbringt und die User bereits alle im Realm „edulution“ enthalten sind. Hat jemand damit bereits weitere Dienste (Clients) angebunden und könnte hier ein paar hilfreiche Tipps diesbzgl. geben?


Ich weiß leider nicht, wo ich diese Angaben unter keycloak finden kann bzw. was genau zu tun ist, damit man sie findet :thinking: :interrobang:

Viele Grüße,
Michael

die meisten adressen findest du wenn du in keyclaok auf realm settings klickst und dann runterscrollst und auf den blauen link klickst „OpenId Configuration Endpoint“. dann wirst du auf die .well-known url geleitet. die kann man auch direkt eingeben, aber dann ist die seite nicht so schön formatiert. hier der screen shot:
allerdings hier nicht das realm master sondern eben edulaiton auswählen

1 „Gefällt mir“

für client id und secret musst du einen neuen client erstellen mit authorization an und dann die url des dienstes eintragen an den weitergeleitet wird. zb https:/meindienst.com/oauth/* oder sowas… (haengt vom dienst ab)… wenn das falsch eingstellt ist kommt ein berechtigungs fehler bei der weiterleitung
nach erstellen des clients findest du das secret unter credentials.
die claims… das weiss ich jetzt net wie das in edulution eingerichtet ist…
die claims… das weiss ich nicht wie die in edulution eingerichtet sind…
da gibt standard sachen aber ne schulid ist ja net standard :slight_smile:
die claims sind aber im scope enthalten der oft openid profile heisst und dann eben standard claims drin hat…

Hallo @sucher
Ich habe mir die Sache nochmal genauer angesehen. Viele der gesuchten Einträge kann man tasächlich finden, wenn man sich den .well-known Eintrag ansieht. Die noch offenen Punkte betreffen die Einträge UserID-Claim, SchulID-Claim und GroupID-Claim.

Offenbar stammen die Daten ursprünglich von einem Univention Server :man_shrugging:. Dort wird das scheinbar in dieser Form verwendet :interrobang:
Ich bin in Sachen keycloak aber nicht fit genug, um beurteilen zu können, wie man diese client-Scopes einrichten müsste. Sehe ich das richtig, dass der Dienstanbieter wissen muss, wie diese Einträge auszusehen haben?

Viele Grüße,
Michael

Hallo @Michael,

kennst Du den Thread von @Tobi mit Keycloak-Anleitungen?

Ich habe da viel gelernt und dann auch alle Dienste an meinen Keycloak angehängt bekommen.

Beste Grüße,
Jens

Hallo Jens,
ja, den Thread kenne ich und habe ich mir auch gerade nochmal vorgenommen. Die Integration hat @Tobi super dokumentiert. :+1: :+1:

Es hilft in meinem Fall aber leider nur bedingt weiter, da ich nur die eine Hälfte des Zugangs verwalten und einstellen kann – während die andere Seite beim Dienstleister liegt und ich dort nichts einsehen kann. Daher kommt mir diese SSO-Einrichtung auch ein bisschen wie der Blick in die Glaskugel vor.

Da andere Schulen den Dienst offenbar mit einem Univention-Server anbinden, kann es ja sein, dass die gesuchten Felder da bereits alle vorhanden oder ganz einfach zu ermitteln sind … aber ich stehe etwas ratlos da und weiß nicht so recht, wie ich weitermachen soll.

Ohne Hilfe des Dienstleisters wird das meiner Meinung nach nix, oder?
Viele Grüße,
Michael

wenn dir der provider des dienstes dir sagen kann oder wenigstens dokumentiert hat welche infos er braucht ist das sehr hilfreich… aber ich hab auch webuntis eingerichtet gekriegt… und da bekommt man jetzt auch net so viel hilfe… also geht schon… aber wenn man wo nachfragen kann gehts vielleicht schneller…

Die Tokenclaims sind in etwas sowas wie bei LDAP die Datenfelder…
wenn du weisst welche ein Token haben soll, kannst du das keycloakseitig schon so einrichten dass die Tokens die Information auch haben. Ist jetzt die Frage ob du das lieber fix konfiguriert haben willst oder verstehen willst was passiert…

Ich hatte kuerzlich die KI einen IMAP Proxy basteln lassen… der oauth2 faehig ist.
Wenn an den IMAPproxy ein oauth2 faehiger client dran kofniguriert ist, schickt er die anmeldetokens mit einem IMAP Befehl AUTHENTICATE XOAUTH an den imapserver. der empfangene token kann dann entschluesselt werden (base64) und du siehst dann als json was da genau gesendet wurde.
man kann dann den empfangenen token zurekc an keycloak schicken an dne introspect endpoint und validieren oder einen userinfo token anfordern usw
das konnte mir die KI ganz gut erklären wie das geht… :slight_smile:
und dann sieht man welche Infos keycloaks da liefert… das hat das verständnis für mciha auf alle fälle bereichert… wirst du jetzt aber nicht unbedingt brauchen…

Im Endeffekt wollen die von dir ja 3 Tokenclaims haben.
UserID-Claim… koennte jetzt eventuell der Token username gemeint sein wenn es der anmeldename ist… Ist es ne GUID aus LDAP? dann musst du das LDAP Feld ja irgendwo her erst in keycloak einlesen und dann mit einem mapper diese Information in dem Token bereistellen, dem du einen beliebigen Namen geben kannst.
SchulID-Claim…? wenn du nur eine Schule bist… was meinen die da…?? einen festen string?
GroupID-Claim… vermutlich gruppenzugehörigkeiten?

im Prinzip ist der standard client scope immer profile. in dem client scope profile stecken schon ganz viele infos drin und viele tokens. das ist quasi nen json wo die inhalte in der form „username: Adam“ usw drin stehen

Klicke auf client scopes, dann auf profile dann auf mapper
dann landest du in diesem fenster:


(das hier ist der keycloak von bbb greenlight)

Hier siehst du alle Infos die dem Client gegeben werden wenn er Zugriff hat auf den client scope profile… da findest du auch den tokenclaim username (mehr als 10 items anziegen lassen :wink:
bloed… gruppen werden nicht angezieigt… also machst du oben add mapper und kannst einen claim hinzufügen wo dann die info hinterlegt ist. für gruppen gibt es schon einen vorgefertigten clam… aber dass er funktioniert muss natürlich die ldap anbindung auch gruppen auslesen… ich gehmal davon aus das edulution das schon sowieso schon macht in der konfiguration…

achja nochwas… wenn die tokenclaims nicht richtig sind…
dann klappt ja beim client die account zuordnung irgendwie… je nach dienst… kriegst du vielleicht doch ne fehlermeldung angezeigt was er nicht finden kann. manchmal hilft auch ein blick in die develloper browser tools um zu sehen wo es hakt…