OIDC で Workforce IdP を設定する
項目一覧
MongoDB 7.0以降では、Workforce IdP を使用して、会社の IdPなどの外部 IdP(IdP)を使用して、従業員、パートナー、コンストラクターなどの特定のワークフォースを認証および認可します。
Workforce IdP を使用すると、次のことが可能になります。
既存のIdPを介して、MongoDB 配置へのワークフォース アクセスを管理します。
パスワードの複雑さ、認証情報のローテーション、 MFAなどのセキュリティ ポリシーをIdP内で強制します。
外部IdPを構成して Workforce IdP に一度追加したら、複数の Atlas 組織に対して Workforce IdP を有効にできます。 特定の組織で Workforce IdP を有効にすると、その組織のすべてのプロジェクトでデータベース アクセスのためにフェデレーションを使用できるようになります。
Workforce IdP は、MongoDB バージョン7.0.11以降を実行している Atlas 専用クラスター(M 10以上)によってサポートされています。 Workforce IdP のある Atlas にアクセスするには、MongoDB Shell または Compass を使用する必要があります。
Workforce IdP アクセスの実装の詳細については、「 Workforce IdP を使用して MongoDB にアプリケーションを接続する 」を参照してください。
必要なアクセス権
Workforce IdP の構成を管理するには、Atlas への Organization Owner
アクセス権が必要です。
手順
Workforce IdP を使用して Atlas クラスターにアクセスするには、次の手順を実行します。
ワークフォース IdP(1 回限りの設定)を構成します。
外部 ID(ユーザー プリンシパル)またはグループに MongoDB クラスターへのアクセス権を付与します。
MongoDB Shell または Compass を使用して Atlas クラスターを認証します。
外部 ID プロバイダー アプリケーションを構成する
OIDC を使用して Workforce IdP を構成するには、 Microsoft Entra ID 、Okta、Ping Identity など、 OIDC 標準をサポートする IdP を使用して OIDC アプリケーションを登録します。
注意
Workforce IdP は認証用にJSON web tokenのみをサポートしています。 不変のアクセス トークンはサポートされていません。
OIDCアプリケーションは、次の付与タイプで構成できます。
PKCEを使用した認証コードフロー
デバイス認証フロー
MongoDB では、セキュリティを強化するために、Authorization Code Flow とPKCEを使用することを推奨しています。 ユーザーがブラウザを使用せずにマシンからデータベースにアクセスする必要がある場合にのみ、Device Authorization Flow を使用します。
OIDCアプリケーションの登録手順は、 IdPによって異なる場合があります。 登録プロセス中に次の項目を必ず完了してください。
(任意)MongoDB クライアントでトークンを更新してユーザー エクスペリエンスを向上させる場合は、更新トークンを許可します。
(任意)アクセス トークンの有効期間( exp
クレーム)をデータベース接続セッション時間と一致するように設定します。
アプリケーションを登録したら、 issuer
、 clientId
、 audience
の値を保存して、 Atlas Workforce IdP 構成の次の段階で使用します。
OIDCアプリケーションを Microsoft Entra ID に登録するには、次の手順に従います。
アプリケーションを登録します。
App registrationsに移動します。
Azure portal で アカウント、検索、Microsoft Entra ID の順にクリックします。
左側のナビゲーションの Manage セクションで、App registrations をクリックします。
[New registration] をクリックします。
次の値を適用します。
フィールド値NameAtlas Database - WorkforceSupported Account TypesAccounts 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] をクリックします。
アクセス トークンにユーザー識別子クレームを追加します。
[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 の値が Atlas 構成プロパティでどのようにマップされるかを示しています。
Microsoft Entra ID UI | Atlas 構成プロパティ |
---|---|
Application (client) ID | Client ID Audience |
OpenID Connect metadata document (without /.well-known/openid-configuration) | Issuer URI. |
Workforce IdP 認証の構成
注意
前提条件
この手順では、Organization Owner
アクセス権が必要で、 IdP で作成された OIDC アプリケーションがすでに存在することを前提としています。IdP を構成する方法については、「 外部 IdP アプリケーションを構成する 」を参照してください。
Federation Management Consoleから Atlas のデータベース アクセス用にOIDCを使用して Workforce IdP を構成できます。
Atlas でワークフォース IdP を設定するには、次の手順に従います。
ドメイン所有権を追加して確認します。
IdPに登録するドメインの所有権を確認する必要があります。 Atlas で SAML SSO のドメインをすでに登録している場合は、この手順を省略できます。
左側のサイドバーで [Domains(ドメイン)] を選択します。
Add Domainボタンをクリックします。
Display Nameボックスに表示名を入力します。
Domain Nameボックスにドメイン名を入力します。
ドメインの所有者であることを確認するために使用する方法を選択して、HTML File Upload DNS Recordボタンまたは ボタンのいずれかをクリックします。
HTML File Uploadを選択した場合は、提供された HTML ファイルをダウンロードし、ドメインにアップロードすると、
https://<your-domain/mongodb-site-verification.html>
がアクセスできるようになります。DNS Recordを選択した場合は、提供された
TXT Record
をコピーし、ドメイン プロバイダーにアップロードします。[Continue] をクリックします。
最後に、 Domainsページで、新しく追加されたドメインの [ Verify ] ボタンをクリックします。
次のワークフォース IdP のプロトコル設定を入力します。
設定 | 必要性 | 値 |
---|---|---|
Configuration Name | 必須 | この構成を識別する、人間が判読できるラベル。 このラベルは、Atlas ユーザーに表示されます。 |
Configuration Description | 任意 | この構成を説明する、人間が判読できるラベル。 |
Issuer URI | 必須 | 登録されたIdPアプリケーションによって提供される発行者値。 この URI を使用して、MongoDB は /.wellknown/open-id-configuration エンドポイントで利用可能なはずの OpenID プロバイダー構成ドキュメントを見つけます。 |
Client ID | 必須 | 登録されたアプリケーションの一意の識別子です。 外部 IdP に登録したアプリの clientId 値を入力します。 |
オーディエンス | 必須 | 外部 ID プロバイダーがトークンを発行するエンティティ。 外部 IdP に登録したアプリの audience 値を入力します。 一般的に、この値はClient IDと同じです。 |
authorizationType | 必須 | IdPユーザー グループ メンバーシップに基づいて認可を付与するには Group Membership を選択し、個々のユーザーに認可を付与するにはUser ID を選択します。 |
Requested Scopes | 任意 | ユーザーに認可エンドポイントからのデータをリクエストする権限を付与するトークン。 リフレッシュ トークンをサポートする場合は、このフィールドには値 ID プロバイダーが Microsoft Entra ID の場合、Atlas にはこの設定が必要です。 デフォルトのスコープを追加します。これは 追加する追加のスコープごとに、[ Add more scopes ] をクリックします。 |
User Claim | 必須 | ユーザー プリンシパル ID を含む要求の識別子。 IdPが別の要求を使用しない限り、デフォルト値を受け入れます。 デフォルト: |
Groups Claim | 必須 | プリンシパルのIdPユーザー グループ メンバーシップ情報を含む要求の識別子。 IdPが別のクレームを使用している場合を除き、カスタム クレームが必要な場合を除き、デフォルト値を受け入れます。 このフィールドは、 デフォルト: |
強制認証を使用したデータベースユーザーの追加
AtlasGoDatabase AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
Add New Database User or Group ダイアログ ボックスを開きます。
Add New Database User or Group をクリックします。
注意
Workforce IdP を Atlas に適用するまで、このボタンはAdd New Database User 。
Federated Auth を選択します。
Authentication Methodセクションで、[Federated Auth] を選択します。
注意
組織で Workforce IdP を有効にするまで、このボックスを選択することはできません。
ユーザーまたはグループの特権を割り当てます。
新しいユーザーまたはグループに特権を割り当てるには、次のタスクの 1 つ以上を実行します。
[Built-in Role] ドロップダウンメニューから [組み込みロール] を選択します。
Atlas UI では、データベースグループごとに 1 つの組み込みロールを選択できます。
デフォルト オプションを削除する場合は、 Add Built-in Roleをクリックして新しい組み込みロールを選択できます。
カスタムロール が定義されている場合は、 Custom Rolesセクションを展開し、 Custom Rolesドロップダウンメニューから 1 つ以上のロールを選択できます。
さらにカスタムロールを追加するには、 Add Custom Roleをクリックします。
プロジェクトのカスタムロールを表示するには、 Custom Rolesリンクをクリックします。
[ Specific Privilegesセクションを展開し、 Specific Privilegesドロップダウン メニューから 1 つ以上の 特権 を選択します。
さらに特権を追加するには、 Add Specific Privilegeをクリックします。 こうすることで、個々のデータベースとコレクションに対するグループ固有の特権が割り当てられます。
適用されたロールまたは特権を削除します。
- をクリックしますの横にあるDelete
- 削除するロールまたは特権。
注意
Atlas はオプションを 1 つだけ選択した場合は、 Built-in Role 、 Custom Role 、またはSpecific Privilege選択の横にDeleteアイコン。 選択したロールまたは特権は、別のロールまたは特権を適用すると、削除できます。
Atlas では、組み込みロール、複数のカスタムロール、および複数の特定の特権をデータベースグループに適用できます。
認可の詳細については、MongoDB マニュアルの「 ロールベースのアクセス制御」と「 組み込みロール 」を参照してください。
ユーザーまたはグループがアクセスできるプロジェクト内のリソースを指定します。
デフォルトでは、グループはプロジェクト内のすべてのクラスターと フェデレーティッドデータベースインスタンス にアクセスできます。 特定のクラスターとフェデレーティッドデータベースインスタンスへのアクセスを制限するには、次の手順に従います。
Restrict Access to Specific Clusters/Federated Database Instances を On に切り替えます。
Grant Access Toリストからグループにアクセスを許可するクラスターとフェデレーティッドデータベースインスタンスを選択します。
一時ユーザーまたはグループとして保存します。
Temporary UserまたはTemporary GroupをOnに切り替え、Atlas がユーザーまたはグループを削除できるようになるまでの時間を [ Temporary User DurationまたはTemporary Group Durationドロップダウンから選択します。 グループが存在する期間として、次のいずれかから選択できます。
6 時間
1 日
1 週間
[ Database Usersタブには、Atlas が一時ユーザーまたはグループを削除するまでの残り時間が表示されます。 Atlas がユーザーまたはグループを削除すると、一時ユーザーのまたはグループの認証情報を使用するクライアントやアプリケーションは、クラスターにアクセスできなくなります。
Workforce IdP を使用したアプリケーションの MongoDB への接続
次は、Workforce IdP 認証を使用してアプリケーションを MongoDB に接続する方法を示しています。
Compass v1.38 +
MongoDB Shell v2.14 +
既存のワークフォース IdP 構成を管理する
Revoke JWKS
注意
自身で署名キーを管理する場合にのみ、次の手順を使用してください。
署名キーをローテーションするために、この機能を使用しないでください。 Workforce IdP の署名キーをローテーションすると、既存のアクセス トークンの有効期限が切れると、MongoDB は JWKS を自動的に取得します。
秘密キーが侵害された場合は、MongoDB ノードにキャッシュされた JWKS(JSON Web Key Sets)をすぐに取り消すことができます。
Atlas で、Organization Settings ページに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
[Organizations] メニューの横にある [Organization Settings] アイコンをクリックします。
[ Organization Settings ]ページが表示されます。
ワークフォース IdP 構成の削除
Workforce IdP の構成を削除するには
Atlas で、Organization Settings ページに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
[Organizations] メニューの横にある [Organization Settings] アイコンをクリックします。
[ Organization Settings ]ページが表示されます。
Workforce IdP に接続した各組織の接続を切断します。
左側のサイドバーで [ Organizations ] をクリックします。
Workforce IdP が有効になっている組織をクリックします。
Workforce IdP カードのManageドロップダウンの下にあるDisconnectをクリックします。
Disconnect identity provider?モーダルで、 Disconnectをクリックします。
IdP を切断すると、 IdPを使用して認証するユーザーは、 Projectテーブルにリストされている Atlas プロジェクトの Workforce IdPにアクセスできなくなります。
Delete Identity Provider?モーダルで、 Deleteをクリックします。