ID 페더레이션은 모든 플랫폼 유형(SaaS Cloud, Dedicated Cloud, Self-Managed 인스턴스)의
Enterprise 플랜에서 Preview로 제공됩니다. 궁금한 점이 있으면 W&B 팀에 문의하십시오.이 문서에서는
identity provider와 JWT issuer라는 용어를 서로 혼용하여 사용합니다. 이 기능의 문맥에서는 둘 다 동일한 대상을 가리킵니다.JWT 발급자 설정
- 조직 대시보드에서 Settings 탭으로 이동합니다.
- Authentication 옵션에서
Set up JWT Issuer를 클릭합니다. - 텍스트 상자에 JWT 발급자 URL을 입력하고
Create를 클릭합니다.
${ISSUER_URL}/.well-known/openid-configuration 경로에서 OIDC 디스커버리 문서를 자동으로 찾고, 해당 디스커버리 문서에 포함된 관련 URL에서 JSON Web Key Set(JWKS)를 검색합니다. JWKS는 JWT가 해당 identity provider에 의해 발급되었는지 실시간으로 검증하는 데 사용됩니다.
JWT를 사용하여 W&B에 액세스하기
- 조직에서 사용 가능한 방식 중 하나를 사용해 아이덴티티 프로바이더에 로그인해야 합니다. 일부 프로바이더는 API나 SDK를 사용해 자동화된 방식으로 액세스할 수 있고, 일부는 관련 UI를 통해서만 액세스할 수 있습니다. 자세한 내용은 W&B 조직 관리자나 JWT 발급자 소유자에게 문의하십시오.
- 아이덴티티 프로바이더에 로그인한 후 JWT를 발급받으면, 해당 JWT를 안전한 위치의 파일에 저장하고, 해당 파일의 절대 경로를 환경 변수
WANDB_IDENTITY_TOKEN_FILE에 설정하십시오. - W&B SDK 또는 CLI를 사용해 W&B 프로젝트에 액세스하십시오. SDK 또는 CLI는 JWT를 자동으로 인식하고, JWT가 성공적으로 검증되면 이를 W&B 액세스 토큰으로 교환합니다. W&B 액세스 토큰은 실행, 메트릭, 아티팩트 기록 등 AI 워크플로를 활성화하기 위한 관련 API에 액세스하는 데 사용됩니다. 액세스 토큰은 기본적으로
~/.config/wandb/credentials.json경로에 저장됩니다. 환경 변수WANDB_CREDENTIALS_FILE을 지정하여 이 경로를 변경할 수 있습니다.
JWT는 API key, 비밀번호 등과 같은 장기 자격 증명의 한계를 보완하기 위해 설계된 단기 자격 증명입니다. 아이덴티티 프로바이더에서 설정한 JWT 만료 시간에 따라 JWT를 지속적으로 갱신해야 하며, 갱신된 JWT가 항상 환경 변수
WANDB_IDENTITY_TOKEN_FILE이 가리키는 파일에 저장되도록 해야 합니다.W&B 액세스 토큰에도 기본 만료 시간이 있으며, 만료 후 SDK 또는 CLI는 사용자의 JWT를 사용해 토큰을 자동으로 갱신하려고 시도합니다. 이때 사용자 JWT도 이미 만료되어 갱신되지 않은 상태라면 인증 실패가 발생할 수 있습니다. 가능하다면, W&B SDK 또는 CLI를 사용하는 AI 워크로드 내에 JWT 조회 및 만료 후 갱신 메커니즘을 포함해 구현하는 것이 좋습니다.JWT 검증
- JWT 서명은 W&B 조직 수준에서 구성된 JWKS를 사용해 검증됩니다. 이는 1차 방어선이며, 이 검증이 실패한다면 JWKS 설정이나 JWT 서명 방식에 문제가 있다는 의미입니다.
- JWT의
iss클레임은 조직 수준에서 구성된 issuer URL과 같아야 합니다. - JWT의
sub클레임은 W&B 조직에 구성된 사용자의 이메일 주소와 같아야 합니다. - JWT의
aud클레임은 AI 워크플로의 일부로 액세스하려는 프로젝트가 속해 있는 W&B 조직의 이름과 같아야 합니다. Dedicated Cloud 또는 Self-Managed 인스턴스의 경우, 인스턴스 수준 환경 변수SKIP_AUDIENCE_VALIDATION을true로 설정해 audience 클레임 검증을 건너뛰거나, audience로wandb를 사용할 수 있습니다. - JWT의
exp클레임은 토큰이 유효한지, 또는 만료되어 갱신이 필요한지를 확인하기 위해 검사됩니다.
외부 서비스 계정
- 팀의 Service Accounts 탭으로 이동합니다.
New service account를 누릅니다.- 서비스 계정 이름을 입력하고,
Authentication Method로Federated Identity를 선택한 후Subject를 입력하고Create를 누릅니다.
sub 클레임은 팀 관리자가 팀 수준 Service Accounts 탭에서 해당 계정의 subject로 설정한 값과 동일해야 합니다. 이 클레임은 JWT 검증의 일부로 검증됩니다. aud 클레임 요구사항은 사람 사용자 JWT와 동일합니다.
외부 서비스 계정의 JWT를 사용해 W&B에 액세스할 때는 초기 JWT 생성 및 지속적인 갱신 워크플로를 자동화하는 편이 일반적으로 더 쉽습니다. 외부 서비스 계정을 사용해 기록된 실행을 특정 사람 사용자에게 귀속시키고 싶다면, 기본 제공 서비스 계정에서와 마찬가지로 AI 워크플로에 WANDB_USERNAME 또는 WANDB_USER_EMAIL 환경 변수를 설정할 수 있습니다.
W&B는 유연성과 단순성 사이의 균형을 맞추기 위해, 데이터 민감도 수준이 서로 다른 다양한 AI 워크로드 전반에 걸쳐 기본 제공 서비스 계정과 외부 서비스 계정을 혼합해 사용할 것을 권장합니다.