Projekt

Obecné

Profil

Podání #35258

uzavřený

Nastavení autorizace keycloak pro účely moodle

Přidáno uživatelem Linda Kašpárková před více než 3 roky(ů). Aktualizováno před více než 3 roky(ů).

Stav:
Dokončen
Priorita:
Normální
Přiřazeno:
Kategorie:
Identity (Keycloak, LDAP, synchronizace)
Začátek:
03.03.2021
Uzavřít do:
% Hotovo:

100%

Odhadovaná doba:

Popis

Ahoj, prosím o nastavení keycloak tak, aby do moodle mohly pouze skupiny: členové, regP, případně "dodavatelé"
Poslední z jmenovaných teprve bude vytvořena AO.

Aktualizováno uživatelem Helča Buchtová před více než 3 roky(ů)

  • Přiřazeno nastaven na Andrej Ramašeuski

Ahoj Andreji, tipuji to na Tebe, když tak přehoď jinam. :)

Aktualizováno uživatelem Andrej Ramašeuski před více než 3 roky(ů)

  • Kategorie nastaven na Identity (Keycloak, LDAP, synchronizace)
  • Stav změněn z Nový na V řešení (diskutuje se)
  • % Hotovo změněn z 0 na 10

Keycloak ma perfektne propracovany system autorizace jenom ze policy enforcer musi byt na strane klienta.

Aktualizováno uživatelem Andrej Ramašeuski před více než 3 roky(ů)

Dalsi pokus dle navodu:
https://stackoverflow.com/a/64636667
keycloak sice neposila vyzadovany client scope, ale moodle na to kasle

I found a solution which does not require the scripts extension or any changes on the flow.

The key for this solution are the Client Scopes. An application which wants to to authorize a user needs a scope like email or uid, right? What if you only pass them to an application if a user is in a specific group?

In the following, my client application name is App1.

Solution:

Go to your client roles (realm -> Clients -> click App1 -> Roles)
Click 'Add Role' -> enter Name (e.g. 'access') -> click 'Save'
Go to Client Scopes (realm -> Client Scopes)
Click on the scope which is needed by your client application (e.g. 'email')
Assign Client Role 'access' in 'Scope' Tab by choosing client application 'App1' in Drop Down 'Client Roles'

Now, you won't be able to log into your client application App1 anymore, as the role 'access' is not assigned to any user or group. You can try.

Let's create a new group and assign the role and a user to it.

Create Group (realm -> Groups -> Click 'New' -> enter Name 'App1 Users' -> Click Save)
In the Group, choose 'Role Mappings', choose 'App1' in Client Roles drop down, and assign the role 'access'
Assign User to 'App1 Users' (realm -> Users -> Click on User -> Groups -> Select 'App1 Users -> Click Join)

Voila, the chosen user can log into App1.

Aktualizováno uživatelem Andrej Ramašeuski před více než 3 roky(ů)

  • Stav změněn z V řešení (diskutuje se) na Dokončen
  • % Hotovo změněn z 10 na 100

I kdyz SAML v keycloak nema zadnou podporu authorizace, zato SAML2 plugin v moodle umozmuje omezit pristup na zaklade skupin. Nom, kdo bu vedel. Prekonfigurovano, otestovano.

Také k dispozici: Atom PDF