これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.
Authentication
- 1: Configure SSO with LDAP
- 2: Configure SSO with OIDC
- 3: Use federated identities with SDK
- 4: Use service accounts to automate workflows
1 - Configure SSO with LDAP
W&B サーバー LDAP サーバーで認証情報を認証します。次のガイドでは、W&B サーバーの 設定を構成する方法について説明します。必須およびオプションの設定、システム設定 UI から LDAP 接続を構成する手順について説明します。また、アドレス、ベース識別名、属性など、LDAP 設定のさまざまな入力に関する情報も提供します。これらの属性は、W&B App UI または 環境変数を使用して指定できます。匿名バインド、または管理者 DN とパスワードを使用したバインドのいずれかをセットアップできます。
LDAP 接続を構成する
- W&B App に移動します。
- 右上からプロフィール アイコンを選択します。ドロップダウンから、[システム 設定] を選択します。
- [LDAP クライアントを構成] を切り替えます。
- フォームに詳細を追加します。各入力の詳細については、[パラメータの構成] セクションを参照してください。
- [設定の更新] をクリックして、設定をテストします。これにより、W&B サーバーとのテスト クライアント/接続が確立されます。
- 接続が確認されたら、[LDAP 認証を有効にする] を切り替え、[設定の更新] ボタンを選択します。
次の 環境変数を使用して LDAP 接続を設定します。
環境変数 | 必須 | 例 |
---|---|---|
LOCAL_LDAP_ADDRESS |
はい | ldaps://ldap.example.com:636 |
LOCAL_LDAP_BASE_DN |
はい | email=mail,group=gidNumber |
LOCAL_LDAP_BIND_DN |
いいえ | cn=admin , dc=example,dc=org |
LOCAL_LDAP_BIND_PW |
いいえ | |
LOCAL_LDAP_ATTRIBUTES |
はい | email=mail , group=gidNumber |
LOCAL_LDAP_TLS_ENABLE |
いいえ | |
LOCAL_LDAP_GROUP_ALLOW_LIST |
いいえ | |
LOCAL_LDAP_LOGIN |
いいえ |
各 環境変数の定義については、設定 パラメータ セクションを参照してください。わかりやすくするために、環境変数プレフィックス LOCAL_LDAP
が定義名から省略されていることに注意してください。
設定 パラメータ
次の表に、必須およびオプションの LDAP 構成を示し、説明します。
環境変数 | 定義 | 必須 |
---|---|---|
ADDRESS |
これは、W&B サーバーをホストする VPC 内の LDAP サーバーの アドレスです。 | はい |
BASE_DN |
ルート パスは検索の開始元であり、この ディレクトリーにクエリを実行するために必要です。 | はい |
BIND_DN |
LDAP サーバーに登録されている管理 ユーザーのパス。LDAP サーバーが認証されていないバインドをサポートしていない場合に必要です。指定した場合、W&B サーバーはこの ユーザーとして LDAP サーバーに接続します。それ以外の場合、W&B サーバーは匿名バインドを使用して接続します。 | いいえ |
BIND_PW |
管理 ユーザーのパスワード。これはバインドの認証に使用されます。空白のままにすると、W&B サーバーは匿名バインドを使用して接続します。 | いいえ |
ATTRIBUTES |
メールとグループ ID の属性名をコンマ区切りの文字列値として指定します。 | はい |
TLS_ENABLE |
TLS を有効にします。 | いいえ |
GROUP_ALLOW_LIST |
グループ許可リスト。 | いいえ |
LOGIN |
これは、W&B サーバーに LDAP を使用して認証するように指示します。True または False に設定します。オプションで、LDAP 構成をテストするために false に設定します。LDAP 認証を開始するには、これを true に設定します。 |
いいえ |
2 - 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 認証フローをサポートしています。
- フォームポストによる暗黙的フロー
- 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 を設定するには、以下の手順に従ってください。
-
まず、AWS アカウントにサインインし、AWS Cognito アプリケーションに移動します。
-
IdP でアプリケーションを構成するために、許可されたコールバック URL を指定します。
- コールバック URL として
http(s)://YOUR-W&B-HOST/oidc/callback
を追加します。YOUR-W&B-HOST
を W&B ホストパスに置き換えます。
- コールバック URL として
-
IdP がユニバーサルログアウトをサポートしている場合は、ログアウト URL を
http(s)://YOUR-W&B-HOST
に設定します。YOUR-W&B-HOST
を W&B ホストパスに置き換えます。たとえば、アプリケーションが
https://wandb.mycompany.com
で実行されている場合、YOUR-W&B-HOST
をwandb.mycompany.com
に置き換えます。以下の図は、AWS Cognito で許可されたコールバックとサインアウト URL を指定する方法を示しています。
wandb/local は、デフォルトで
form_post
応答タイプによるimplicit
付与 を使用します。PKCE Code Exchange フローを使用する
authorization_code
付与を実行するように wandb/local を構成することもできます。 -
AWS Cognito がトークンをアプリに配信する方法を構成するために、1 つ以上の OAuth 付与タイプを選択します。
-
W&B には特定の OpenID Connect (OIDC) スコープが必要です。AWS Cognito アプリから以下を選択します。
- “openid”
- “profile”
- “email”
たとえば、AWS Cognito アプリの UI は次の図のようになります。
設定ページで Auth Method を選択するか、OIDC_AUTH_METHOD 環境変数を設定して、wandb/local にどの付与を行うかを指示します。
Auth Method を
pkce
に設定する必要があります。 -
クライアント ID と OIDC 発行者の URL が必要です。OpenID ディスカバリドキュメントは
$OIDC_ISSUER/.well-known/openid-configuration
で利用可能である必要があります。たとえば、ユーザープール セクション内の アプリの統合 タブから Cognito IdP URL にユーザープール ID を追加して、発行者 URL を生成できます。
IDP URL に “Cognito ドメイン” を使用しないでください。Cognito は、
https://cognito-idp.$REGION.amazonaws.com/$USER_POOL_ID
でディスカバリドキュメントを提供します。
Okta を認証用に設定するには、以下の手順に従ってください。
-
https://login.okta.com/ で Okta ポータルにログインします。
-
左側で、Applications を選択し、次に Applications をもう一度選択します。
-
「Create App integration」をクリックします。
-
「Create a new app integration」という画面で、OIDC - OpenID Connect と Single-Page Application を選択します。次に、「Next」をクリックします。
-
「New Single-Page App Integration」という画面で、以下の値を入力して Save をクリックします。
- アプリケーション統合名(例: “Weights & Biases”)
- 付与タイプ: Authorization Code と Implicit (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 を選択します
-
作成した Okta アプリケーションの概要画面で、General タブの Client Credentials の下の Client ID をメモします。
-
Okta OIDC Issuer URL を識別するには、左側の Settings を選択し、次に Account を選択します。 Okta UI には、Organization Contact の下に会社名が表示されます。
OIDC 発行者 URL の形式は https://COMPANY.okta.com
です。COMPANY を対応する値に置き換えます。メモしておいてください。
-
Azure ポータル (https://portal.azure.com/) にログインします。
-
「Microsoft Entra ID」サービスを選択します。
-
左側で、「App registrations」を選択します。
-
上部で、「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」をメモします。
-
-
左側で、Authentication をクリックします。
-
Front-channel logout URL の下で、
https://YOUR_W_AND_B_URL/logout
を指定します。 -
「Save」をクリックします。
-
-
左側で、「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 の設定方法によって異なります)
OIDC_CLIENT_SECRET
で指定します。W&B Server UI を使用するか、環境変数 を wandb/local
pod に渡すことによって、SSO を設定できます。環境変数は UI より優先されます。
LOCAL_RESTORE=true
環境変数を設定してインスタンスを再起動できます。これにより、コンテナログに一時パスワードが出力され、SSO が無効になります。SSO の問題を解決したら、その環境変数を削除して SSO を再度有効にする必要があります。システムコンソールは、システム設定ページの後継です。W&B Kubernetes Operator ベースのデプロイで使用できます。
-
W&B 管理コンソールへのアクセス を参照してください。
-
Settings に移動し、次に Authentication に移動します。Type ドロップダウンで OIDC を選択します。
-
値を入力します。
-
Save をクリックします。
-
ログアウトし、再度ログインします。今回は IdP ログイン画面を使用します。
-
Weights&Biases インスタンスにサインインします。
-
W&B アプリケーションに移動します。
-
ドロップダウンから、System Settings を選択します。
-
発行者、クライアント ID、および認証方式を入力します。
-
Update settings を選択します。

LOCAL_RESTORE=true
環境変数を設定してインスタンスを再起動できます。これにより、コンテナログに一時パスワードが出力され、SSO がオフになります。SSO の問題を解決したら、その環境変数を削除して SSO を再度有効にする必要があります。Security Assertion Markup Language (SAML)
W&B Server は SAML をサポートしていません。
3 - Use federated identities with SDK
Identity federation を使用して、W&B SDK 経由で組織の認証情報を使用してサインインします。W&B organization の管理者が organization 向けに SSO を設定している場合、すでに組織の認証情報を使用して W&B アプリの UI にサインインしているはずです。その意味で、identity federation は W&B SDK の SSO のようなものですが、JSON Web Tokens (JWT) を直接使用します。identity federation は、APIキー の代替として使用できます。
RFC 7523 は、SDK との identity federation の基礎を形成します。
Enterprise
プランで Preview
として利用できます。ご不明な点がございましたら、W&B チームにお問い合わせください。identity provider
と JWT issuer
という用語は同じ意味で使用されます。どちらも、この機能のコンテキストでは同じものを指します。JWT issuer の設定
最初の手順として、organization の管理者は、W&B organization と公開されている JWT issuer の間の federation を設定する必要があります。
- organization の ダッシュボード で Settings タブに移動します
- Authentication オプションで、
Set up JWT Issuer
を押します - テキストボックスに JWT issuer の URL を追加し、
Create
を押します
W&B は、${ISSUER_URL}/.well-known/oidc-configuration
のパスで OIDC discovery document を自動的に検索し、discovery document 内の関連する URL で JSON Web Key Set (JWKS) を見つけようとします。JWKS は、JWT が関連する identity provider によって発行されたことを確認するために、JWT のリアルタイム検証に使用されます。
JWT を使用して W&B にアクセスする
JWT issuer が W&B organization 用に設定されると、ユーザーはその identity provider によって発行された JWT を使用して、関連する W&B プロジェクト へのアクセスを開始できます。JWT を使用するメカニズムは次のとおりです。
- organization で利用可能なメカニズムのいずれかを使用して、identity provider にサインインする必要があります。一部のプロバイダーには、API または SDK を使用して自動化された方法でアクセスできますが、関連する UI を使用してのみアクセスできるプロバイダーもあります。詳細については、W&B organization の管理者または JWT issuer の所有者にお問い合わせください。
- identity provider へのサインイン後に JWT を取得したら、安全な場所にファイルに保存し、環境変数
WANDB_IDENTITY_TOKEN_FILE
に絶対ファイルパスを設定します。 - W&B SDK または CLI を使用して W&B project にアクセスします。SDK または CLI は、JWT を自動的に検出し、JWT が正常に検証された後、W&B access token と交換する必要があります。W&B access token は、AI ワークフローを有効にするための関連する API にアクセスするために使用されます。つまり、run、メトリクス、Artifacts などを ログ に記録します。access token は、デフォルトで
~/.config/wandb/credentials.json
のパスに保存されます。環境変数WANDB_CREDENTIALS_FILE
を指定することで、そのパスを変更できます。
JWT は、APIキー、パスワードなどの有効期間の長い認証情報の欠点に対処するための有効期間の短い認証情報です。identity provider で設定された JWT の有効期限に応じて、JWT を継続的に更新し、環境変数 WANDB_IDENTITY_TOKEN_FILE
で参照されるファイルに保存されていることを確認する必要があります。
W&B access token にもデフォルトの有効期限があり、その後、SDK または CLI は JWT を使用して自動的に更新を試みます。その時点でユーザー JWT も期限切れになり、更新されない場合、認証エラーが発生する可能性があります。可能であれば、JWT の取得と有効期限後の更新メカニズムは、W&B SDK または CLI を使用する AI ワークロードの一部として実装する必要があります。
JWT の検証
JWT を W&B access token と交換し、project にアクセスする ワークフロー の一部として、JWT は次の検証を受けます。
- JWT 署名は、W&B organization レベルで JWKS を使用して検証されます。これは最初の防御線であり、これが失敗した場合、JWKS または JWT の署名方法に問題があることを意味します。
- JWT の
iss
クレームは、organization レベルで設定された issuer URL と同じである必要があります。 - JWT の
sub
クレームは、W&B organization で設定されているユーザーのメールアドレスと同じである必要があります。 - JWT の
aud
クレームは、AI ワークフローの一部としてアクセスしている project を収容する W&B organization の名前と同じである必要があります。Dedicated Cloud または Self-managed インスタンスの場合、インスタンスレベルの環境変数SKIP_AUDIENCE_VALIDATION
をtrue
に設定して、オーディエンスクレームの検証をスキップするか、オーディエンスとしてwandb
を使用できます。 - JWT の
exp
クレームは、トークンが有効かどうか、または期限切れで更新が必要かどうかを確認するためにチェックされます。
外部サービスアカウント
W&B は、有効期間の長い APIキー を持つ組み込みのサービスアカウントを長年サポートしてきました。SDK および CLI 向けの identity federation 機能を使用すると、organization レベルで設定されているのと同じ issuer によって発行されている限り、JWT を認証に使用できる外部サービスアカウントも導入できます。team 管理者は、組み込みのサービスアカウントと同様に、team のスコープ内で外部サービスアカウントを設定できます。
外部サービスアカウントを設定するには:
- team の Service Accounts タブに移動します
New service account
を押します- サービスアカウントの名前を入力し、
Authentication Method
としてFederated Identity
を選択し、Subject
を入力して、Create
を押します
外部サービスアカウントの JWT の sub
クレームは、team 管理者が team レベルの Service Accounts タブでサブジェクトとして設定したものと同じである必要があります。そのクレームは、JWT の検証 の一部として検証されます。aud
クレームの要件は、ヒューマンユーザー JWT の要件と同様です。
外部サービスアカウントの JWT を使用して W&B にアクセスする 場合、通常は、初期 JWT を生成し、継続的に更新する ワークフロー を自動化する方が簡単です。外部サービスアカウントを使用して ログ に記録された run をヒューマンユーザーに帰属させたい場合は、組み込みのサービスアカウントの場合と同様に、AI ワークフローの環境変数 WANDB_USERNAME
または WANDB_USER_EMAIL
を設定できます。
4 - Use service accounts to automate workflows
サービスアカウントは、チーム内またはチーム間で、プロジェクトを横断して共通タスクを自動的に実行できる、人間ではないまたは機械の ユーザー を表します。
- 組織の 管理者 は、組織の スコープ で サービスアカウント を作成できます。
- チーム の 管理者 は、その チーム の スコープ で サービスアカウント を作成できます。
サービスアカウント の APIキー を使用すると、呼び出し元は サービスアカウント の スコープ 内の プロジェクト から読み取りまたは書き込みができます。
サービスアカウント を使用すると、複数の ユーザー または チーム による ワークフロー の集中管理、W&B Models の 実験管理 の自動化、または W&B Weave の トレース の ログ記録 が可能になります。 環境変数 WANDB_USERNAME
または WANDB_USER_EMAIL
のいずれかを使用することにより、人間の ユーザー の ID を サービスアカウント によって管理される ワークフロー に関連付けるオプションがあります。
組織スコープ の サービスアカウント
組織に スコープ された サービスアカウント は、 制限付き プロジェクト を除き、 チーム に関係なく、組織内のすべての プロジェクト で読み取りおよび書き込みの権限を持ちます。組織スコープ の サービスアカウント が 制限付き プロジェクト に アクセス するには、その プロジェクト の 管理者 が サービスアカウント を プロジェクト に明示的に追加する必要があります。
組織の 管理者 は、組織またはアカウント ダッシュボード の [ Service Accounts ] タブから、組織スコープ の サービスアカウント の APIキー を取得できます。
新しい組織スコープ の サービスアカウント を作成するには:
- 組織 ダッシュボード の [ Service Accounts ] タブにある [ New service account ] ボタンをクリックします。
- [ Name ] を入力します。
- サービスアカウント のデフォルト チーム を選択します。
- [ Create ] をクリックします。
- 新しく作成された サービスアカウント の横にある [ Copy API key ] をクリックします。
- コピーした APIキー を、シークレットマネージャーまたはその他の安全で アクセス 可能な場所に保存します。
WANDB_ENTITY
変数 が 設定 されていない場合に、 ワークロード が失敗するのを防ぐことができます。別の チーム の プロジェクト で組織スコープ の サービスアカウント を使用するには、WANDB_ENTITY
環境変数 をその チーム に設定する必要があります。チームスコープ の サービスアカウント
チームスコープ の サービスアカウント は、その チーム 内のすべての プロジェクト で読み取りおよび書き込みができます。ただし、その チーム 内の 制限付き プロジェクト は除きます。チームスコープ の サービスアカウント が 制限付き プロジェクト に アクセス するには、その プロジェクト の 管理者 が サービスアカウント を プロジェクト に明示的に追加する必要があります。
チーム の 管理者 として、チームスコープ の サービスアカウント の APIキー を <WANDB_HOST_URL>/<your-team-name>/service-accounts
で取得できます。または、チーム の [ Team settings ] に移動し、[ Service Accounts ] タブを参照することもできます。
チーム の新しい チーム スコープ の サービスアカウント を作成するには:
- チーム の [ Service Accounts ] タブにある [ New service account ] ボタンをクリックします。
- [ Name ] を入力します。
- 認証 方法として [ Generate API key (Built-in) ] を選択します。
- [ Create ] をクリックします。
- 新しく作成された サービスアカウント の横にある [ Copy API key ] をクリックします。
- コピーした APIキー を、シークレットマネージャーまたはその他の安全で アクセス 可能な場所に保存します。
チームスコープ の サービスアカウント を使用する モデルトレーニング または 生成AI アプリ 環境 で チーム を構成しない場合、モデル の run または Weave トレース は、 サービスアカウント の親 チーム 内の名前付き プロジェクト に ログ 記録 されます。このようなシナリオでは、WANDB_USERNAME
または WANDB_USER_EMAIL
変数 を使用した ユーザー 属性は、参照される ユーザー が サービスアカウント の親 チーム の一部である場合を除き、機能しません。
外部 サービスアカウント
Built-in サービスアカウント に加えて、W&B は、JSON Web Tokens (JWT) を発行できる ID プロバイダー (IdP) との Identity federation を使用して、W&B SDK および CLI を使用した チーム スコープ の External service accounts もサポートしています。