La fédération d’identités est disponible en préversion pour Cloud mutualisé, Cloud dédié et Autogéré. Une licence Enterprise est requise. Pour plus de détails ou pour obtenir de l’assistance, contactez votre AISE ou l’assistance.
Ce document utilise les termes “fournisseur d’identité” et “émetteur JWT” de manière interchangeable. Ils désignent tous deux la même chose dans le contexte de cette fonctionnalité.
Configurer l’émetteur JWT
- Accédez à l’onglet Settings dans le tableau de bord de votre organisation.
- Dans l’option Authentication, cliquez sur Set up JWT Issuer.
- Ajoutez l’URL de l’émetteur JWT dans la zone de texte, puis cliquez sur Create.
${ISSUER_URL}/.well-known/openid-configuration. À partir de ce document, W&B localise le JSON Web Key Set (JWKS) à l’URL correspondante. W&B utilise le JWKS pour valider les JWT en temps réel et s’assurer qu’ils ont bien été émis par le fournisseur d’identité concerné.
Après cette étape, votre organisation W&B est fédérée avec l’émetteur JWT. Les Users de votre organisation peuvent alors s’authentifier auprès de W&B à l’aide de JWT émis par ce fournisseur.
Utiliser le JWT pour accéder à W&B
- Vous devez vous connecter au fournisseur d’identité à l’aide de l’un des mécanismes disponibles dans votre organisation. Vous pouvez accéder à certains fournisseurs de manière automatisée à l’aide d’une API ou d’un SDK, tandis que d’autres ne sont accessibles que via l’interface utilisateur correspondante. Contactez l’administrateur de votre organisation W&B ou le propriétaire de l’émetteur JWT pour plus d’informations.
- Après avoir récupéré le JWT en vous connectant à votre fournisseur d’identité, stockez-le dans un fichier à un emplacement sécurisé. Configurez le chemin absolu de ce fichier dans la variable d’environnement
WANDB_IDENTITY_TOKEN_FILE. - Accédez à votre projet W&B à l’aide du SDK ou de la CLI W&B. Le SDK ou la CLI détecte automatiquement le JWT et l’échange contre un jeton d’accès W&B après l’avoir validé. Le jeton d’accès W&B donne accès aux API pertinentes pour prendre en charge vos flux de travail d’IA, par exemple pour journaliser les runs, les métriques et les artefacts. Par défaut, le jeton d’accès est stocké au chemin
~/.config/wandb/credentials.json. Vous pouvez modifier ce chemin en définissant la variable d’environnementWANDB_CREDENTIALS_FILE.
Les JWT sont des identifiants à courte durée de vie qui corrigent les limites des identifiants à longue durée de vie, comme les clés API et les mots de passe. La durée de validité du JWT dépend de la configuration de votre fournisseur d’identité. Actualisez le JWT avant son expiration et assurez-vous qu’il est stocké dans le fichier référencé par la variable d’environnement
WANDB_IDENTITY_TOKEN_FILE.Le jeton d’accès W&B a également une durée de validité par défaut, au-delà de laquelle le SDK ou la CLI tente de le renouveler à l’aide de votre JWT. Si le JWT de l’utilisateur a lui aussi expiré à ce moment-là et n’a pas été actualisé, l’authentification échoue. Si possible, implémentez le mécanisme de récupération du JWT et de renouvellement après expiration dans la charge de travail d’IA qui utilise le SDK ou la CLI W&B.Validation du JWT
- W&B vérifie la signature du JWT à l’aide du JWKS au niveau de l’organisation W&B. Il s’agit de la première ligne de défense et, si cette vérification échoue, cela signifie qu’il y a un problème avec votre JWKS ou avec la façon dont votre JWT est signé.
-
Le claim
issdu JWT doit être égal à l’URL de l’émetteur configurée au niveau de l’organisation. -
Le claim
subdu JWT doit être égal à l’adresse e-mail de l’utilisateur telle qu’elle est configurée dans l’organisation W&B. -
Le claim
auddu JWT doit être égal au nom de l’organisation W&B qui héberge le projet auquel vous accédez dans le cadre de votre flux de travail d’IA. Sur les instances Cloud dédié ou Autogéré :- Pour ignorer la validation de l’audience, vous pouvez définir la variable d’environnement
FEDERATED_AUTH_AUDIENCESsurwandb. - Certaines organisations ont des exigences spécifiques pour l’audience. Pour personnaliser la valeur de
aud, définissez la variable d’environnementFEDERATED_AUTH_AUDIENCESsur une chaîne contenant une liste de valeurs d’audience séparées par des virgules.
- Pour ignorer la validation de l’audience, vous pouvez définir la variable d’environnement
-
W&B vérifie le claim
expdu JWT pour déterminer si le jeton est valide ou s’il a expiré et doit être renouvelé.
Comptes de service externes
- Accédez à l’onglet Service Accounts de votre équipe.
- Cliquez sur New service account.
- Fournissez un nom au compte de service.
- Sélectionnez Federated Identity comme Authentication Method, puis indiquez un Subject. Voir Déterminer la valeur du champ Subject pour votre fournisseur d’identité.
- Cliquez sur Create.
sub dans le JWT du compte de service externe doit être égal au sujet configuré par l’administrateur de l’équipe dans l’onglet Service Accounts au niveau de l’équipe. W&B vérifie ce claim dans le cadre de la validation du JWT. L’exigence relative au claim aud est similaire à celle des JWT d’utilisateurs humains.
Lors de l’utilisation du JWT d’un compte de service externe pour accéder à W&B, il est souvent plus simple d’automatiser le flux de travail. L’automatisation génère le JWT initial et le renouvelle si nécessaire. Pour attribuer les runs enregistrés à l’aide d’un compte de service externe à un utilisateur humain, configurez les variables d’environnement WANDB_USERNAME ou WANDB_USER_EMAIL pour votre flux de travail d’IA, comme pour les comptes de service intégrés.
W&B recommande d’utiliser un mélange de comptes de service intégrés et externes pour vos charges de travail d’IA présentant différents niveaux de sensibilité des données. Cette approche offre un bon équilibre entre flexibilité et simplicité.
Déterminer la valeur de Subject pour votre fournisseur d’identité
sub (subject) des JWT émis par votre IdP pour le compte de service. W&B applique la même comparaison à tous les fournisseurs d’identité. La correspondance est exacte, sensible à la casse et aux espaces : même un espace final ou une différence de majuscules/minuscules entraîne l’échec de l’authentification.
W&B App accepte n’importe quel Subject non vide sans en valider la valeur, car celle-ci dépend entièrement de l’IdP. W&B ne peut pas détecter une valeur incorrecte lorsque vous créez le compte de service. À la place, l’authentification échoue plus tard, lorsque le compte de service présente son JWT.
Le moyen le plus fiable de déterminer la valeur correcte consiste à la lire dans un jeton réel. Obtenez un exemple de JWT émis pour le compte de service, décodez localement en base64url sa charge utile (le segment central, entre les deux points), puis copiez la valeur sub telle quelle dans le champ Subject. Ne collez pas de JWT dans des décodeurs en ligne tiers, car un JWT est une donnée d’authentification.
La valeur diffère selon le fournisseur. Les exemples suivants sont typiques, mais vérifiez-les toujours à partir d’un jeton réel :
| Fournisseur d’identité | Où trouver la valeur sub |
|---|---|
| Microsoft Entra ID | L’Object ID du principal de service, disponible sous Enterprise Applications dans le centre d’administration Microsoft Entra. Utilisez l’Object ID de l’Enterprise Application (principal de service), et non l’Object ID de l’App registration. Pour les jetons app-only (client credentials), il s’agit généralement de la valeur qu’Entra ID place dans sub. |
| Google Cloud (GCP) | La valeur sub du jeton d’identité que Google émet pour le compte de service. |