OAuth 2.0で Workload Identity Federation を設定する
項目一覧
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をサポートしている任意のサービスでコールバック認証を使用できます。 アクセス トークン。 Workload Identity Federation はコールバックJSON web token Atlasメソッドを呼び出します。このメソッドでは、アプリケーションが Workload Identity Federation を使用して に接続するときに渡す必要がある を、認可サーバーまたはクラウドプロバイダーからリクエストできます。
その他の実装詳細については、選択したドライバーのドキュメントを確認してください。
手順
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] をクリックします。
次の値を適用します。
フィールド値NameAtlas Database - WorkloadSupported Account TypesAccounts in this organizational directory only (single tenant)Redirect URIWeb
(任意)グループのクレームを追加します。
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] をクリックします。
マニフェストを更新します。
左側のナビゲーションの Manage セクションで、Manifest をクリックします。
null
から2
にaccessTokenAcceptedVersionを更新します。数字
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 を構成するには、次の手順に従います。
次の 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 プロバイダーを構成する方法
次の Workload Identity Federation 設定を入力します。
設定 | 必要性 | 値 |
---|---|---|
Configuration Name | 必須 | この構成を識別する、人間が判読できるラベルを指定します。 このラベルは、Atlas ユーザーに表示されます。 |
Configuration Description | 任意 | この構成を説明します。 |
Issuer URI | 必須 | URI https://accounts.google.com を入力します。 |
オーディエンス | 必須 | 任意のカスタム値を指定します。 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)をすぐに取り消すことができます。
Atlas で、Organization Settings ページに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
[Organizations] メニューの横にある [Organization Settings] アイコンをクリックします。
[ Organization Settings ]ページが表示されます。
Workload IdP 構成の削除
Workload Identity Federation 構成を削除するには、次の手順に従います。
Atlas で、Organization Settings ページに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
[Organizations] メニューの横にある [Organization Settings] アイコンをクリックします。
[ Organization Settings ]ページが表示されます。
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をクリックします。