MongoDB 7.0 以降では、会社の IdP などの外部 IdP (アイデンティティ プロバイダー) との Workforce Identity Federation を使用できます。Workforce Identity Federation は、従業員、提携する、コンストラクターなどのあなたのワークフォースを認証および認可します。
Workforce IdP を使用すると、次のことが可能になります。
既存のIdPを介して、MongoDB 配置へのワークフォース アクセスを管理します。
パスワードの複雑さ、認証情報のローテーション、多要素認証などのセキュリティ ポリシーを IdP 内で強制します。
プロジェクトごとに作成できるワークフォース IdP は 1 つだけですが、構成をいつでも編集または再作成できます。
必要なアクセス権
Workforce IdP を設定するには、 MongoDB Ops ManagerへのProject Owner MongoDB Ops Managerアクセス権が必要です。
前提条件
以下の前提条件を満たす必要があります:
mongosh1.9.1 以降。MongoDB 7.0以降。
MongoDB Agent で少なくとも 1 つの他の認証メカニズムが構成されています。
注意
MongoDB Agent は、OIDC を介してお客様の配置に接続できません。MongoDB Agent に対しては、別の認証メカニズムを有効にする必要があります。MongoDB Ops Manager がモニタリングまたはバックアップを管理しない場合は、代替の認証メカニズムを使用するようにそれらを手動で構成する必要があります。
手順
MongoDB Ops Manager 配置に、ワークフォース アイデンティティ フェデレーションを使用してアクセスするには、次の手順に従ってください。
ワークフォース IdP(1 回限りの設定)を構成します。
外部 IdP アプリを構成する
重要: プロジェクトの 認証と TLS 設定をリセットするには、まず、MongoDB Ops Manager がプロジェクト内でマネージドしている MongoDB 配置をマネージャーから解除します。
OIDC を使用して Workforce IdP を構成するには、 OIDC 標準をサポートする IdP に OIDC アプリを登録します。例としては、Microsoft Entra ID、Okta、Ping Identity などがあります。
OIDCアプリは、これらの付与タイプで構成できます。
PKCEを使用した認証コードフロー
デバイス認証フロー
MongoDB では、セキュリティを強化するために、Authorization Code Flow とPKCEを使用することを推奨しています。 ユーザーがブラウザを使用せずにマシンからデータベースにアクセスする必要がある場合にのみ、Device Authorization Flow を使用します。
OIDC アプリの登録手順は、IdP によって異なります。アプリの登録時に、これらの項目を設定します。
OIDC アプリの一般的な登録手順は以下のとおりです。
(任意)MongoDB クライアントでトークンを更新してユーザー エクスペリエンスを向上させる場合は、更新トークンを許可します。
(任意)アクセス トークンの有効期間( expクレーム)をデータベース接続セッション時間と一致するように設定します。
アプリケーションを登録 したら、構成の次の段階で使用する issuer 、 clientId 、 audience の値を保存します。
OIDC アプリを Microsoft Entra ID に登録するには、次の手順に従ってください。
アプリケーションを登録します。
App registrationsに移動します。
Azure portal アカウントで、 を検索し、Microsoft Entra ID をクリックします。
左側のナビゲーションの Manage セクションで、App registrations をクリックします。
[New registration] をクリックします。
次の値を適用します。
フィールド値Name
Ops Manager Database - Workforce
Supported Account Types
Accounts in this organizational directory only (single tenant)
Redirect URI
- Public client/native (mobile & desktop)
-http://localhost:27097/redirect[Register] をクリックします。
アプリケーションの登録 の詳細については、Azure のドキュメントを参照してください。
グループ クレームを追加します。
Token Configurationに移動します。
左側のナビゲーションの Manage セクションで、Token Configuration をクリックします。
[Add groups claim] をクリックします。
Edit groups claimモーダルで、 Securityを選択します。
選択するグループは、Azure 環境で構成したグループのタイプによって異なります。 適切なグループ情報を送信するには、別のタイプのグループを選択する必要がある場合があります。
Customize token properties by typeセクションで、 Group IDのみを選択します。
[Add] をクリックします。
グループ クレームを追加する方法の詳細については、Azureドキュメント を参照してください。
アクセス トークンにユーザー識別子クレームを追加します。
[Add optional claim] をクリックします。
Add optional claimモーダルで、 Accessを選択します。
メールなど、MongoDB アクセス ログで参照できるユーザー識別子を含むクレームを選択します。
UPNクレームを使用して、メール アドレスを持つユーザーを識別できます。
[Add] をクリックします。
Microsoft Graph Permissionsノートで、[] ボックスをオンにし、[ Addをクリックします。
詳しくは、Azure のドキュメント を参照してください。
マニフェストを更新します。
左側のナビゲーションの 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の値がMongoDB Atlas構成プロパティでどのようにマップされているかを示しています。
Microsoft Entra ID UI | MongoDB Atlas構成プロパティ |
|---|---|
Application (client) ID | Client ID |
OpenID Connect metadata document (without /.well-known/openid-configuration) | Issuer URI. |
Workforce IdP 認証の構成
OIDC を使用して Workforce IdP を構成するには、次の手順を実行します。
注意
Workforce Identity Federation では JSON web token (JWT) 認証のみがサポートされています。不透明なアクセス トークンをサポートしていません。
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 は OpenID プロバイダー構成ドキュメントを検出します。これは |
Client ID | 必須 | 登録されたアプリケーションの一意の識別子です。 外部 IdP に登録したアプリの |
Audience | 必須 | 外部 ID プロバイダーがトークンを発行するエンティティ。 外部 IdP に登録したアプリの |
Requested Scopes | 任意 | 承認エンドポイントからデータをリクエストする権限をユーザーに付与するトークン。 追加する追加のスコープごとに、[ Add more scopes ] をクリックします。 |
authorizationType | 必須 | IdP ユーザー グループのメンバーシップに基づいて承認を付与するには、 |
Customize User Claim | 必須 | ユーザー プリンシパル ID を含む要求の識別子。 IdPが別の要求を使用しない限り、デフォルト値を受け入れます。 デフォルト: |
Customize Group Claim | 必須 | 認可タイプとして デフォルト: |
OIDC 認証の構成
MongoDB は OIDC 用のデータベースユーザーを明示的に作成しません。構成に基づいて、OIDC ユーザーをMongoDBロールにマッピングします。
OIDC認証の構成時に選択した承認タイプに対する手順に従ってください:
グループ メンバーシップ
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] をクリックします。
ユーザー ID
User ID認可タイプを選択した場合は、新しいユーザーを作成して、個々のユーザーに認可を付与します。
OIDC ユーザーを追加します。
ユーザーアカウントのフィールドを入力します。
フィールド説明Identifier
最初のフィールドに
$externalデータベースを入力します。2 番目のフィールドに、ユーザー名として、OIDC IdP 構成名と構成のユーザー プリンシパル クレームをスラッシュ (
/) で区切ったものを入力します。例:{configuration_name}/{user_principal_claim}
Roles
使用可能なユーザー定義ロールと組み込みロールをこのボックスに入力します。 コンボボックス内で をクリックすると、既存のロールのリストが表示されます。
Authentication Restrictions
[Add Entry] をクリックします。
1 つ以上の IP アドレスおよび/または CIDR ブロックを Client Source または Server Address ボックスのいずれかに追加します。複数のアドレスまたはブロックをカンマで区切ります。
Client Source は、このユーザーが認証を行い、指定されたロールを使用できるアドレスを制限します。
Server Address は、このユーザーが認証できるアドレスを制限し、指定されたロールを持つ必要があります。
[Save] をクリックします。
別のエントリを追加するには、[ Add Entry ] をクリックします。
[Add User] をクリックします。
Workforce IdP を使用したMongoDBへの接続
Workforce Identity Federation 認証を使用してアプリをMongoDBに接続するには、mongosh または Compass を使用します。
既存のワークフォース IdP 構成を管理する
Workforce Identity Federation の設定を管理するには、これらのアクションを実行できます。
Revoke JSON Web Key Sets (JWKS)
注意
署名キーをローテーションするために、この機能を使用しないでください。 OIDC IdP署名キーをローテーションすると、MongoDB は既存のアクセス トークンの有効期限が切れると、JWKS を自動的に取得します。
秘密キーが流出した場合、MongoDB ノード内にキャッシュされている JSON Web Key Sets を直ちに失効化できます。
設定を編集
Workforce IdP の設定を編集するには
構成の削除
Workforce IdP 構成を削除するには、次の手順に従います。