SSO を OIDC で設定

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

OpenID Connect (OIDC)

W&B サーバーは、外部アイデンティティプロバイダー (IdP) とのインテグレーションのために、次の OIDC 認証フローをサポートします。

  1. フォームポストを使用したインプリシットフロー
  2. コードエクスチェンジのための証明キーを使用した認可コードフロー (PKCE)

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

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

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

環境変数を使用して、Dedicated cloudIAM オプションを設定するか、Self-managed インスタンスを設定することができます。

Dedicated cloud または Self-managed W&B サーバーインストールのためにアイデンティティ プロバイダーを設定する際は、さまざまな IdP に関するこれらのガイドラインに従ってください。SaaS バージョンの W&B を使用している場合は、組織の Auth0 テナントを設定するための支援を求めるには support@wandb.com に連絡してください。

AWS Cognito を認証に設定する手順は以下の通りです:

  1. 最初に AWS アカウントにサインインし、AWS Cognito アプリに移動します。

    認証に OIDC を使用し認可に使用しない場合、パブリッククライアントはセットアップを簡素化します
  2. IdP にアプリケーションを設定するための許可されたコールバック URL を入力します:

    • http(s)://YOUR-W&B-HOST/oidc/callback をコールバック URL として追加します。 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 はデフォルトで implicit grant with the form_post response type を使用します。

    また、wandb/local を設定して、PKCE Code Exchange フローを使用する authorization_code grant を実行することもできます。

  4. アプリにトークンを届ける方法を AWS Cognito で設定するために、1 つ以上の OAuth グラントタイプを選択します。

  5. W&B は特定の OpenID Connect (OIDC) スコープを要求します。AWS Cognito App から以下を選択してください:

    • “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 で利用可能でなければなりません。

    たとえば、ユーザープール ID を User Pools セクションの App Integration タブから、Cognito IdP URL に追加することで発行者 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) の両方を選択
    • サインイン リダイレクト URI: https://YOUR_W_AND_B_URL/oidc/callback
    • サインアウト リダイレクト URI: https://YOUR_W_AND_B_URL/logout
    • 割り当て: Skip group assignment for now を選択
  6. 作成したばかりの Okta アプリケーションの概要画面で、Client IDClient CredentialsGeneral タブの下に記録します:

  7. Okta OIDC 発行者 URL を特定するには、左側のメニューで Settings そして Account を選択します。 Okta UI は Organization Contact の下に企業名を表示します。

OIDC 発行者 URL は https://COMPANY.okta.com の形式です。該当する値で COMPANY を置き換えて、注意してください。

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

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

  3. 左側のサイドバーで「App registrations」を選択します。

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

    「アプリケーションの登録」画面で次の値を入力します:

    • 名前を指定します。例として「Weights and Biases application」

    • デフォルトでは選択されたアカウントタイプは「この組織ディレクトリ内のアカウントのみ (デフォルトディレクトリのみ - シングルテナント)」です。必要に応じて修正してください。

    • リダイレクト URI を Web タイプで設定し、値は https://YOUR_W_AND_B_URL/oidc/callback

    • 「登録」をクリックします。

    • 「アプリケーション (client) ID」と「ディレクトリ (テナント) ID」をメモしておいてください。

  5. 左側のサイドバーで、Authentication をクリックします。

    • Front-channel logout URL の下に次を指定します: https://YOUR_W_AND_B_URL/logout

    • 「保存」をクリックします。

  6. 左側のサイドバーで「Certificates & secrets」をクリックします。

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

    「クライアントシークレットの追加」画面で次の値を入力します:

    • 説明を入力します。例として「wandb」

    • 「有効期限」はそのままにしておくか、必要に応じて変更します。

    • 「追加」をクリックします。

    • シークレットの「値」をメモしておいてください。「シークレット ID」は不要です。

これで次の 3 つの値をメモしておいてください:

  • OIDC クライアント ID
  • OIDC クライアントシークレット
  • OIDC 発行者 URL に必要なテナント ID

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

W&B サーバーでの SSO 設定

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

  • OIDC クライアント ID
  • OIDC 認証方法(implicit または pkce
  • OIDC 発行者 URL
  • OIDC クライアントシークレット (オプション; IdP の設定方法に依存します)

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

System Console は System Settings ページの後継です。これは W&B Kubernetes Operator ベースのデプロイメントで利用可能です。

  1. Access the W&B Management Console を参照してください。

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

  3. 値を入力します。

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

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

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

  2. W&B アプリに移動します。

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

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

  5. Update settings を選択します。

セキュリティ・アサーション・マークアップ言語 (SAML)

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