La fédération d’identités est disponible en
Preview pour les plans Enterprise sur tous les types de plateforme : SaaS Cloud, Cloud dédié et instances autogérées. Contactez votre équipe W&B pour toute question.Dans ce document, les termes
fournisseur d’identité et JWT issuer sont utilisés de manière interchangeable. Ils désignent tous deux une seule et même chose dans le contexte de cette fonctionnalité.Configuration de l’émetteur JWT
- Accédez à l’onglet Settings du 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, et essaiera de trouver le JSON Web Key Set (JWKS) à l’URL appropriée dans le document de découverte. Le JWKS est utilisé pour la validation en temps réel des JWT afin de garantir qu’ils ont été émis par le fournisseur d’identité concerné.
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. Certains fournisseurs sont accessibles de manière automatisée via une API ou un SDK, tandis que d’autres ne sont accessibles que via l’interface utilisateur appropriée. Contactez l’administrateur de votre organisation W&B ou le propriétaire de l’émetteur JWT pour plus de détails.
- Une fois le JWT récupéré après connexion à votre fournisseur d’identité, stockez-le dans un fichier situé dans un emplacement sécurisé et configurez le chemin absolu de ce fichier dans une 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 doit détecter automatiquement le JWT et l’échanger contre un jeton d’accès W&B une fois le JWT validé avec succès. Le jeton d’accès W&B est utilisé pour accéder aux API concernées afin de prendre en charge vos flux de travail d’IA, c’est-à-dire pour journaliser des runs, des métriques, des artifacts, etc. Le jeton d’accès est stocké par défaut dans
~/.config/wandb/credentials.json. Vous pouvez modifier ce chemin en spécifiant la variable d’environnementWANDB_CREDENTIALS_FILE.
Les JWT sont conçus comme des identifiants de courte durée pour remédier aux limites des identifiants de longue durée, comme les clés API, les mots de passe, etc. Selon la durée d’expiration du JWT configurée dans votre fournisseur d’identité, vous devez actualiser régulièrement le JWT et vous assurer 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 d’expiration par défaut, après laquelle le SDK ou la CLI essaie automatiquement de l’actualiser à l’aide de votre JWT. Si le JWT utilisateur a lui aussi expiré à ce moment-là et n’est pas actualisé, cela peut entraîner un échec d’authentification. Si possible, le mécanisme de récupération du JWT et de rafraîchissement après expiration doit être implémenté dans la charge de travail d’IA qui utilise le SDK ou la CLI W&B.Validation des JWT
- La signature du JWT est vérifiée à 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. Dans le cas des instances Cloud dédié ou Autogéré, vous pouvez configurer la variable d’environnementSKIP_AUDIENCE_VALIDATIONau niveau de l’instance surtruepour ignorer la validation du claim d’audience, ou utiliserwandbcomme audience. - Le claim
expdu JWT est vérifié 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
- Saisissez un nom pour le compte de service, sélectionnez
Federated IdentitycommeAuthentication Method, indiquez unSubject, puis cliquez sur Create
sub dans le JWT du compte de service externe doit correspondre à celle que l’administrateur d’équipe configure comme sujet dans l’onglet Service Accounts au niveau de l’équipe. Cette claim est vérifiée dans le cadre de la Validation des JWT. L’exigence relative à la claim aud est similaire à celle des JWT d’utilisateurs humains.
Lorsque vous utilisez le JWT d’un compte de service externe pour accéder à W&B, il est généralement plus simple d’autatiser le flux de travail pour générer le JWT initial et le renouveler en continu. Si vous souhaitez attribuer les Runs enregistrés à l’aide d’un compte de service externe à un utilisateur humain, vous pouvez configurer 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 une combinaison 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, afin de trouver un équilibre entre flexibilité et simplicité.