메인 콘텐츠로 건너뛰기
W&B는 OIDC(OpenID Connect) 호환 IdP(Identity Provider)를 지원하므로 Okta, Keycloak, Auth0, Google, Entra와 같은 외부 IdP를 통해 사용자 ID와 그룹 소속을 관리할 수 있습니다.

OpenID Connect (OIDC)

W&B는 외부 Identity Provider(IdP)와의 통합을 위해 다음과 같은 OIDC 인증 플로우를 지원합니다.
  1. Form Post를 사용하는 Implicit Flow
  2. Proof Key for Code Exchange(PKCE)를 사용하는 Authorization Code Flow
이러한 플로우는 사용자를 인증하고, 액세스 제어 관리를 위해 필요한 사용자 식별 정보(ID 토큰 형태)를 W&B에 제공합니다. ID 토큰은 사용자의 이름, 사용자명, 이메일, 그룹 멤버십 등 사용자 식별 정보를 포함하는 JWT입니다. W&B는 이 토큰을 사용해 사용자를 인증하고, 시스템 내에서 적절한 역할 또는 그룹에 매핑합니다. W&B의 맥락에서 액세스 토큰은 사용자를 대신해 API 요청을 인가하지만, W&B의 주된 관심사는 사용자 인증과 식별이므로 ID 토큰만 필요합니다. 환경 변수를 사용해 IAM 옵션을 구성하여 Dedicated Cloud 또는 Self-Managed 인스턴스를 설정할 수 있습니다. Dedicated Cloud 또는 Self-Managed W&B 설치에서 Identity Provider를 구성할 때는, 다양한 IdP에 대해 아래 지침을 따르십시오. W&B의 SaaS 버전을 사용하는 경우, 조직용 Auth0 테넌트 구성을 지원받으려면 support@wandb.com으로 문의하십시오.

IdP 구성하기

이 섹션에서는 OIDC용 IdP(아이덴티티 프로바이더)를 구성하는 방법을 설명합니다. 사용 중인 IdP에 해당하는 탭을 선택해 자세한 내용을 확인하세요.
아래 절차를 따라 AWS Cognito를 설정하여 인가를 구성합니다:
  1. 먼저 AWS 계정에 로그인한 다음 AWS Cognito 앱으로 이동합니다.
    AWS Cognito 설정
  2. IdP에서 애플리케이션을 구성할 수 있도록 허용된 콜백 URL을 설정합니다.
    • 콜백 URL로 http(s)://YOUR-W&B-HOST/oidc/callback을(를) 추가합니다. YOUR-W&B-HOST를 W&B 호스트 경로로 바꾸십시오.
  3. IdP가 범용 로그아웃(universal logout)을 지원하는 경우, Logout URL을 http(s)://YOUR-W&B-HOST로 설정합니다. YOUR-W&B-HOST를 W&B 호스트 경로로 바꾸십시오. 예를 들어 애플리케이션이 https://wandb.mycompany.com에서 실행 중이라면, YOUR-W&B-HOSTwandb.mycompany.com으로 바꾸면 됩니다. 아래 이미지는 AWS Cognito에서 허용된 콜백 및 로그아웃 URL을 설정하는 방법을 보여줍니다.
    호스트 구성
    wandb/local은 기본적으로 implicit grant와 form_post response type을 사용합니다. 또한 wandb/localPKCE Code Exchange 플로우를 사용하는 authorization_code grant를 수행하도록 구성할 수도 있습니다.
  4. 하나 이상의 OAuth grant type을 선택하여 AWS Cognito가 토큰을 앱에 전달하는 방식을 구성합니다.
  5. W&B는 특정 OpenID Connect(OIDC) scope가 필요합니다. AWS Cognito App에서 다음 항목을 선택합니다.
    • “openid”
    • “profile”
    • “email”
    예를 들어, AWS Cognito App UI는 다음 이미지와 유사해야 합니다.
    필수 필드
    설정 페이지에서 Auth Method를 선택하거나, OIDC_AUTH_METHOD 환경 변수를 설정하여 wandb/local에게 어떤 grant를 사용할지 지정합니다. Auth Method는 반드시 pkce로 설정해야 합니다.
  6. Client ID와 OIDC issuer의 URL이 필요합니다. OpenID discovery 문서는 $OIDC_ISSUER/.well-known/openid-configuration에서 사용할 수 있어야 합니다. 예를 들어, User Pools 섹션의 App Integration 탭에서 Cognito IdP URL에 User Pool ID를 추가하여 issuer URL을 생성할 수 있습니다.
    AWS Cognito issuer URL
    IDP URL로 “Cognito domain”을 사용하지 마십시오. Cognito는 discovery 문서를 https://cognito-idp.$REGION.amazonaws.com/$USER_POOL_ID에서 제공합니다.
다음으로, W&B에서 SSO 설정을 진행합니다.

W&B에서 SSO 설정하기

SSO를 설정하려면 관리자 권한과 다음 정보가 필요합니다:
  • OIDC Client ID
  • OIDC Auth method (implicit 또는 pkce)
  • OIDC Issuer URL
  • OIDC Client Secret (선택 사항; IdP 구성 방식에 따라 필요할 수 있음)
IdP에서 OIDC Client Secret을 요구하는 경우, 환경 변수 GORILLA_OIDC_SECRET를 설정하여 지정합니다.
  • W&B App에서 System Console > Settings > Advanced > User Spec으로 이동한 후, 아래 예시와 같이 extraENV 섹션에 GORILLA_OIDC_SECRET를 추가합니다.
  • Helm에서는 아래 예시와 같이 values.global.extraEnv를 설정합니다.
    values:
    global:
        extraEnv:
        GORILLA_OIDC_SECRET="<your_secret>"
    
SSO를 구성한 뒤 인스턴스에 로그인할 수 없다면, LOCAL_RESTORE=true 환경 변수를 설정한 상태로 인스턴스를 다시 시작할 수 있습니다. 그러면 컨테이너 로그에 임시 비밀번호가 출력되고 SSO가 비활성화됩니다. SSO 관련 문제를 해결한 후에는 SSO를 다시 활성화하기 위해 반드시 해당 환경 변수를 제거해야 합니다.
System Console은 System Settings 페이지의 후속 버전입니다. W&B Kubernetes Operator 기반 배포에서 사용할 수 있습니다.
  1. Access the W&B Management Console을 참조합니다.
  2. Settings로 이동한 다음 Authentication을 선택합니다. Type 드롭다운에서 OIDC를 선택합니다.
    System Console OIDC 구성
  3. 값을 입력합니다.
  4. Save를 클릭합니다.
  5. 로그아웃한 후, 이번에는 IdP 로그인 화면을 사용해 다시 로그인합니다.

고객 네임스페이스 찾기

W&B Dedicated Cloud 또는 Self-Managed에서 CoreWeave 스토리지를 사용해 팀 단위 BYOB를 구성하기 전에, 먼저 조직의 Customer Namespace를 확인해야 합니다. 이는 Authentication 탭 하단에서 확인하고 복사할 수 있습니다.Customer Namespace로 CoreWeave 스토리지를 구성하는 자세한 방법은 CoreWeave requirements for Dedicated Cloud / Self-Managed를 참조하세요.
SSO를 구성한 뒤 인스턴스에 로그인할 수 없다면, LOCAL_RESTORE=true 환경 변수를 설정한 상태로 인스턴스를 다시 시작할 수 있습니다. 그러면 컨테이너 로그에 임시 비밀번호가 출력되고 SSO가 비활성화됩니다. SSO 관련 문제를 해결한 후에는 SSO를 다시 활성화하기 위해 반드시 해당 환경 변수를 제거해야 합니다.

Security Assertion Markup Language (SAML)

W&B는 SAML을 지원하지 않습니다.