OpenID Connect (OIDC)
W&B サーバーは、外部アイデンティティプロバイダー (IdP) とのインテグレーションのために、次の OIDC 認証フローをサポートします。- フォームポストを使用したインプリシットフロー
- コードエクスチェンジのための証明キーを使用した認可コードフロー (PKCE)
- Cognito
- Okta
- Entra
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 はデフォルトでimplicit
grant with theform_post
response type を使用します。 また、wandb/local を設定して、PKCE Code Exchange フローを使用するauthorization_code
grant を実行することもできます。 - アプリにトークンを届ける方法を AWS Cognito で設定するために、1 つ以上の OAuth グラントタイプを選択します。
-
W&B は特定の OpenID Connect (OIDC) スコープを要求します。AWS Cognito App から以下を選択してください:
- “openid”
- “profile”
- “email”
設定ページで 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
でそのディスカバリドキュメントを提供します。
W&B サーバーでの SSO 設定
SSO を設定するには、管理者権限と次の情報が必要です:- OIDC クライアント ID
- OIDC 認証方法(
implicit
またはpkce
) - OIDC 発行者 URL
- OIDC クライアントシークレット (オプション; IdP の設定方法に依存します)
IdP が OIDC クライアントシークレットを要求する場合、環境変数
OIDC_CLIENT_SECRET
で指定してください。wandb/local
pod に環境変数 を渡して設定することができます。環境変数が UI よりも優先されます。
SSO を設定した後でインスタンスにログインできない場合、
LOCAL_RESTORE=true
環境変数を設定してインスタンスを再起動できます。これにより、一時的なパスワードがコンテナのログに出力され、SSO が無効になります。SSO の問題を解決したら、環境変数を削除して SSO を再度有効化する必要があります。- System Console
- System settings
System Console は System Settings ページの後継です。これは W&B Kubernetes Operator ベースのデプロイメントで利用可能です。
- Access the W&B Management Console を参照してください。
-
Settings に移動し、次に Authentication を選択します。Type ドロップダウンで OIDC を選択します。
- 値を入力します。
- Save をクリックします。
- ログアウトし、IdP ログイン画面を使用して再度ログインします。
SSO を設定した後でインスタンスにログインできない場合、
LOCAL_RESTORE=true
環境変数を設定してインスタンスを再起動できます。これにより、一時的なパスワードがコンテナのログに出力され、SSO がオフになります。SSO の問題を解決したら、環境変数を削除して SSO を再度有効化する必要があります。