OAuth 2.0で Workload Identity Federation を設定する
項目一覧
Workload Identity Federation を使用すると、 Azure Service Principals、 Azure Managed IdP、Google サービス アカウントなどの外部プログラム ID を使用して、アプリケーションがMongoDB Ops Manager配置にアクセスできます。
仕組み
Workload Identity Federation を使用すると、アプリケーションは OAuth 2.0 アクセス トークンを使用してMongoDB配置にアクセスできます。アクセス トークンは、 Azure Entra IDやGoogle Cloud Platformなどの任意の外部 ID プロバイダーによって発行できます。 MongoDB Ops Manager はユーザー識別子と特権を保存しますが、シークレットは保存しません。 アプリケーションのこの認証メカニズムは、 特定のMongoDBドライバーによってのみサポートされています。
MongoDB ドライバーは、ワークロード Identity Federation の 2 種類の認証フロー(組み込み認証とコールバック認証)をサポートしています。
組み込み認証
サポートされているプリンシパル タイプを使用してサポートされているインフラストラクチャにアプリケーションを配置する場合は、組み込み認証を使用できます。 MongoDB Ops Managerアプリケーションは、パスワードを指定したり、クラウドプロバイダーのメタデータサービスからJSON web token JSONウェブ トークンを手動でリクエストしたりすることなく、 MongoDB Ops Managerの配置にアクセスできます。代わりに、選択したMongoDBドライバーは既存のプリンシパル識別子を使用して、アプリケーションが接続するときに自動的にMongoDBMongoDB OpsJSON web token Manager配置に渡されるJSON web token アクセスMongoDB Ops Manager トークンをリクエストします。
実装の詳細については、選択したドライバーのドキュメントを参照してください。
組み込み認証をサポートするインフラストラクチャとプリンシパルのタイプ
クラウドプロバイダー | インフラストラクチャ タイプ | プリンシパルタイプ |
---|---|---|
GCP | コンピュート エンジン | GCP サービス アカウント |
App Engine 標準環境 | ||
App Engine の柔軟な環境 | ||
クラウド関数 | ||
Cloud Run | ||
Google Kubernetes Engine | ||
クラウドビルド | ||
Azure | Azure VM | Azure Managed IdP(ユーザーとシステムが割り当てられている) |
コールバック認証
OAuth 2.0 アクセス トークンをサポートしている任意のサービスでコールバック認証を使用できます。Workload Identity Federation はコールバックメソッドを呼び出します。このメソッドでは、アプリケーションが Workload Identity Federation を使用してMongoDB Ops Managerに接続するときに渡す必要があるJSONJSON web token web トークンを、認可サーバーまたはクラウドプロバイダーからリクエストできます。MongoDB Ops Manager
その他の実装詳細については、選択したドライバーのドキュメントを確認してください。
必要なアクセス権
Workload Identity Federation を構成するには、 MongoDB Ops Managerへの {3Project Owner
MongoDB Ops Managerアクセス権が必要です。
前提条件
次のものが必要です。
MongoDB 7.0以降。
MongoDB Agent で少なくとも 1 つの他の認証メカニズムが構成されています。
注意
MongoDB Agent は OIDC を介して配置に接続できません。MongoDB Agent に対して追加の認証メカニズムを有効にする必要があります。 MongoDB Ops ManagerMongoDB Ops Managerがモニタリングまたはバックアップを管理しない場合は、 代替の認証メカニズムを使用するようにそれらを手動で構成する必要があります。
手順
Workload Identity Federation を設定するには、次の手順を実行します。
ワークロード IdP を構成する(1 回限りの設定)。
外部 ID プロバイダー アプリケーションを構成する
注意
プロジェクトの認証と TLS 設定をリセットする場合は、まず MongoDB Ops Manager がプロジェクト内で管理する MongoDB 配置の管理を解除します。
Azure Managed Identity またはAzure Service Principals を使用して MongoDB Ops Manager の配置にアクセスするには、 Azure Entra IDアプリケーションを登録する必要があります。 ワークロード(人間ユーザー)アクセス用の既存のアプリケーション登録がある場合は、ワークロード アクセス用に別のアプリケーションを登録することをお勧めします。
アプリケーションを登録します。
App registrationsに移動します。
Azure portal で アカウント、検索、Microsoft Entra ID の順にクリックします。
左側のナビゲーションの Manage セクションで、App registrations をクリックします。
[New registration] をクリックします。
次の値を適用します。
フィールド値Name
Ops Manager Database - Workload
Supported Account Types
Accounts in this organizational directory only (single tenant)
Redirect URI
Web
(任意)グループのクレームを追加します。
MongoDBMongoDB Ops Managerでアクセス権を定義する際に、サービスMongoDB Ops Manager プリンシパル識別子をMongoDBユーザー識別子として使用することをお勧めします。この一般的なアプローチを使用する場合は、このステップをスキップしてください。 ただし、代わりにMicrosoft Entra IDセキュリティ グループ識別子などのグループ識別子を使用する場合は、以下の手順でアプリケーション登録でグループ クレームを設定できます。
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] をクリックします。
アプリケーション ID URI を有効にします。
左側のサイドバーでExpose an APIに移動し、アプリケーション ID URI を有効にします。
アプリケーション ID URI を有効にします。
Azureによって割り当てられたデフォルトのアプリケーションID URI を保持します。このアプリケーション ID URI は
<application_client_id>
です。この値をコピーして保存しますMongoDBMongoDB Ops Manager MongoDBOps ManagerとすべてのMongoDBドライバーは Workload Identity Federation の構成にこの値が必要です。
マニフェストを更新します。
左側のナビゲーションの Manage セクションで、Manifest をクリックします。
null
から2
にaccessTokenAcceptedVersionを更新します。数字
2
は Microsoft のアクセス トークンのバージョン 2 を表します。 他のアプリケーションは、Active Directory が管理するユーザーの ID の署名された認証局としてこれを使用できます。 バージョン 2 では、トークンはJSON web token MongoDBが理解する であることが保証されます。[Save] をクリックします。
オプションのクレームを追加する方法の詳細については、 Azure のドキュメント を参照してください。
メタデータを記憶します。
左側のナビゲーションで [ Overview ] をクリックします。
上部のナビゲーションで、 Endpointsをクリックします。
/.well-known/openid-configuration
部分を除いてOpenID Connect metadata document値をコピーします。この値は、 OpenID Connect metadata document URLをクリックし、
issuer
の値をコピーして取得することもできます。
次の表は、これらのMicrosoftMongoDB Ops Manager MicrosoftEntraID ID UI値がマップするMongoDB Ops Manager構成プロパティ を示しています。
Microsoft Entra ID UI | MongoDB Ops Manager構成プロパティ |
---|---|
OpenID Connect metadata document (without /.well-known/openid-configuration) | Issuer URI. |
Application ID URI (<Application ID>) | Audience |
GCPアカウントの設定変更は必要ありません。
Workload IdP 認証の構成
注意
Workload Identity Federation は認証用にJSON webJSON web token token のみをサポートします。不変のアクセス トークンはサポートされていません。
MongoDBAzure Ops ManagerでAzure Entra IDを使用してワークロード IdP フェデレーションID IdPMongoDB Ops Manager を構成するには、次の手順に従います。
配置用のSecurity Settings ダイアログに移動します。
Organizationsナビゲーション バーの [] メニューから、プロジェクトを含む組織を選択します。
ナビゲーション バーのProjectsメニューからプロジェクトを選択します。
サイドバーの Deployment をクリックします。
[Security] タブをクリックします。
[Settings] タブをクリックします。
次のいずれかのアクションを実行します。
このプロジェクトでTLS 、認証、または認可設定を初めて構成する場合は、 Get Startedをクリックします。
このプロジェクトのTLS認証または認可設定をすでに構成している場合は、[ Editをクリックします。
オプション: TLS 設定を指定します。
フィールド | アクション |
---|---|
MongoDB 配置トランスポート層セキュリティ (TLS) | このスライダーをONに切り替えます。 |
TLS CA ファイルパス | TLS認証局ファイルは、証明機関からのルート証明書チェーンを含む 証明書ファイルの暗号化された秘密キーは、 MongoDB プロセスを実行しているすべてのホスト上のTLS認証局ファイルへのファイル パスを入力します。
これにより、プロジェクト内の MongoDB プロセスの Validateをクリックして、指定したパスで配置内の各ホストにTLS認証局があることをテストします。 |
クラスター TLS CA ファイル パス | 接続を確立するクライアントによって提示された証明書を検証するために使用される証明機関からのルート証明書チェーンを含む
|
クライアント証明書モード | TLS 対応のMongoDB配置に接続するときにクライアントアプリケーションまたはMongoDBエージェントが TLS 証明書を提示する必要がある場合は、 を選択します。MongoDBデプロイでは、接続時にこれらのクライアントホストからの証明書がチェックされます。 クライアントTLS 証明書を要求する場合は、有効であることを確認します。 指定できる値は次のとおりです。 |
次の設定を入力します。
設定 | 必要性 | 値 |
---|---|---|
Configuration Name | 必須 | |
Issuer URI | 必須 | 登録されたIdPアプリケーションによって提供される発行者値。 この URI を使用して、MongoDB は |
Audience | 必須 | 外部IdPがトークンを発行するエンティティ。 外部 IdP に登録したアプリの |
authorizationType | 必須 | IdPユーザー グループ メンバーシップに基づいて認可を付与するには アプリケーションアクセスには |
Customize User Claim | 必須 | ユーザー プリンシパル ID を含む要求の識別子。 IdPが別の要求を使用しない限り、デフォルト値を受け入れます。 デフォルト: |
Customize Group Claim | 必須 | 認可タイプとして デフォルト: |
MongoDB Ops ManagerでGCPを使用して Workload IdP フェデレーション IdP を構成する方法GCPMongoDB Ops Manager
配置用のSecurity Settings ダイアログに移動します。
Organizationsナビゲーション バーの [] メニューから、プロジェクトを含む組織を選択します。
ナビゲーション バーのProjectsメニューからプロジェクトを選択します。
サイドバーの Deployment をクリックします。
[Security] タブをクリックします。
[Settings] タブをクリックします。
次のいずれかのアクションを実行します。
このプロジェクトでTLS 、認証、または認可設定を初めて構成する場合は、 Get Startedをクリックします。
このプロジェクトのTLS認証または認可設定をすでに構成している場合は、[ Editをクリックします。
オプション: TLS 設定を指定します。
フィールド | アクション |
---|---|
MongoDB 配置トランスポート層セキュリティ (TLS) | このスライダーをONに切り替えます。 |
TLS CA ファイルパス | TLS認証局ファイルは、証明機関からのルート証明書チェーンを含む 証明書ファイルの暗号化された秘密キーは、 MongoDB プロセスを実行しているすべてのホスト上のTLS認証局ファイルへのファイル パスを入力します。
これにより、プロジェクト内の MongoDB プロセスの Validateをクリックして、指定したパスで配置内の各ホストにTLS認証局があることをテストします。 |
クラスター TLS CA ファイル パス | 接続を確立するクライアントによって提示された証明書を検証するために使用される証明機関からのルート証明書チェーンを含む
|
クライアント証明書モード | TLS 対応のMongoDB配置に接続するときにクライアントアプリケーションまたはMongoDBエージェントが TLS 証明書を提示する必要がある場合は、 を選択します。MongoDBデプロイでは、接続時にこれらのクライアントホストからの証明書がチェックされます。 クライアントTLS 証明書を要求する場合は、有効であることを確認します。 指定できる値は次のとおりです。 |
次の設定を入力します。
設定 | 必要性 | 値 |
---|---|---|
Configuration Name | 必須 | |
Issuer URI | 必須 | URI |
Audience | 必須 | 任意のカスタム値を指定します。 MongoDB ドライバーを呼び出すときに使用されます。 |
authorizationType | 必須 | IdPユーザー グループ メンバーシップに基づいて認可を付与するには アプリケーションアクセスには |
Customize User Claim | 必須 | デフォルト値の デフォルト: |
OIDC 認証の構成
MongoDBは OIDC のデータベースユーザーを明示的に作成しません。構成に基づいて、OIDC ユーザーをMongoDBロールにマッピングします。
OIDC認証の構成 時に選択した認可タイプに応じてタブを選択します。
User ID
認可タイプを選択した場合は、新しいユーザーを作成して、個々のユーザーに認可を付与します。
OIDC ユーザーを追加します。
ユーザーアカウントのフィールドを入力します。
フィールド説明Identifier
最初のフィールドに
$external
データベースを入力します。2 番目のフィールドに、OIDC IdP 構成名と構成のユーザー プリンシパル クレームをスラッシュで区切って使用してユーザー名を入力します。
/
{configuration_name}/{user_principal_claim}
Roles
使用可能なユーザー定義ロールと組み込みロールをこのボックスに入力します。 コンボボックス内で をクリックすると、既存のロールのリストが表示されます。
Authentication Restrictions
[Add Entry] をクリックします。
ボックスまたは Client SourceServer Addressボックスのいずれかに 1 つ以上のIPアドレスや CIDR ブロックを追加します。複数のアドレスまたはブロックはカンマで区切ります。
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ドライバー を使用して、 ワークロード IdP認証を使用してアプリケーションをMongoDBに接続します。
既存のワークロード IdP 構成を管理する
Workload Identity Federation の構成を管理するには、次のアクションを実行します。
Revoke JWKS
注意
署名キーをローテーションするために、この機能を使用しないでください。 OIDC IdP署名キーをローテーションすると、MongoDB は既存のアクセス トークンの有効期限が切れると、JWKS を自動的に取得します。
秘密キーが侵害された場合は、MongoDB ノードにキャッシュされた JWKS(JSON Web Key Sets)をすぐに取り消すことができます。
設定を編集
Workload Identity Federation の設定を編集するには、次の手順に従います。
構成の削除
Workload Identity Federation 構成を削除するには、次の手順に従います。