Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API groups to teams mapper #266

Merged
merged 2 commits into from
Sep 24, 2024
Merged

API groups to teams mapper #266

merged 2 commits into from
Sep 24, 2024

Conversation

melegiul
Copy link
Collaborator

@melegiul melegiul commented Aug 16, 2024

Fügt eine neue Option zum Übertragen von API Gruppen zu Teams in den ODC Adminbereich hinzu:

  • Konfiguration der API (baseURI, API-Key, etc.) wird über Umgebungsvariablen gesetzt.
  • Als Alternative zum bisherigen Keycloak Group Mapper gedacht, bei dem die Gruppen aus den OIDC Resource Owner Details bezogen werden und damit von Keycloak selbst kommen. Aber wir hatten auch mit @holema überlegt beide Optionen zusammenzulegen, richtig?
  • Gruppen werden beim Anmelden erzeugt. Sie sind unveränderbar, können also nicht bearbeitet werden.
  • Teammitgliedschaft wird auf Basis der API Gruppen zugewiesen aber nicht entzogen.
  • Wenn ein Fehler auftritt, dann klappt der Login, aber alle Teammitgliedschaften bleiben unverändert.

image

@holema Wir hatten ja über die Namenskonflikte gesprochen. Ich habe dafür zunächst eine einfache Lösung in der Datenbank eingebaut, sodass API Teams quasi ihren eigenen Namespace bekommen: 35ad378
Siehst du damit ein Problem?

Offene Punkte:
Das Entziehen von Gruppenmitgliedschaften wird noch nicht unterstützt. Der Grund ist, dass wenn Mitgliedschaften durch die API auch entzogen werden, dass dann das Formular bei /team_mitglieder keinen Sinn mehr macht. ODC definierte Mitgliedschaften würden bei jedem Login überschrieben werden.

Bevor wir das Entfernen von Team-Mitgliedern unterstützen, sollte wir folgende Frage beantworten:
Soll es weiter möglich sein im ODC Teams zuweisen? Falls nicht, dann sollte das Team-Mitglieder Formular deaktiviert werden.
Falls manuelles Zuwesien im ODC weiter möglich sein sollte wird es etwas schwieriger.
@georgloesel Hier würden wir auch von dir Feedback brauchen.

- Adds option to map groups to teams in ODC admin section.
- Teams are retrieved and created during login.
- Teams are assigned and unassigned based on group memberships.
@melegiul melegiul changed the title Feature/api group mapping API groups to teams mapper Aug 16, 2024
@@ -57,3 +59,8 @@ services:
connection: default
calls:
- [ setAnnotationReader, [ "@annotation_reader" ] ]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Für was benötigen wir einen Keycloak authenticaor?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Der KeycloakAuthenticator ist nicht neu. Er wurde hier eingeführt: b0e7a20

Neu sind nur die beiden Parameter:

App\Security\KeycloakAuthenticator:
        arguments:
            $groupApiUserId: '%group_api_user_id%'
            $groupApiRole: '%group_api_role%'

Bei mir sehen die zum Beispiel so aus im env.local:

GROUP_API_USER_ID=user_identifier
GROUP_API_ROLE=585127

Mit dem ersten Parameter wählst du eine OIDC User Claim, der als UserID an die API gesendet wird. Der zweite gibt eine Rollen ID an. Wir brauchen die Rollen ID, weil wir die Anforderung haben, dass nur spezielle User mit der Rolle ODC Redakteur als Team Mitglieder hinzugefügt werden. Wer die Rolle nicht hat, der wird keinem Team zugeteilt.

Allgemein könnten wir natürlich auch über die aktuell verwendete OIDC Libs sprechen. Symfony unterstützt OIDC eigentlich von alleine seit 6.3. https://symfony.com/blog/new-in-symfony-6-3-openid-connect-token-handler
Da sehe ich schon Potential den Keycloakauthenticator komplett auszutauschen.

Aber das ist vielleicht out of scope für diesen PR?

@holema holema merged commit 96bcf36 into development Sep 24, 2024
1 check passed
@holema holema deleted the feature/api-group-mapping branch September 24, 2024 20:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants