Workload Identity Federation を使用すると、アプリケーションはAzure Service Principals、 Azure Managed IdP、Google サービスアカウントなどの外部プログラム ID を使用してMongoDB Cloud Manager の配置にアクセスできます。
仕組み
Workload Identity Federation2.0 を使用すると、アプリケーションは OAuth アクセス トークンを使用してMongoDB配置にアクセスできます。アクセス トークンは、 Azure Entra IDやGoogle Cloud Platform (GCP)などの任意の外部 ID プロバイダーによって発行できます。 Cloud Manager はユーザー識別子と特権を保存しますが、シークレットは保存しません。 MongoDBドライバーの限られたセットでは、アプリケーションに対してこの認証メカニズムを提供します。
MongoDB ドライバーは、ワークロード Identity Federation の 2 種類の認証フロー(組み込み認証とコールバック認証)をサポートしています。
組み込み認証
互換性のあるプリンシパル タイプを持つ互換性のあるインフラストラクチャにアプリを配置する場合は、組み込み認証を使用できます。アプリは、パスワードを指定したり、クラウドプロバイダーのメタデータサービスから JWT を手動でリクエストしたりせずに、Cloud Manager の配置にアクセスできます。代わりに、ドライバーは既存のプリンシパル識別子を使用してJSON Web Token(JWT)アクセストークンをリクエスト。アプリが接続すると、ドライバーはCloud Manager配置にトークンを渡します。
組み込み認証をサポートするインフラストラクチャとプリンシパルのタイプ
クラウドプロバイダー | インフラストラクチャ タイプ | プリンシパルタイプ |
|---|---|---|
GCP | コンピュート エンジン | GCP サービス アカウント |
App Engine 標準環境 | ||
App Engine の柔軟な環境 | ||
クラウド関数 | ||
Cloud Run | ||
Google Kubernetes Engine | ||
クラウドビルド | ||
Azure | Azure VM | Azure Managed IdP(ユーザーとシステムが割り当てられている) |
コールバック認証
OAuth アクセス2.0 トークンをサポートしている任意のサービスでコールバック認証を使用できます。 Workload Identity Federation は、認可サーバーまたはクラウドプロバイダーから必要な JWT をリクエストコールバックメソッドを呼び出します。その後、アプリが接続するときに、ワークロード Identity Federation を使用してCloud Managerにトークンを渡します。
より詳細な実装については、 ドライバー のドキュメントを確認してください。
必要なアクセス権
Workload Identity Federation を設定するには、 Cloud ManagerへのProject Owner アクセス権が必要です。
前提条件
これらの前提条件を満たす必要があります。
MongoDB 7.0以降。
MongoDB Agent で少なくとも 1 つの他の認証メカニズムが構成されています。
注意
MongoDB Agent は OIDC を介してデプロイメントに接続できません。 MongoDB Agent に対して別の認証メカニズムを有効にする必要があります。 Cloud Manager がモニタリングまたはバックアップを管理しない場合は、 代替の認証メカニズム を使用するようにそれらを手動で構成する必要があります。
手順
Workload Identity Federation を設定するには、次の手順に従います。
ワークロード IdP を構成する(1 回限りの設定)。
外部 ID プロバイダー アプリケーションを構成する
注意
プロジェクトの認証と TLS 設定をリセットするには、まずプロジェクト内でCloud Manager が管理するMongoDB配置の管理を解除します。
Workload IdP 認証の構成
注意
Workload Identity Federation は認証用にJSON webJSON web token token のみをサポートします。不変のアクセス トークンはサポートされていません。
OIDC 認証の構成
MongoDB はOIDC のデータベースユーザーを明示的に作成しません。構成に基づいて、OIDC ユーザーをMongoDBロールにマッピングします。
OIDC認証の構成 時に選択した認可タイプの手順を完了します。
ユーザー ID
User ID認可タイプを選択した場合は、新しいユーザーを作成して、個々のユーザーに認可を付与します。
OIDC ユーザーを追加します。
ユーザーアカウントのフィールドを入力します。
フィールド説明Identifier
最初のフィールドに
$externalデータベースを入力します。2 番目のフィールドに、OIDC IdP 構成名と構成のユーザー プリンシパル クレームをスラッシュ(
/)で区切って使用してユーザー名を入力します。{configuration_name}/{user_principal_claim}
Roles
Authentication Restrictions
[Add Entry] をクリックします。
ボックスまたは ボックスのいずれかに 1 つ以上のIPアドレスや CIDRClient Source Server Addressブロックを追加します。複数のアドレスまたはブロックはカンマで区切ります。
Client Source は、このユーザーが認証を行い、指定されたロールを使用できるアドレスを制限します。
Server Address は、このユーザーが認証できるアドレスを制限し、指定されたロールを持つ必要があります。
[Save] をクリックします。
別のエントリを追加するには、[ Add Entry ] をクリックします。
[Add User] をクリックします。
グループ メンバーシップ
Group Membership認可タイプを選択した場合は、次の手順を実行して、 IdP ユーザー グループ メンバーシップに基づいて認可を付与するカスタムロールを作成します。
OIDC ロールを作成します。
次のフィールドを入力します。
フィールド必要性説明Identifier
必須
Databaseボックスに
adminと入力します。Nameボックスに、OIDC IdP 構成名と外部IdPのグループ名をスラッシュ(
/)で区切って入力します。{configuration_name}/{group_name}Inherits From
任意
ロール名とデータベースのペアのリスト。 これらのペアの形式は
roleName@dbNameです。Authentication Restrictions
任意
IdPから制限する IP アドレスまたは CIDR 表記のリスト。
Privilege Actions by Resource
任意
リソースに対して許可されるアクション。
詳しくは、「 特権アクション 」を参照してください。
[Add Role] をクリックします。
Workload Identity Federation を使用したMongoDBへのアプリの接続
次のMongoDBドライバーを使用して、 ワークロード Identity Federation認証を使用してMongoDBにアプリを接続します。
既存のワークロード IdP 構成を管理する
Workload Identity Federation 構成を管理するには、次のアクションを実行します。
Revoke JSON Web Key Sets (JWKS)
注意
署名キーをローテーションするために、この機能を使用しないでください。 OIDC IdP 署名キーをローテーションすると、 MongoDB は既存のアクセス トークンの有効期限が切れると、JWKS を自動的に取得します。
秘密キーが侵害された場合は、 MongoDBノードにキャッシュされたJSON Web キーセットをすぐに取り消すことができます。
MongoDB Cloud ManagerGoSecurityMongoDB Cloud Managerで、プロジェクトの ページにGoします。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 Database見出しの下のSecurityをクリックします。
[セキュリティ ]ページが表示されます。
設定を編集
Workload Identity Federation の設定を編集するには、次の手順に従います。
MongoDB Cloud ManagerGoSecurityMongoDB Cloud Managerで、プロジェクトの ページにGoします。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 Database見出しの下のSecurityをクリックします。
[セキュリティ ]ページが表示されます。
構成の削除
Workload Identity Federation 構成を削除するには、次の手順に従います。
MongoDB Cloud ManagerGoSecurityMongoDB Cloud Managerで、プロジェクトの ページにGoします。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 Database見出しの下のSecurityをクリックします。
[セキュリティ ]ページが表示されます。