|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
Open ID Connect (OIDC)
Présentation
SUSE Observability peut s’authentifier en utilisant un fournisseur d’authentification OIDC. Pour activer cela, vous devez configurer à la fois SUSE Observability et le fournisseur OIDC pour qu’ils puissent communiquer entre eux. Les sections suivantes décrivent les configurations respectives.
Configurer le fournisseur OIDC
Avant de pouvoir configurer SUSE Observability pour s’authentifier en utilisant OIDC, vous devez créer un client pour SUSE Observability sur votre fournisseur OIDC.
Rancher
| Cela ne fonctionne qu’avec Rancher 2.12 ou une version ultérieure. Vous devez configurer Rancher en tant que fournisseur OIDC. |
Créez une ressource OIDCClient dans la grappe locale de Rancher :
apiVersion: management.cattle.io/v3
kind: OIDCClient
metadata:
name: oidc-observability
spec:
tokenExpirationSeconds: 600
refreshTokenExpirationSeconds: 3600
redirectURIs:
- "https://<observability-base-url>/loginCallback?client_name=StsOidcClient"
Rancher mettra le client ID et le secret à disposition dans son champ d’état :
apiVersion: management.cattle.io/v3
kind: OIDCClient
metadata:
name: oidc-observability
spec:
tokenExpirationSeconds: 600
refreshTokenExpirationSeconds: 3600
redirectURIs:
- "https://<observability-base-url>/loginCallback?client_name=StsOidcClient"
status:
clientID: <oidc-client-id>
clientSecrets:
client-secret-1:
createdAt: "xxx"
lastFiveCharacters: xxx
Et vous pouvez obtenir la valeur du secret avec
kubectl get secret <oidc-client-id> -n cattle-oidc-client-secrets -o jsonpath="{.data.client-secret-1}" | base64 -d
D’autres fournisseurs OIDC
Utilisez les paramètres suivants pour le client (si nécessaire par le fournisseur OIDC) :
-
Utilisez le flux d’autorisation OIDC, qui est également souvent appelé le flux de code d’autorisation. SUSE Observability ne prend pas en charge les flux d’octroi implicite et hybrides, donc il n’est pas nécessaire d’activer le support pour eux.
-
Définissez le URI de redirection sur l’URL de base de SUSE Observability suffixée par
/loginCallback?client_name=StsOidcClient. Par exemplehttps://stackstate.acme.com/loginCallback?client_name=StsOidcClient. Pour certains fournisseurs OIDC, tels que Google et Azure Entra ID, l’URI de redirection doit correspondre exactement, y compris tous les paramètres de requête. Dans ce cas, vous devez configurer l’URI comme cecihttps://stackstate.acme.com/loginCallback?client_name=StsOidcClient. -
Donnez à SUSE Observability accès à au moins les portées
openidetemailou l’équivalent de celles-ci pour votre fournisseur OIDC. Selon le fournisseur, d’autres portées peuvent être requises, si unprofileséparé existe, incluez-le également. -
SUSE Observability a besoin d’un accès hors ligne OIDC. Pour certains fournisseurs d’identité, cela nécessite une portée supplémentaire, généralement appelée
offline_access.
Le résultat de cette configuration devrait produire un clientId et un secret. Copiez-les et gardez-les à portée de main pour configurer SUSE Observability. Notez également le discoveryUri du fournisseur. En général, cela se trouve soit sur le même écran, soit dans la documentation.
Configurer SUSE Observability pour OIDC
Rancher
| Cela ne fonctionne qu’avec Rancher 2.12 ou une version ultérieure. Vous devez configurer Rancher en tant que fournisseur OIDC. |
Pour configurer Rancher en tant que fournisseur OIDC pour SUSE Observability, vous devez ajouter les détails OIDC aux valeurs d’authentification :
stackstate:
authentication:
rancher:
clientId: "<oidc-client-id>"
secret: "<oidc-secret>"
baseUrl: "<rancher-url>"
Vous pouvez remplacer et étendre la configuration OIDC pour Rancher avec les champs suivants :
-
discoveryUri - URI que vous pouvez utiliser pour découvrir le fournisseur OIDC : Normalement, également documenté ou retourné lors de la création du client dans le fournisseur OIDC :
-
redirectUri - Optionnel (non dans l’exemple) : L’URI où le point de terminaison de rappel de connexion de SUSE Observability est accessible. Rempli par défaut en utilisant le
stackstate.baseUrl, mais peut être remplacé : Cela doit être une URL entièrement qualifiée qui pointe vers le chemin/loginCallback: -
customParameters - Carte optionnelle de paires clé/valeur que vous envoyez au fournisseur OIDC en tant que paramètres de requête personnalisés : Certains fournisseurs OIDC nécessitent des paramètres de requête supplémentaires qui ne sont pas envoyés par défaut :
Si vous devez désactiver la vérification TLS en raison d’une configuration n’utilisant pas de certificats SSL vérifiables, vous pouvez désactiver les vérifications SSL avec la configuration de l’application (ne pas utiliser en production) :
Pour la configuration Non-HA :
stackstate:
components:
server:
extraEnv:
open:
CONFIG_FORCE_stackstate_misc_sslCertificateChecking: false
Pour la configuration HA (haute disponibilité) :
stackstate:
components:
api:
extraEnv:
open:
CONFIG_FORCE_stackstate_misc_sslCertificateChecking: false
Dans les déploiements HA, le composant api gère la configuration différemment : Utilisez ce qui suit :
=== Kubernetes
Pour configurer SUSE Observability afin d’utiliser un fournisseur d’authentification OIDC sur Kubernetes, vous devez ajouter les détails OIDC et la cartographie des rôles utilisateurs au fichier authentication.yaml : Par exemple :
stackstate:
authentication:
oidc:
clientId: "<client-id-from-oidc-provider>"
secret: "<secret-from-oidc-provider>"
discoveryUri: "https://oidc.acme.com/.well-known/openid-configuration"
jwsAlgorithm: RS256
scope: ["openid", "email"]
jwtClaims:
usernameField: email
displayNameField: name
groupsField: groups
customParameters:
access_type: offline
# map the groups from OIDC provider
# to the 4 standard roles in SUSE Observability (guest, powerUser, k8sTroubleshooter and admin)
roles:
guest: ["guest-group-in-oidc-provider"]
powerUser: ["powerUser-group-in-oidc-provider"]
admin: ["admin-group-in-oidc-provider"]
k8sTroubleshooter: ["troubleshooter-group-in-oidc-provider"]
Suivez les étapes ci-dessous pour configurer SUSE Observability afin de s’authentifier en utilisant OIDC :
-
Dans
authentication.yaml- ajoutez les détails du fournisseur d’authentification OIDC (voir l’exemple ci-dessus) :-
clientId - L’ID du client OIDC que vous avez créé pour SUSE Observability :
-
secret - Le secret pour le client OIDC que vous avez créé pour SUSE Observability :
-
discoveryUri - URI qui peut être utilisée pour découvrir le fournisseur OIDC : Normalement également documenté ou retourné lors de la création du client dans le fournisseur OIDC :
-
jwsAlgorithm - La valeur par défaut pour OIDC est
RS256: Si votre fournisseur OIDC utilise un autre, il peut être défini ici : -
scope - Doit correspondre, ou être un sous-ensemble, de la portée fournie dans la configuration du fournisseur OIDC : SUSE Observability utilise cela pour demander l’accès à ces parties d’un profil utilisateur dans le fournisseur OIDC :
-
redirectUri - Optionnel (non dans l’exemple) : L’URI où le point de terminaison de rappel de connexion de SUSE Observability est accessible. Rempli par défaut en utilisant le
stackstate.baseUrl, mais peut être remplacé : Cela doit être une URL entièrement qualifiée qui pointe vers le chemin/loginCallback: -
customParameters - Carte optionnelle de paires clé/valeur qui sont envoyées au fournisseur OIDC en tant que paramètres de requête personnalisés : Certains fournisseurs OIDC nécessitent des paramètres de requête supplémentaires qui ne sont pas envoyés par défaut.
-
jwtClaims -
-
usernameField - Le champ dans le profil OIDC de l’utilisateur qui doit être utilisé comme nom d’utilisateur. Par défaut, cela sera le
preferred_username, cependant, de nombreux fournisseurs omettent ce champ. Une bonne alternative estemail. -
displayNameField - Le champ dans le profil OIDC de l’utilisateur qui doit être utilisé comme nom d’affichage. Par défaut, cela sera le
name. -
groupsField - Le champ à partir duquel SUSE Observability lira le rôle/groupe pour un utilisateur.
-
-
-
Dans
authentication.yaml- mappez les rôles des utilisateurs d’OIDC aux sujets appropriés de SUSE Observability en utilisant les paramètresroles.guest,roles.powerUser,roles.adminouroles.platformAdmin(voir l’exemple ci-dessus). Pour plus de détails, voir les rôles par défaut de SUSE Observability. D’autres rôles SUSE Observability peuvent également être créés, voir la documentation RBAC. -
Stockez le fichier
authentication.yamlavec le fichiervalues.yamldes instructions d’installation de SUSE Observability. -
Exécutez une mise à niveau Helm pour appliquer les modifications :
helm upgrade \ --install \ --namespace suse-observability \ --values values.yaml \ --values authentication.yaml \ suse-observability \ suse-observability/suse-observability
|
Remarque :
|
Utilisation d’un secret externe
Lorsque les secrets OIDC doivent provenir d’un secret externe, suivez ces étapes mais remplissez les données suivantes :
kind: Secret
metadata:
name: "<custom-secret-name>"
type: Opaque
data:
oidc_client_id: <base64 of client id>
oidc_secret: <base64 of secret>