Workload Identity Federation を使用すると、Azure Service Principals、Azure Managed IdP、Google サービス アカウントなどの外部プログラム ID を使用して、アプリケーションが MongoDB Atlas クラスターにアクセスできます。
1 つ以上の組織に対して任意の数のワークロード ID プロバイダーを有効にできます。 Atlas 組織でワークロード ID プロバイダーを有効にすると、データベースアクセスのためにその組織内のすべてのプロジェクトでワークロード ID プロバイダーを使用できます。
Atlas は、MongoDB バージョン7.0.11以上を実行中の専用クラスター(M 10以上)と選択されたドライバーのみで Workload Identity Federation をサポートします。
選択したドライバーを使用して Workload Identity Federation アクセスを実装する方法の詳細については、「 Workload Identity Federation を使用して にアプリケーションを接続する 」を参照してください。MongoDB
仕組み
Workload Identity Federation を使用すると、アプリケーションは OAuth 2.0を使用して MongoDB クラスターにアクセスできます。 アクセス トークン。 アクセス トークンは、Azure Entra ID や Google Cloud Platform などの任意の外部 ID プロバイダーによって発行できます。 Atlas はユーザー識別子と特権を保存しますが、秘密は保存しません。 アプリケーションのこの認証メカニズムは、MongoDB ドライバーによってのみサポートされています。 mongoshや MongoDB Compass などの他の MongoDB ツールは、この認証メカニズムをサポートしていません。
MongoDB ドライバーは、ワークロード Identity Federation の 2 種類の認証フロー(組み込み認証とコールバック認証)をサポートしています。
組み込み認証
サポートされているプリンシパル タイプを使用してサポートされているインフラストラクチャにアプリケーションを配置する場合は、組み込み認証を使用できます。 Atlasアプリケーションは、パスワードを指定したり、クラウドプロバイダーのメタデータJSON web token サービスから を手動でリクエストしたりすることなく、 クラスターにアクセスできます。MongoDB代わりに、選択したJSON web token ドライバーは既存のプリンシパル識別子を使用して、アプリケーションが接続するときに自動的に クラスターに渡される、 アクセスAtlas トークンをリクエストします。
実装の詳細については、選択した ドライバーのドキュメント を参照してください。
組み込み認証をサポートするインフラストラクチャとプリンシパルのタイプ
クラウドプロバイダー | インフラストラクチャ タイプ | プリンシパルタイプ |
|---|---|---|
GCP | コンピュート エンジン | GCP サービス アカウント |
App Engine 標準環境 | ||
App Engine の柔軟な環境 | ||
クラウド関数 | ||
Cloud Run | ||
Google Kubernetes Engine | ||
クラウドビルド | ||
Azure | Azure VM | Azure Managed IdP(ユーザーとシステムが割り当てられている) |
コールバック認証
組み込みの認証方法を使用できない場合は、任意の OAuth 2.0認可サービスでコールバック認証を使用できます。コールバック認証では、 MongoDBドライバーは提供されたコールバックメソッドを呼び出して、データベースアクセス用のJSON web token トークンを取得します。 コールバックメソッド内で、 証明書認証、クライアント認証情報フロー、 SDK など、希望するメカニズムを使用して、認可プロバイダからトークンを取得します。
選択したドライバーが Workload Identity Federation認証をサポートしていることを確認し、追加の実装の詳細を確認するには、 Workload Identity Federation認証をサポートするドライバー バージョンのリスト を参照してください。
次のリストは、クラウドまたはオンプレミスのリソースで実行中アプリケーションのアクセス トークンを取得する方法の例を示しています。
Azureマネージド ID:アプリケーションがマネージド ID をサポートするAzureコンピューティング リソースで実行される場合は、 Microsoft Authenticationライブラリ(MSAL)を使用して、アプリケーションへのアクセスを許可します。
Azureサービス プリンシパル: クライアント認証情報フローまたは証明書認証を使用して、アクセス トークンを取得し、アプリケーションにアクセスを許可します。
外部認証プロバイダー: Github、Okta、ForgeRock、Ping Identity などのプロバイダーのサービス アカウントを使用して、アプリケーションにアクセスを許可します。
Azure Managed IdP によるセキュリティ
Azure Managed Identity を使用した Workload Identity Federation は、 Azureで実行中MongoDB Atlasクラスターを認証する最も安全な方法を提供します。このアプローチには、次のセキュリティ上の利点が得られます。
マネージド ID を活用する: これにより、 Azure VM、AKS、 Azure Functions などのAzureサービスで実行中アプリケーションは、別のMongoDB認証情報を管理する必要なく、割り当てられたAzure Managed IdP を使用してMongoDB Atlasで認証できます。
安全な「パスワードレス」認証: アプリケーションはAzureメタデータサーバーから有効期間の短い OAuth 2.0 アクセス トークンを取得し、 MongoDB Atlas はその認証を検証します。これにより、アプリケーションコードや構成内で機密データベースのユーザー名とパスワードを保存および管理する必要がなくなります。
一元化された ID マネジメント: Azure Entra IDフレームワーク内でAzureワークロードの ID を管理し、ID 管理のための単一のソースを提供します。
監査の強化: Azure はサービス アカウントのアクティビティの監査するログを提供し、トレーサビリティとセキュリティ監視機能を強化します。
MongoDB Atlasクラスターにアクセスするための最高のセキュリティについては、 Workload Identity Federation とAzure Private Link を組み合わせることができます。この設定ではAzureのセキュリティとマネジメントの機能を活用すると同時に、データベースへの のプライベートで安全なネットワーク接続を確保します。
手順
MongoDB の Workload Identity Federation を構成するには次のようにします。
外部 ID プロバイダーを構成します。
Atlas で Workload IdP を構成し、Atlas 組織で有効にします。
外部 ID プロバイダーを準備する
Azure Managed Identity または Azure Service Principals を使用して MongoDB Atlas クラスターにアクセスするには、Azure Entra ID アプリケーションを登録する必要があります。 ワークフォース(人間)アクセス用の既存のアプリケーション登録がある場合は、ワークロード アクセス用に別のアプリケーションを登録することをお勧めします。
アプリケーションを登録します。
App registrationsに移動します。
Azure portal アカウントで、 を検索し、Microsoft Entra ID をクリックします。
左側のナビゲーションの Manage セクションで、App registrations をクリックします。
[New registration] をクリックします。
次の値を適用します。
フィールド値Name
Atlas Database - Workload
Supported Account Types
Accounts in this organizational directory only (single tenant)
Redirect URI
Web
(任意)グループのクレームを追加します。
Atlas でアクセス権を定義する際に、サービス プリンシパル識別子を MongoDB ユーザー識別子として使用することをお勧めします。 この一般的なアプローチを使用する場合は、このステップをスキップしてください。 ただし、代わりに Azure AD セキュリティ グループ識別子などのグループ識別子を使用する場合は、次の手順でアプリケーション登録でグループ クレームを設定できます。
Token Configurationに移動します。
左側のナビゲーションの Manage セクションで、Token Configuration をクリックします。
[Add groups claim] をクリックします。
Edit groups claimモーダルで、 Securityを選択します。
選択するグループは、Azure 環境で構成したグループのタイプによって異なります。 適切なグループ情報を送信するには、別のタイプのグループを選択する必要がある場合があります。
Customize token properties by typeセクションで、 Group IDのみを選択していることを確認します。
Group Idを選択すると、Azure はセキュリティ グループのオブジェクト ID を送信します。
[Add] をクリックします。
グループ クレームを追加する方法の詳細については、Azureドキュメント を参照してください。
マニフェストを更新します。
左側のナビゲーションの Manage セクションで、Manifest をクリックします。
nullから2にrequestedAccessTokenVersionを更新します。数字
2は Microsoft のアクセス トークンのバージョン 2 を表します。 他のアプリケーションは、Active Directory が管理するユーザーの ID の署名された認証局としてこれを使用できます。 バージョン 2 では、トークンはJSON web token MongoDBが理解する であることが保証されます。[Save] をクリックします。
オプションのクレームを追加する方法の詳細については、Azure のドキュメント を参照してください。
メタデータを記憶します。
左側のナビゲーションで [ Overview ] をクリックします。
Application (client) ID値をコピーします。
上部のナビゲーションで、 Endpointsをクリックします。
/.well-known/openid-configuration部分を除いてOpenID Connect metadata document値をコピーします。この値は、 OpenID Connect metadata document URLに従って、
issuerの値をコピーして取得することもできます。
次の表は、これらの Microsoft Entra ID UI の値が Atlas 構成プロパティでどのようにマップされるかを示しています。
Microsoft Entra ID UI | Atlas 構成プロパティ |
|---|---|
OpenID Connect metadata document (without /.well-known/openid-configuration) | Issuer URI. |
Application (client) ID | Client ID. |
Application ID URI (<Application ID>) | Audience |
Google Cloud Platformアカウントの設定を変更する必要はありません。
Workload IdP 認証の構成
注意
前提条件
この手順では、 Organization Ownerアクセス権が必要で、外部IdPがすでに構成されていることを前提としています。 IdP を構成する方法については、「 外部 IdP アプリケーションを構成する 」を参照してください。
Federation Management Consoleから Atlas のデータベース アクセス用に Workload Identity Federation を構成できます。
Atlas で Azure Entra ID を使用して Workload IdP フェデレーション IdP を構成するには、次の手順に従います。
AtlasFederation Management で、組織の コンソールに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
サイドバーで、 Identity & Access見出しの下のFederationをクリックします。
[Open Federation Management App] をクリックします。
フェデレーション ページが表示されます。
次の Workload Identity Federation 設定を入力します。
設定 | 必要性 | 値 |
|---|---|---|
Configuration Name | 必須 | この構成を識別する、人間が判読できるラベルを指定します。 このラベルは、Atlas ユーザーに表示されます。 |
Configuration Description | 任意 | この構成を説明します。 |
Issuer URI | 必須 | Microsoft Entra IDアプリケーション登録によって提供される発行者 URI 値を指定します。 詳しくは、「 外部 ID を準備する 」の表を参照してください。 |
オーディエンス | 必須 | Azure Entra IDアプリケーション登録からアプリケーションID URI 値を指定します。 詳しくは、「 外部 ID を準備する 」の表を参照してください。 |
authorizationType | 必須 | グループ メンバーシップに基づいて認証を付与するには アプリケーション アクセスにはユーザー ID を使用する方が一般的です。 |
Groups Claim | 条件付き | プリンシパルのIdPユーザー グループ メンバーシップ情報を含む要求の識別子を指定します。 認証タイプとして デフォルト: |
User Claim | 必須 | デフォルト値の デフォルト: |
Atlas で Google Cloud Platform を使用して Workload IdP フェデレーション ID プロバイダーを構成する方法
AtlasFederation Management で、組織の コンソールに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
サイドバーで、 Identity & Access見出しの下のFederationをクリックします。
[Open Federation Management App] をクリックします。
フェデレーション ページが表示されます。
次の Workload Identity Federation 設定を入力します。
設定 | 必要性 | 値 |
|---|---|---|
Configuration Name | 必須 | この構成を識別する、人間が判読できるラベルを指定します。 このラベルは、Atlas ユーザーに表示されます。 |
Configuration Description | 任意 | この構成を説明します。 |
Issuer URI | 必須 | URI |
オーディエンス | 必須 | 任意のカスタム値を指定します。 MongoDB ドライバーを呼び出すときに使用されます。 |
authorizationType | 必須 | グループ メンバーシップに基づいて認証を付与するには アプリケーション アクセスにはユーザー ID を使用する方が一般的です。 |
User Claim | 必須 | デフォルト値の デフォルト: |
Workload IdP 認証を使用したデータベースユーザーの追加
前提条件
開始する前に、データベースユーザーを追加するには次のものが必要です。
Project Ownerアクセス権Atlas で構成され、組織に対して有効になっている Workload Identity Federation。
Federated Auth を選択します。
Authentication Methodセクションで、[Federated Auth] を選択します。
注意
組織で Workload IdP を有効にするまで、このボックスを選択することはできません。
Workload Identity Federation を使用したアプリケーションの MongoDB への接続
次のMongoDBドライバーのリストされているバージョン以上を使用して、 ワークロード IdP認証を使用してアプリケーションをMongoDBに接続します。
既存のワークロード IdP 構成を管理する
Revoke JWKS
注意
この手順は、自分の署名キーを管理するユーザーのみ。
署名キーをローテーションするために、この機能を使用しないでください。 Workload Identity Federation の署名キーをローテーションすると、MongoDB は既存のアクセス トークンの有効期限が切れると、JWKS を自動的に取得します。
秘密キーが侵害された場合は、MongoDB ノードにキャッシュされた JWKS(JSON Web Key Sets)をすぐに取り消すことができます。
AtlasFederation Management で、組織の コンソールに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
サイドバーで、 Identity & Access見出しの下のFederationをクリックします。
[Open Federation Management App] をクリックします。
フェデレーション ページが表示されます。
Workload IdP 構成の削除
Workload Identity Federation 構成を削除するには、次の手順に従います。
AtlasFederation Management で、組織の コンソールに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
サイドバーで、 Identity & Access見出しの下のFederationをクリックします。
[Open Federation Management App] をクリックします。
フェデレーション ページが表示されます。
Workload IdP に接続した各組織の接続を切断します。
左側のサイドバーで [ Organizations ] をクリックします。
Workload Identity Federation が有効になっている組織をクリックします。
Workload Identity Federation カードのManageドロップダウンの下にあるDisconnectをクリックします。
Disconnect identity provider?モーダルで、 Disconnectをクリックします。
IdP を切断すると、 IdP を使用して認証するユーザーは、 テーブルにリストされている Atlas プロジェクトの Workload Identity FederationProject にアクセスできなくなります。
左側のナビゲーション バーで [ Identity Providersをクリックします。
Delete Identity Provider?モーダルで、 Deleteをクリックします。