Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

OAuth 2.0で Workload Identity Federation を設定する

項目一覧

  • 仕組み
  • 組み込み認証
  • コールバック認証
  • 手順
  • 外部 ID プロバイダーを準備する
  • Workload IdP 認証の構成
  • Workload IdP 認証を使用したデータベースユーザーの追加
  • Workload Identity Federation を使用したアプリケーションの MongoDB への接続
  • 既存のワークロード IdP 構成を管理する
  • Revoke JWKS
  • Workload IdP 構成の削除

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 を構成するには次のようにします。

  1. Workload IdP を構成する(1 回限りの設定)。

    1. 外部 ID プロバイダーを構成します。

    2. Atlas で Workload IdP を構成し、Atlas 組織で有効にします。

  2. 外部 ID(サービス プリンシパル)またはグループに MongoDB クラスターへのアクセス権を付与します。

  3. MongoDB ドライバー を使用してアプリケーションを Atlas に接続します。

Azure Managed Identity または Azure Service Principals を使用して MongoDB Atlas クラスターにアクセスするには、Azure Entra ID アプリケーションを登録する必要があります。 ワークフォース(人間のユーザー)アクセス用の既存のアプリケーション登録がある場合は、ワークロード アクセス用に別のアプリケーションを登録することをお勧めします。

1
  1. App registrationsに移動します。

    1. Azure portal で アカウント、検索、Microsoft Entra ID の順にクリックします。

    2. 左側のナビゲーションの Manage セクションで、App registrations をクリックします。

  2. [New registration] をクリックします。

  3. 次の値を適用します。

    フィールド
    Name
    Atlas Database - Workload
    Supported Account Types
    Accounts in this organizational directory only (single tenant)
    Redirect URI
    Web
2

Atlas でアクセス権を定義する際に、サービス プリンシパル識別子を MongoDB ユーザー識別子として使用することをお勧めします。 この一般的なアプローチを使用する場合は、このステップをスキップしてください。 ただし、代わりに Azure AD セキュリティ グループ識別子などのグループ識別子を使用する場合は、次の手順でアプリケーション登録でグループ クレームを設定できます。

  1. Token Configurationに移動します。

    左側のナビゲーションの Manage セクションで、Token Configuration をクリックします。

  2. [Add groups claim] をクリックします。

  3. Edit groups claimモーダルで、 Securityを選択します。

    選択するグループは、Azure 環境で構成したグループのタイプによって異なります。 適切なグループ情報を送信するには、別のタイプのグループを選択する必要がある場合があります。

  4. Customize token properties by typeセクションで、 Group IDのみを選択していることを確認します。

    Group Idを選択すると、Azure はセキュリティ グループのオブジェクト ID を送信します。

  5. [Add] をクリックします。

    グループ クレームを追加する方法の詳細については、 Azure ドキュメント を参照してください。

3
  1. 左側のサイドバーでExpose an APIに移動し、アプリケーション ID URI を有効にします。

  2. アプリケーション ID URI を有効にします。

    1. Azure によって割り当てられたデフォルトのアプリケーション ID URI( <application_client_id> )を保持します。 この値をコピーして保存します。MongoDB Atlas とすべての MongoDB ドライバーは Workload Identity Federation の構成にこの値が必要です。

4
  1. 左側のナビゲーションの Manage セクションで、Manifest をクリックします。

  2. nullから2accessTokenAcceptedVersionを更新します。

    数字2は Microsoft のアクセス トークンのバージョン 2 を表します。 他のアプリケーションは、Active Directory が管理するユーザーの ID の署名された認証局としてこれを使用できます。 バージョン 2 では、トークンはJSON web token MongoDBが理解する であることが保証されます。

  3. [Save] をクリックします。

オプションのクレームを追加する方法の詳細については、 Azure のドキュメント を参照してください。

5
  1. 左側のナビゲーションで [ Overview ] をクリックします。

    Application (client) ID値をコピーします。

  2. 上部のナビゲーションで、 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アカウントの設定を変更する必要はありません。

注意

前提条件

この手順では、 Organization Ownerアクセス権が必要で、外部IdPがすでに構成されていることを前提としています。 IdP を構成する方法については、「 外部 IdP アプリケーションを構成する 」を参照してください。

Federation Management Consoleから Atlas のデータベース アクセス用に Workload Identity Federation を構成できます。

Atlas で Azure Entra ID を使用して Workload IdP フェデレーション IdP を構成するには、次の手順に従います。

1
  1. [] をクリックしOpen Federation Management App

2
  1. Set Up Identity ProviderまたはConfigure Identity Providerをクリックします

  2. [Workload Identity Provider ] を選択し、[Continue] をクリックします。

3
設定
必要性
Configuration Name
必須
この構成を識別する、人間が判読できるラベルを指定します。 このラベルは、Atlas ユーザーに表示されます。
Configuration Description
任意
この構成を説明します。
Issuer URI
必須
Microsoft Entra ID アプリケーション登録によって提供される発行者 URI 値を指定します。 詳しくは、 「 外部 ID を準備する 」の表を参照してください。
オーディエンス
必須
Azure Entra ID アプリケーション登録からアプリケーション ID URI 値を指定します。 詳しくは、 「 外部 ID を準備する 」の表を参照してください。
authorizationType
必須

グループ メンバーシップに基づいて認証を付与するにはGroup Membershipを選択し、個々のユーザーを認証するにはUser IDを選択します。

アプリケーション アクセスにはユーザー ID を使用する方が一般的です。

Groups Claim
条件付き

プリンシパルのIdPユーザー グループ メンバーシップ情報を含む要求の識別子を指定します。 認証タイプとしてGroups Membershipを選択した場合は、このフィールドを指定する必要があります。 値はデフォルトのgroupsに設定したままにします。

デフォルト: groups

User Claim
必須

デフォルト値のsubは変更しないでください。

デフォルト: sub

4
5
  1. [Connect Organizations] をクリックします。

  2. Workload Identity Federation に接続する組織の場合は、[ Configure Access ] をクリックします。

  3. [Connect Identity Provider] をクリックします。

    注意

    すでに別のIdPを構成している場合、Atlas は代わりにConnect Identity Provider(s)ボタンを表示します。

6

Connect Identity Provider(s)モーダルで、 PurposeWorkload Identity Federationである Workload IdP を選択します。

7

Workload IdP を組織に接続すると、Atlas はその組織内のすべてのプロジェクトに対して Workload IdP フェデレーションを有効にします。

Atlas で Google Cloud Platform を使用して Workload IdP フェデレーション ID プロバイダーを構成する方法

1
  1. [] をクリックしOpen Federation Management App

2
  1. Set Up Identity ProviderまたはConfigure Identity Providerをクリックします

  2. [Workload Identity Provider ] を選択し、[Continue] をクリックします。

3
設定
必要性
Configuration Name
必須
この構成を識別する、人間が判読できるラベルを指定します。 このラベルは、Atlas ユーザーに表示されます。
Configuration Description
任意
この構成を説明します。
Issuer URI
必須
URI https://accounts.google.comを入力します。
オーディエンス
必須
任意のカスタム値を指定します。 MongoDB ドライバーを呼び出すときに使用されます。
authorizationType
必須

グループ メンバーシップに基づいて認証を付与するにはGroup Membershipを選択し、個々のユーザーを認証するにはUser IDを選択します。

アプリケーション アクセスにはユーザー ID を使用する方が一般的です。

User Claim
必須

デフォルト値のsubは変更しないでください。

デフォルト: sub

4
5
  1. [Connect Organizations] をクリックします。

  2. Workload Identity Federation に接続する組織については、 [ Configure Access ] をクリックします。

  3. [Connect Identity Provider] をクリックします。

    注意

    すでに別のIdPを構成している場合、Atlas は代わりにConnect Identity Provider(s)ボタンを表示します。

6

Connect Identity Provider(s)モーダルで、 PurposeWorkload Identity Federationである Workload IdP を選択します。

7

Workload IdP を組織に接続すると、Atlas はその組織内のすべてのプロジェクトに対して Workload IdP フェデレーションを有効にします。

開始する前に、データベースユーザーを追加するには次のものが必要です。

  • Project Owner アクセス権

  • Atlas で構成され、組織に対して有効になっている Workload Identity Federation。

1
2

Authentication Methodセクションで、[Federated Auth] を選択します。

注意

組織で Workload IdP を有効にするまで、このボックスを選択することはできません。

3
  1. Select Identity Providerセクションで、構成された Workload IdP を選択します。

  2. 設定したWorkload IdP に関連付けられているユーザー識別子またはグループ識別子のいずれかを指定します。

注意

  • Azure Entra ID ユーザーの場合、この値はユーザー グループ名ではなく、Azure ユーザー グループの Object Id にマップされます。

  • GCP ユーザーの場合、この値は GCP サービス アカウントの一意の ID にマップされます。

4
5
  • ユーザーを追加した場合は、[ Add User ] ボタンをクリックします。

  • グループを追加した場合は、 Add Group ] ボタンをクリックします。

次のMongoDBドライバーのリストされているバージョン以上を使用して、 ワークロード IdP認証を使用してアプリケーションをMongoDBに接続します。

注意

この手順は、自分の署名キーを管理するユーザーのみ。

署名キーをローテーションするために、この機能を使用しないでください。 Workload Identity Federation の署名キーをローテーションすると、MongoDB は既存のアクセス トークンの有効期限が切れると、JWKS を自動的に取得します。

秘密キーが侵害された場合は、MongoDB ノードにキャッシュされた JWKS(JSON Web Key Sets)をすぐに取り消すことができます。

1
2
  1. まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. [Organizations] メニューの横にある [Organization Settings] アイコンをクリックします。

    [ Organization Settings ]ページが表示されます。

3

Setup Federated Login または Manage Federation Settings セクションで、Visit Federation Management App をクリックします。

4
5
6

Revokeをクリックすると、MongoDB は JWKS エンドポイントを介して新しいキーを取得します。 JWKS を取り消してからクライアント( mongoshCompassなど)を再起動する必要があります。

Workload Identity Federation 構成を削除するには、次の手順に従います。

1
  1. まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. [Organizations] メニューの横にある [Organization Settings] アイコンをクリックします。

    [ Organization Settings ]ページが表示されます。

2

Setup Federated Login または Manage Federation Settings セクションで、Visit Federation Management App をクリックします。

3
  1. 左側のサイドバーで [ Organizations ] をクリックします。

  2. Workload Identity Federation が有効になっている組織をクリックします。

  3. Workload Identity Federation カードのManageドロップダウンの下にあるDisconnectをクリックします。

  4. Disconnect identity provider?モーダルで、 Disconnectをクリックします。

    IdP を切断すると、 IdP を使用して認証するユーザーは、 テーブルにリストされている Atlas プロジェクトの Workload Identity FederationProject にアクセスできなくなります。

4

左側のナビゲーション バーで [ Identity Providersをクリックします。

5
6

Delete Identity Provider?モーダルで、 Deleteをクリックします。

戻る

従業員(人間)