연합 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가 해당 ID 공급자(IdP)에서 발급된 것인지 실시간으로 검증하는 데 사용됩니다.
JWT를 사용하여 W&B에 액세스하기
- 조직에서 사용 가능한 방식 중 하나를 사용해 ID 공급자에 로그인해야 합니다. 일부 공급자는 API 또는 SDK를 사용해 자동화된 방식으로 액세스할 수 있는 반면, 일부는 관련 UI를 통해서만 액세스할 수 있습니다. 자세한 내용은 W&B 조직 관리자 또는 JWT 발급자 소유자에게 문의하십시오.
- ID 공급자에 로그인한 후 JWT를 가져오면, 이를 안전한 위치의 파일에 저장하고 해당 파일의 절대 경로를 환경 변수
WANDB_IDENTITY_TOKEN_FILE에 설정하십시오. - W&B SDK 또는 CLI를 사용해 W&B 프로젝트에 액세스하십시오. SDK 또는 CLI는 JWT를 자동으로 감지하고, JWT가 성공적으로 검증된 후 이를 W&B 액세스 토큰으로 교환합니다. W&B 액세스 토큰은 run, 메트릭, 아티팩트 등을 로깅하는 등 AI 워크플로를 활성화하기 위한 관련 API에 액세스하는 데 사용됩니다. 액세스 토큰은 기본적으로
~/.config/wandb/credentials.json경로에 저장됩니다. 환경 변수WANDB_CREDENTIALS_FILE을 지정하여 해당 경로를 변경할 수 있습니다.
JWT는 API 키, 비밀번호 등과 같은 장기 자격 증명의 한계를 보완하기 위해 설계된 단기 자격 증명입니다. ID 공급자에서 구성한 JWT 만료 시간에 따라 JWT를 지속적으로 갱신하고, 환경 변수
WANDB_IDENTITY_TOKEN_FILE이 참조하는 파일에 항상 최신 JWT가 저장되어 있도록 해야 합니다.W&B 액세스 토큰에도 기본 만료 시간이 있으며, 이 시간이 지나면 SDK 또는 CLI는 JWT를 사용해 이를 자동으로 갱신하려고 시도합니다. 그 시점에 사용자 JWT도 만료되어 갱신되지 않았다면 인증 실패가 발생할 수 있습니다. 가능하다면, JWT 획득 및 만료 후 갱신 메커니즘을 W&B SDK 또는 CLI를 사용하는 AI 워크로드의 일부로 구현하는 것이 좋습니다.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를 생성하고 지속적으로 갱신하는 워크플로를 자동화하는 것이 일반적으로 더 쉽습니다. 외부 서비스 계정을 사용해 로깅된 run을 특정 사용자에게 귀속시키고 싶다면, 기본 제공 서비스 계정에서와 마찬가지로 AI 워크플로에 WANDB_USERNAME 또는 WANDB_USER_EMAIL 환경 변수를 설정할 수 있습니다.
W&B는 유연성과 단순성 사이의 균형을 맞추기 위해, 데이터 민감도 수준이 다른 AI 워크로드 전반에서 기본 제공 서비스 계정과 외부 서비스 계정을 혼합해서 사용할 것을 권장합니다.