Configure SSO with OIDC

W&B Server の OpenID Connect (OIDC) 互換アイデンティティプロバイダーのサポートにより、Okta、Keycloak、Auth0、Google、Entra などの外部アイデンティティプロバイダーを介したユーザーアイデンティティとグループメンバーシップの管理が可能になります。

OpenID Connect (OIDC)

W&B Server は、外部 Identity Provider (IdP) との統合のために、以下の OIDC 認証フローをサポートしています。

  1. フォームポストによる暗黙的フロー
  2. Proof Key for Code Exchange (PKCE) を使用した認証コードフロー

これらのフローはユーザーを認証し、アクセス制御を管理するために必要なアイデンティティ情報 (ID トークンの形式) を W&B Server に提供します。

ID トークンは、ユーザーの名前、ユーザー名、メール、グループメンバーシップなどのユーザーのアイデンティティ情報を含む JWT です。W&B Server はこのトークンを使用してユーザーを認証し、システム内の適切なロールまたはグループにマップします。

W&B Server のコンテキストでは、アクセス トークンはユーザーに代わって API へのリクエストを承認しますが、W&B Server の主な関心事はユーザー認証とアイデンティティであるため、ID トークンのみが必要です。

環境変数を使用して、IAM オプションを設定 して、専用クラウド または Self-managed インスタンスを構成できます。

専用クラウド または Self-managed W&B Server インストール用に Identity Provider を構成するには、次のガイドラインに従って、さまざまな IdP に従ってください。W&B の SaaS バージョンを使用している場合は、support@wandb.com に連絡して、組織の Auth0 テナントの構成を支援してください。

認証に AWS Cognito を設定するには、以下の手順に従ってください。

  1. まず、AWS アカウントにサインインし、AWS Cognito アプリケーションに移動します。

    認証ではなく認証に OIDC を使用する場合、パブリッククライアントはセットアップを簡素化します
  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 を指定する方法を示しています。

    インスタンスが複数のホストからアクセスできる場合は、必ずここにすべて含めてください。

    wandb/local は、デフォルトで form_post 応答タイプによる implicit 付与 を使用します。

    PKCE Code Exchange フローを使用する authorization_code 付与を実行するように wandb/local を構成することもできます。

  4. AWS Cognito がトークンをアプリに配信する方法を構成するために、1 つ以上の OAuth 付与タイプを選択します。

  5. W&B には特定の OpenID Connect (OIDC) スコープが必要です。AWS Cognito アプリから以下を選択します。

    • “openid”
    • “profile”
    • “email”

    たとえば、AWS Cognito アプリの UI は次の図のようになります。

    必須フィールド

    設定ページで Auth Method を選択するか、OIDC_AUTH_METHOD 環境変数を設定して、wandb/local にどの付与を行うかを指示します。

    Auth Method を pkce に設定する必要があります。

  6. クライアント ID と OIDC 発行者の URL が必要です。OpenID ディスカバリドキュメントは $OIDC_ISSUER/.well-known/openid-configuration で利用可能である必要があります。

    たとえば、ユーザープール セクション内の アプリの統合 タブから Cognito IdP URL にユーザープール ID を追加して、発行者 URL を生成できます。

    AWS Cognito の発行者 URL のスクリーンショット

    IDP URL に “Cognito ドメイン” を使用しないでください。Cognito は、https://cognito-idp.$REGION.amazonaws.com/$USER_POOL_ID でディスカバリドキュメントを提供します。

Okta を認証用に設定するには、以下の手順に従ってください。

  1. https://login.okta.com/ で Okta ポータルにログインします。

  2. 左側で、Applications を選択し、次に Applications をもう一度選択します。

  3. 「Create App integration」をクリックします。

  4. 「Create a new app integration」という画面で、OIDC - OpenID ConnectSingle-Page Application を選択します。次に、「Next」をクリックします。

  5. 「New Single-Page App Integration」という画面で、以下の値を入力して Save をクリックします。

    • アプリケーション統合名(例: “Weights & Biases”)
    • 付与タイプ: Authorization CodeImplicit (hybrid) の両方を選択します
    • Sign-in redirect URIs: https://YOUR_W_AND_B_URL/oidc/callback
    • Sign-out redirect URIs: https://YOUR_W_AND_B_URL/logout
    • Assignments: Skip group assignment for now を選択します
  6. 作成した Okta アプリケーションの概要画面で、General タブの Client Credentials の下の Client ID をメモします。

  7. Okta OIDC Issuer URL を識別するには、左側の Settings を選択し、次に Account を選択します。 Okta UI には、Organization Contact の下に会社名が表示されます。

OIDC 発行者 URL の形式は https://COMPANY.okta.com です。COMPANY を対応する値に置き換えます。メモしておいてください。

  1. Azure ポータル (https://portal.azure.com/) にログインします。

  2. 「Microsoft Entra ID」サービスを選択します。

  3. 左側で、「App registrations」を選択します。

  4. 上部で、「New registration」をクリックします。

    「Register an application」という画面で、以下の値を入力します。

    • 名前を指定します(例: “Weights and Biases application”)

    • デフォルトでは、選択されているアカウントの種類は「Accounts in this organizational directory only (Default Directory only - Single tenant)」です。必要に応じて変更します。

    • リダイレクト URI をタイプ Web で値 https://YOUR_W_AND_B_URL/oidc/callback で構成します

    • 「Register」をクリックします。

    • 「Application (client) ID」と「Directory (tenant) ID」をメモします。

  5. 左側で、Authentication をクリックします。

    • Front-channel logout URL の下で、https://YOUR_W_AND_B_URL/logout を指定します。

    • 「Save」をクリックします。

  6. 左側で、「Certificates & secrets」をクリックします。

    • 「Client secrets」をクリックし、次に「New client secret」をクリックします。

      「Add a client secret」という画面で、以下の値を入力します。

      • 説明を入力します(例: “wandb”)
      • 「Expires」はそのままにするか、必要に応じて変更します。
      • 「Add」をクリックします。
    • シークレットの「Value」をメモします。「Secret ID」は必要ありません。

これで、次の 3 つの値をメモしておく必要があります。

  • OIDC クライアント ID
  • OIDC クライアントシークレット
  • テナント ID は OIDC Issuer URL に必要です

OIDC 発行者 URL の形式は https://login.microsoftonline.com/${TenantID}/v2.0 です

W&B Server で SSO をセットアップする

SSO を設定するには、管理者権限と以下の情報が必要です。

  • OIDC クライアント ID
  • OIDC 認証方式 (implicit または pkce)
  • OIDC Issuer URL
  • OIDC クライアントシークレット (オプション、IdP の設定方法によって異なります)

W&B Server UI を使用するか、環境変数wandb/local pod に渡すことによって、SSO を設定できます。環境変数は UI より優先されます。

システムコンソールは、システム設定ページの後継です。W&B Kubernetes Operator ベースのデプロイで使用できます。

  1. W&B 管理コンソールへのアクセス を参照してください。

  2. Settings に移動し、次に Authentication に移動します。Type ドロップダウンで OIDC を選択します。

  3. 値を入力します。

  4. Save をクリックします。

  5. ログアウトし、再度ログインします。今回は IdP ログイン画面を使用します。

  1. Weights&Biases インスタンスにサインインします。

  2. W&B アプリケーションに移動します。

  3. ドロップダウンから、System Settings を選択します。

  4. 発行者、クライアント ID、および認証方式を入力します。

  5. Update settings を選択します。

Security Assertion Markup Language (SAML)

W&B Server は SAML をサポートしていません。