fix: use hydra-ldap and olm operator to fix example

This commit is contained in:
2025-02-13 17:02:48 +01:00
committed by Laurent Gourvénec
parent c97266c272
commit c01eb28d8c
34 changed files with 729 additions and 461 deletions

View File

@ -1,6 +1,6 @@
# Exemple: Déploiement d'une application authentifiée avec la stack SSO
L'exemple est actuellement déployé avec le composant `hydra-saml` uniquement.
L'exemple est actuellement déployé avec le composant `hydra-ldap` uniquement.
## Procédure
@ -8,37 +8,40 @@ L'exemple est actuellement déployé avec le composant `hydra-saml` uniquement.
1. Créer un cluster avec `kind`
```
kind create cluster --config ./examples/k8s/kind/cluster-config.yaml
```
```
kind create cluster --config ./examples/k8s/kind/cluster-config.yaml
```
2. Déployer les opérateurs nécessaires au déploiement
```
kubectl apply -k ./examples/k8s/kind/cluster --server-side
```
3. Déployer l'application
```
kubectl apply -k ./examples/authenticated-app
```
**Note** Il est possible d'avoir l'erreur suivante:
```
error: resource mapping not found for name: "app-oauth2-client" namespace: "" from "./examples/authenticated-app": no matches for kind "OAuth2Client" in version "hydra.ory.sh/v1alpha1"
kubectl apply -k ./examples/k8s/kind/cluster --server-side
```
Cette erreur est "normale" (voir https://github.com/kubernetes/kubectl/issues/1117). Dans ce cas, attendre la création de la CRD (voir ticket) puis relancer la commande.
> Si une erreur du type `ensure CRDs are installed first` s'affiche, relancer la commande.
4. Ajouter l'entrée suivante dans votre fichier `/etc/hosts`
3. Attendre que l'opérateur Redis soit opérationnel puis patcher le `ClusterRole` de celui ci (cf. https://github.com/OT-CONTAINER-KIT/redis-operator/issues/526):
```
127.0.0.1 ssokustom
```
```bash
kubectl wait -n operators --timeout 10m --for=jsonpath=".status.state"=AtLatestKnown subscription my-redis-operator
# On attend quelques secondes supplémentaires pour s'assurer que l'opérateur a réellement démarré
sleep 30
kubectl patch clusterroles.rbac.authorization.k8s.io $(kubectl get clusterrole | awk '/redis-operator/ {print $1}') --patch-file examples/k8s/kind/cluster/fix/redis-operator-clusterrole.yaml
```
5. Après stabilisation du déploiement, l'application devrait être accessible à l'adresse https://ssokustom
4. Déployer l'application
```
kubectl apply -k ./examples/authenticated-app
```
5. Ajouter l'entrée suivante dans votre fichier `/etc/hosts`
```
127.0.0.1 ssokustom
```
6. Après stabilisation du déploiement, l'application devrait être accessible à l'adresse https://ssokustom
#### Supprimer le cluster
@ -48,14 +51,15 @@ kind delete cluster -n sso-kustom-example
## Authentification
### SAML
### LDAP
- Utilisateur: `user1`
- Mot de passe `user1pass`
#### Comptes par défaut
#### URL utiles
1. `jdoe` / `jdoe`
2. `jdoe2` / `jdoe`
3. `siret1` / `siret`
4. `siret2` / `siret`
|URL|Description|
|---|-----------|
|https://ssokustom/auth/saml/Shibboleth.sso/Session|Attributs de la session SP Shibboleth|
|https://ssokustom/auth/saml/Shibboleth.sso/Metadata|Métadonnées du SP Shibboleth|
#### Gestion des comptes
Les comptes LDAP sont définis dans le fichier [`./files/glauth.conf`](./files/glauth.conf)