メインコンテンツへスキップ
W&B による OpenID Connect (OIDC) 互換のアイデンティティプロバイダーのサポートにより、Okta、Keycloak、Auth0、Google、Entra などの外部アイデンティティプロバイダーを通じて、ユーザー ID およびグループメンバーシップを管理できます。

OpenID Connect (OIDC)

W&B は、外部の Identity Provider (IdP) と統合するために、次の OIDC 認証フローをサポートしています。
  1. Implicit Flow with Form Post
  2. Authorization Code Flow with Proof Key for Code Exchange (PKCE)
これらのフローではユーザーを認証し、アクセス制御を管理するために必要な ID 情報(ID トークンとして提供される)を W&B に渡します。 ID トークンは JWT であり、氏名、ユーザー名、メールアドレス、グループメンバーシップなどのユーザーの ID 情報を含みます。W&B はこのトークンを使用してユーザーを認証し、システム内の適切なロールやグループにマッピングします。 W&B においては、アクセストークンはユーザーに代わって API へのリクエストを許可するために使用されますが、W&B の主な関心はユーザー認証とユーザーのアイデンティティであるため、必要なのは ID トークンのみです。 環境変数を使用して、Dedicated Cloud または Self-Managed インスタンス向けに IAM オプションを設定 できます。 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 setup
  2. IdP でアプリケーションを設定するために、許可されたコールバック URL を指定します:
    • コールバック URL として http(s)://YOUR-W&B-HOST/oidc/callback を追加します。YOUR-W&B-HOST を W&B ホストのパスに置き換えます。
  3. IdP がユニバーサルログアウトをサポートしている場合、ログアウト 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 およびサインアウト URL を指定する方法を示しています。
    Host configuration
    wandb/local はデフォルトで、implicit グラントと form_post レスポンスタイプ を使用します。 また、wandb/local を、authorization_code グラントを用いた PKCE Code Exchange フローを実行するように設定することもできます。
  4. 1 つ以上の OAuth グラントタイプを選択して、AWS Cognito がトークンをアプリにどのように配信するかを設定します。
  5. W&B では特定の OpenID Connect (OIDC) スコープが必要です。AWS Cognito アプリで次のスコープを選択します:
    • 「openid」
    • 「profile」
    • 「email」
    たとえば、AWS Cognito アプリの UI は次の画像のようになります。
    Required fields
    設定ページで Auth Method を選択するか、環境変数 OIDC_AUTH_METHOD を設定して、wandb/local にどのグラントを使用するかを指定します。 Auth Method を pkce に設定する必要があります。
  6. Client ID と OIDC issuer の URL が必要です。OpenID のディスカバリードキュメントは $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 はディスカバリードキュメントを 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 を必須としている場合は、環境変数 environment variables 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 のログイン画面を使ってログインし直します。

Customer Namespace を確認する

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 をサポートしていません。