SSO を OIDC で設定
3 minute read
W&B サーバーは、OpenID Connect (OIDC) 互換のアイデンティティ プロバイダーをサポートしており、Okta、Keycloak、Auth0、Google、および Entra などの外部アイデンティティ プロバイダーを通じてユーザー アイデンティティとグループ メンバーシップを管理できます。
OpenID Connect (OIDC)
W&B サーバーは、外部アイデンティティプロバイダー (IdP) とのインテグレーションのために、次の OIDC 認証フローをサポートします。
- フォームポストを使用したインプリシットフロー
- コードエクスチェンジのための証明キーを使用した認可コードフロー (PKCE)
これらのフローはユーザーを認証し、必要なアイデンティティ情報 (ID トークンの形式) を W&B サーバーに提供してアクレス制御を管理します。
ID トークンは、ユーザーの名前、ユーザー名、メール、およびグループメンバーシップなど、ユーザーのアイデンティティ情報を含む JWT です。W&B サーバーはこのトークンを使用してユーザーを認証し、システム内で適切なロールやグループにマッピングします。
W&B サーバーのコンテキストでは、アクセストークンはユーザーを代表して API へのリクエストを認可しますが、W&B サーバーの主な関心はユーザー認証とアイデンティティであるため、ID トークンのみが必要です。
環境変数を使用して、Dedicated cloud の IAM オプションを設定するか、Self-managed インスタンスを設定することができます。
Dedicated cloud または Self-managed W&B サーバーインストールのためにアイデンティティ プロバイダーを設定する際は、さまざまな IdP に関するこれらのガイドラインに従ってください。SaaS バージョンの W&B を使用している場合は、組織の Auth0 テナントを設定するための支援を求めるには support@wandb.com に連絡してください。
AWS Cognito を認証に設定する手順は以下の通りです:
- 
最初に AWS アカウントにサインインし、AWS Cognito アプリに移動します。   
- 
IdP にアプリケーションを設定するための許可されたコールバック URL を入力します: - http(s)://YOUR-W&B-HOST/oidc/callbackをコールバック URL として追加します。- YOUR-W&B-HOSTを W&B ホストパスに置き換えます。
 
- 
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 はデフォルトで implicitgrant with theform_postresponse type を使用します。また、wandb/local を設定して、PKCE Code Exchange フローを使用する authorization_codegrant を実行することもできます。
- 
アプリにトークンを届ける方法を AWS Cognito で設定するために、1 つ以上の OAuth グラントタイプを選択します。 
- 
W&B は特定の OpenID Connect (OIDC) スコープを要求します。AWS Cognito App から以下を選択してください: - “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で利用可能でなければなりません。たとえば、ユーザープール ID を User Pools セクションの App Integration タブから、Cognito IdP URL に追加することで発行者 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) の両方を選択
- サインイン リダイレクト URI: https://YOUR_W_AND_B_URL/oidc/callback
- サインアウト リダイレクト URI: https://YOUR_W_AND_B_URL/logout
- 割り当て: Skip group assignment for now を選択
 
 
- 
作成したばかりの Okta アプリケーションの概要画面で、Client ID を Client Credentials の General タブの下に記録します:  
- 
Okta OIDC 発行者 URL を特定するには、左側のメニューで Settings そして Account を選択します。 Okta UI は Organization Contact の下に企業名を表示します。  
OIDC 発行者 URL は https://COMPANY.okta.com の形式です。該当する値で COMPANY を置き換えて、注意してください。
- 
https://portal.azure.com/ で Azure ポータルにログインします。 
- 
「Microsoft Entra ID」サービスを選択します。  
- 
左側のサイドバーで「App registrations」を選択します。  
- 
上部で「New registration」をクリックします。  「アプリケーションの登録」画面で次の値を入力します:  - 
名前を指定します。例として「Weights and Biases application」 
- 
デフォルトでは選択されたアカウントタイプは「この組織ディレクトリ内のアカウントのみ (デフォルトディレクトリのみ - シングルテナント)」です。必要に応じて修正してください。 
- 
リダイレクト URI を Web タイプで設定し、値は https://YOUR_W_AND_B_URL/oidc/callback
- 
「登録」をクリックします。 
- 
「アプリケーション (client) ID」と「ディレクトリ (テナント) ID」をメモしておいてください。   
 
- 
- 
左側のサイドバーで、Authentication をクリックします。  - 
Front-channel logout URL の下に次を指定します: https://YOUR_W_AND_B_URL/logout
- 
「保存」をクリックします。   
 
- 
- 
左側のサイドバーで「Certificates & secrets」をクリックします。  - 「Client secrets」をクリックし、「New client secret」をクリックします。
 
 「クライアントシークレットの追加」画面で次の値を入力します:  - 
説明を入力します。例として「wandb」 
- 
「有効期限」はそのままにしておくか、必要に応じて変更します。 
- 
「追加」をクリックします。 
- 
シークレットの「値」をメモしておいてください。「シークレット ID」は不要です。  
 
- 「Client secrets」をクリックし、「New client secret」をクリックします。
これで次の 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 の設定方法に依存します)
OIDC_CLIENT_SECRET で指定してください。SSO の設定は、W&B サーバー UI を使用するか、wandb/local pod に環境変数 を渡して設定することができます。環境変数が UI よりも優先されます。
LOCAL_RESTORE=true 環境変数を設定してインスタンスを再起動できます。これにより、一時的なパスワードがコンテナのログに出力され、SSO が無効になります。SSO の問題を解決したら、環境変数を削除して SSO を再度有効化する必要があります。System Console は System Settings ページの後継です。これは W&B Kubernetes Operator ベースのデプロイメントで利用可能です。
- 
Access the W&B Management Console を参照してください。 
- 
Settings に移動し、次に Authentication を選択します。Type ドロップダウンで OIDC を選択します。  
- 
値を入力します。 
- 
Save をクリックします。 
- 
ログアウトし、IdP ログイン画面を使用して再度ログインします。 
- 
Weights&Biases インスタンスにサインインします。 
- 
W&B アプリに移動します。   
- 
ドロップダウンから System Settings を選択します:   
- 
発行者、クライアント ID、および認証方法を入力します。 
- 
Update settings を選択します。 
 
    LOCAL_RESTORE=true 環境変数を設定してインスタンスを再起動できます。これにより、一時的なパスワードがコンテナのログに出力され、SSO がオフになります。SSO の問題を解決したら、環境変数を削除して SSO を再度有効化する必要があります。セキュリティ・アサーション・マークアップ言語 (SAML)
W&B サーバーは SAML をサポートしていません。
フィードバック
このページは役に立ちましたか?
Glad to hear it! If you have more to say, please let us know.
Sorry to hear that. Please tell us how we can improve.