Update posts/tp-cours-authn.md

This commit is contained in:
fmaury 2025-05-15 07:10:22 +00:00
parent 5bbdf06a0b
commit 9154b0d031

View file

@ -82,7 +82,7 @@ Pour le moment, nous allons simplement le déclarer et le démarrer pour obtenir
(Action) Étendre l'image officielle de Caddy pour ajouter ce fichier de configuration. Pour cela, créer le fichier `Containerfile` (ou `Dockerfile`) suivant, et le stocker dans le répertoire `caddy`. (Action) Étendre l'image officielle de Caddy pour ajouter ce fichier de configuration. Pour cela, créer le fichier `Containerfile` (ou `Dockerfile`) suivant, et le stocker dans le répertoire `caddy`.
``` ```
FROM docker.io/caddy:2.7.6-alpine FROM docker.io/caddy:2.10.0-alpine
COPY Caddyfile /etc/caddy COPY Caddyfile /etc/caddy
``` ```
@ -185,7 +185,7 @@ Dans la section services, ajouter :
``` ```
vault: vault:
image: ghcr.io/dani-garcia/vaultwarden:1.30.5-alpine image: ghcr.io/dani-garcia/vaultwarden:1.33.2
container_name: vault container_name: vault
restart: always restart: always
volumes: volumes:
@ -260,7 +260,7 @@ Plus tard dans le TP, nous aurons besoin que Forgejo contacte le référentiel d
(Action) Créer un fichier `Containerfile` ou `Dockerfile` qui étend l'image officielle de Forgejo pour y ajouter le certificat de Caddy (Action) Créer un fichier `Containerfile` ou `Dockerfile` qui étend l'image officielle de Forgejo pour y ajouter le certificat de Caddy
``` ```
FROM codeberg.org/forgejo/forgejo:1.21.5-0 FROM codeberg.org/forgejo/forgejo:11
COPY caddy.crt /usr/local/share/ca-certificates/caddyca.crt COPY caddy.crt /usr/local/share/ca-certificates/caddyca.crt
RUN update-ca-certificates RUN update-ca-certificates
``` ```
@ -375,7 +375,7 @@ Dans la section `services`, ajouter :
``` ```
psql: psql:
image: docker.io/postgres:16.2-alpine image: docker.io/postgres:17.5-alpine
container_name: psql container_name: psql
restart: always restart: always
volumes: volumes:
@ -479,7 +479,7 @@ Dans la section `services`, ajouter :
KC_DB_URL: jdbc:postgresql://psql/keycloak KC_DB_URL: jdbc:postgresql://psql/keycloak
KC_DB_USER: keycloak KC_DB_USER: keycloak
KC_DB_PASSWORD: keycloak KC_DB_PASSWORD: keycloak
KC_HOSTNAME_URL: https://idp.tp-authn.broken-by-design.fr:8443/ KC_HOSTNAME: https://idp.tp-authn.broken-by-design.fr:8443/
KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: Bonjour1!tititoto KEYCLOAK_ADMIN_PASSWORD: Bonjour1!tititoto
depends_on: depends_on:
@ -547,13 +547,13 @@ Dans cette partie du TP, nous allons créer des rôles et des groupes et les ass
Cliquer sur le "+" en haut à droite, puis sélectionner "Nouvelle Organisation". Appeler l'organisation "TP" et cliquer sur "Créer une organisation". Cliquer sur le "+" en haut à droite, puis sélectionner "Nouvelle Organisation". Appeler l'organisation "TP" et cliquer sur "Créer une organisation".
(Action) Créer dans l'organisation Forgejo "TP", une équipe `mainteneur`, avec des droits en écriture. (Action) Créer dans l'organisation Forgejo "TP", une équipe `mainteneurs`, avec des droits en écriture.
Une fois sur la page de l'organisation "TP", sélectionner "Nouvelle équipe". Nommer l'équipe `mainteneur`, et sélectionner le niveau de privilège "Ecriture" pour l'ensemble des actions possibles. Une fois sur la page de l'organisation "TP", sélectionner "Nouvelle équipe". Nommer l'équipe `mainteneurs`, et sélectionner le niveau de privilège "Ecriture" pour l'ensemble des actions possibles.
(Action) Créer dans l'organisation Forgejo "TP", une équipe `contributeur`, avec des droits en lecture. (Action) Créer dans l'organisation Forgejo "TP", une équipe `contributeurs`, avec des droits en lecture.
(Action) Ajouter au domaine TP de Keycloak des rôles `mainteneur` et `contributeur`. (Action) Ajouter au domaine TP de Keycloak des rôles `mainteneur` et `contributeurs`.
Dans le domaine TP, sélectionner le menu "Realm Roles", puis "Create role". Nommer les rôles et cliquer sur "Save". Dans le domaine TP, sélectionner le menu "Realm Roles", puis "Create role". Nommer les rôles et cliquer sur "Save".
@ -573,7 +573,7 @@ Pour cela, dans le domaine TP, dans le menu "Groups", cliquer sur le groupe `Mai
(Action) Configurer l'exposition des rôles au client `forgejo`, afin de ne divulguer que la possession des rôles `mainteneur` et `contributeur` à ce client, sous une entrée `forgejo-roles`. (Action) Configurer l'exposition des rôles au client `forgejo`, afin de ne divulguer que la possession des rôles `mainteneur` et `contributeur` à ce client, sous une entrée `forgejo-roles`.
Dans le menu "Clients", cliquer sur le client `forgejo`. Ensuite, dans l'onglet "Client Scopes", cliquer sur l'entrée `forgejo-dedicated`. Cliquer sur le bouton "Add mapper", puis "From predefined mappers". Cocher "realm roles", puis cliquer sur "Add". Cliquer ensuite sur l'entrée "realm roles", et remplacer la valeur dans "Token Claim Name" par `forgejo-roles`. Cocher également "Add to userinfo" et "Add to ID Token", puis cliquer sur "Save". Ensuite, revenir sur la fenêtre "forgejo-dedicated", puis se rendre dans l'onglet "Scope". Désactiver "Full scope allowed", puis cliquer que "Assign Role", cocher les deux rôles `mainteneur` et `contributeur` et cliquer sur "Assign". Dans le menu "Clients", cliquer sur le client `forgejo`. Ensuite, dans l'onglet "Client Scopes", cliquer sur l'entrée `forgejo-dedicated`. Cliquer sur le bouton "Add predefined mappers". Cocher "realm roles", puis cliquer sur "Add". Cliquer ensuite sur l'entrée "realm roles", et remplacer la valeur dans "Token Claim Name" par `forgejo-roles`. Cocher également "Add to userinfo" et "Add to ID Token", puis cliquer sur "Save". Ensuite, revenir sur la fenêtre "forgejo-dedicated", puis se rendre dans l'onglet "Scope". Désactiver "Full scope allowed", puis cliquer que "Assign Role", cocher les deux rôles `mainteneur` et `contributeur` et cliquer sur "Assign".
(Action) Configurer Forgejo pour tenir compte des rôles fournis par Keycloak. (Action) Configurer Forgejo pour tenir compte des rôles fournis par Keycloak.
@ -613,7 +613,7 @@ Cliquer ensuite sur "Add execution", sélectionner "Cookie" et cliquer sur "Add"
Cliquer ensuite sur "Add Subflow", appeler ce flow "user active authentication", et conserver le "flow type" à la valeur "Generic". Dans la colonne "Requirement" de la ligne "user active authentication", sélectionner "Alternative". Cliquer ensuite sur "Add Subflow", appeler ce flow "user active authentication", et conserver le "flow type" à la valeur "Generic". Dans la colonne "Requirement" de la ligne "user active authentication", sélectionner "Alternative".
Cliquer ensuite sur le "+" de la ligne "user active authentication", puis sur "Add step". Sélectionner "Username Form". Cliquer ensuite sur le "+" de la ligne "user active authentication", puis sur "Add execution". Sélectionner "Username Form".
Cliquer ensuite sur le "+" de la ligne "user active authentication", puis sur "Add sub-flow". Le nommer "required placeholder", laisser le "flow type" à la valeur "Generic", puis cliquer sur "Add". Dans la colonne "Requirement" de la ligne "required placeholder", sélectionner "Required". Cliquer ensuite sur le "+" de la ligne "user active authentication", puis sur "Add sub-flow". Le nommer "required placeholder", laisser le "flow type" à la valeur "Generic", puis cliquer sur "Add". Dans la colonne "Requirement" de la ligne "required placeholder", sélectionner "Required".