LDAP によるユーザー認証と承認の設定
項目一覧
注意
MongoDB 8.0以降、 LDAP認証と認可は非推奨です。 この機能は利用可能であり、 MongoDB 8のサポート期間中に変更されずに動作し続けます。 LDAPは将来のメジャー リリースで削除される予定です。
詳しくは、「 LDAP 非推奨 」を参照してください。
注意
Atlas は、 TLS 経由で独自の LDAP (Lightweight Directory Access Protocol)サーバーを使用して、すべてのMongoDBクライアントからのユーザー認証と認可を管理する能力を提供します。単一の LDAPS ( TLS 経由の LDAP )構成は、プロジェクト内のすべてのクラスターに適用されます。
LDAP でユーザー認証を有効にする場合、Atlas データベースの MongoDB ロールに LDAP グループをマッピングすることで、 データベースに LDAP グループを作成できます。admin
LDAPグループを効果的に使用するには、開発環境と本番環境用に個別の Atlas プロジェクトを作成するなど、組織内の特定の配置へのアクセスを制御するために Atlas 内に追加のプロジェクトを作成します。 次に、 LDAPグループを Atlas プロジェクトのロールにマッピングして、目的の配置へのアクセスを提供できます。
注意
ユーザー承認を有効にし、 LDAP ユーザーがどの LDAP グループにも属していない場合、Atlas はユーザーにデータベース ロールを割り当てません。ユーザー認証を有効にし、ユーザー承認を無効にすると、Atlas は MongoDB データベース ロールを LDAP ユーザーに割り当てます。
独自の請求ニーズ、アラート設定、プロジェクト ノードを持つ複数の部門がある場合は、部門ごとまたはビジネス ユニットごとに新しいプロジェクトセットまたは新しい組織を作成することを検討してください。
必要なアクセス権
LDAPユーザーまたはグループを管理するには、Atlas に対するOrganization Owner
またはProject Owner
アクセス権が必要です。
前提条件
Atlas で LDAP を使用してユーザー認証と承認を管理するには、次の前提条件を満たす必要があります。
MongoDB 4.0 以降を使用している Atlas クラスター。
Atlas クラスターが VPC または VNet ピアリング接続またはクラスター ノードのパブリック IP アドレスのいずれかを使用してネットワーク経由でアクセスできる TLS を使用する LDAP サーバー。
ユーザー 承認のみを目的として、 LDAP エントリ内の各ユーザーの属性として埋め込まれた LDAP グループ メンバーシップ。
推奨事項
LDAPSサービスが Atlas クラスターにアクセスするには、MongoDB では次の 2 つの構成のいずれかを推奨しています。
VPCまたは VNet の使用:
VPC または VNet で LDAP サーバーを実行します。
Atlas プロジェクトへのピアリング接続を確立します。
LDAP サーバーのプライベート IP アドレスに解決される公開 FQDN を使用します。
データセンターの使用:
パブリック IP アドレスに解決される公開 FQDN を使用して LDAP サーバーを実行します。
Atlas クラスター ノードのパブリック IP アドレスからの受信アクセスを許可するようにLDAPサーバーを設定します。
Considerations
LDAP 認証と X.509 ユーザー間の競合
LDAP 認証を有効にすると、Atlas が管理する X. 509証明書で認証するユーザーを使用してクラスターに接続することはできません。
LDAP 認証を有効にすると、 自己管理型の509 X. 証明書 で認証するユーザーを使用してクラスターに接続 でき ます。ただし、X. 509証明書内のユーザーの一般名は、LDAP 付きでデータベースにアクセスする権限を持つユーザーの識別名と一致する必要があります。
usernames
Atlas は、 LDAPサーバー内のユーザーの完全な DN(Distinguished Name、識別名)を Atlas のユーザー名として使用します。 たとえば、 ralph
という名前のサンプルLDAPユーザーは、Atlas では次のユーザー名を持っています。
cn=ralph,cn=Users,dc=aws-atlas-ldap-01,dc=myteam,dc=com
接続文字列
管理者が LDAPを使用してユーザー認証、またはユーザー認証と承認の両方を有効にしている場合、データベースユーザーはクライアントの接続文字列で次のパラメーターを上書きする必要があります。
authSource
でなければなりません$external
authenticationMechanism
でなければなりませんPLAIN
例
の次の接続 は、string mongosh
LDAPという名前のrob
ユーザーを認証します。
mongosh "mongodb+srv://cluster0-tijis.mongodb.net/test?authSource=%24external" \ --authenticationMechanism PLAIN \ --username cn=rob,cn=Users,dc=ldaps-01,dc=myteam,dc=com
接続文字列をコピーする方法は、次のとおりです。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoClusters
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
注意
パスワード、データベース、または接続文字列に予約済みの URI 文字が含まれている場合は、それらの文字をエスケープする必要があります。たとえば、パスワードが @bc123
の場合、接続文字列でパスワードを指定するときは、%40bc123
などに指定して、@
の文字をエスケープする必要があります。詳細については、「接続文字列パスワードの特殊文字」を参照してください。
構成変更時のローリング再起動
LDAP構成を変更すると、Atlas はクラスターのローリング再起動を実行します。 この再起動により、Atlas は正しい 設定を使用してユーザーを認証できるようになります。
パブリック IP アドレスの使用
ネットワーク アドレス変換 を使用して、他の内部 IP アドレスまたはプライベート IP アドレスを参照するパブリック IP アドレスを使用して、Atlas がLDAPサーバーにトラフィックを許可できます。 特定のアクティビティtrigger によって、Atlas クラスターのパブリック アドレスの変更がIP されることに注意してください。
パブリック IP アドレスに基づくLDAPサーバーへのアクセスを許可した場合、Atlas クラスターのパブリック IP アドレスを変更すると、 LDAPアクセスが妨げられます。 LDAPアクセスを復元するには、新しい Atlas クラスターのパブリック IP アドレスをLDAPアクセス リストに追加します。
制限
同じデータベースユーザーに対して、 LDAP認証と SCRAM 認証の両方を使用することはできません。
手順
LDAP による認証の構成
注意
同じ Atlas CLI コマンドを使用して、 LDAP 認証と LDAP 承認を設定できます。
Atlas CLI を使用して、指定したプロジェクトの 1 つの LDAP 構成を保存するには、次のコマンドを実行します。
atlas security ldap save [options]
コマンド構文とパラメータの詳細については、Atlas CLI AtlassecurityLDAP save に関する ドキュメントを参照してください。
プロジェクト内のすべてのクラスターに対してLDAPによるユーザー認証を設定するには、次の手順を使用します。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
LDAP Authentication の横にあるボタンを On に切り替えます。
注意
この機能を有効にすると、追加コストが発生する可能性があります。 「高度なセキュリティ 」を参照してください。
認可の設定
注意
同じ Atlas CLI コマンドを使用して、 LDAP 認証と LDAP 承認を設定できます。
Atlas CLI を使用して、指定したプロジェクトの 1 つの LDAP 構成を保存するには、次のコマンドを実行します。
atlas security ldap save [options]
コマンド構文とパラメータの詳細については、Atlas CLI AtlassecurityLDAP save に関する ドキュメントを参照してください。
プロジェクト内のすべてのクラスターに対して LDAP によるユーザー承認を設定するには、次の手順に従います。
重要
承認を有効にする前に、 LDAP による認証を有効にする必要があります。
LDAP 承認を有効にして構成すると、LDAP 認証のみで構成されているデータベース ユーザーはデータベースにアクセスできなくなります。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
クエリ テンプレートを Query Template に入力します。
ユーザーがアクションを実行しようとすると、Atlas はLDAP クエリ テンプレートを実行して、認証されたユーザーが属する LDAP グループを取得します。 Atlas では、アクションの実行が許可されているグループが少なくとも 1 つクエリで返される場合、アクションは許可されます。 クエリがアクションを実行する権限を持つグループを返さない場合、Atlas ではアクションは許可されません。
Atlas はクエリを実行するときに、 {USER}
プレースホルダー内の認証されたユーザー名を置き換えます。 クエリは、 Server Hostnameで指定されたホストに対して相対的です。
クエリの形式は RFC4515 に準拠する必要があります。
クエリ テンプレートを指定しない場合、Atlas はデフォルト値{USER}?memberOf?base
を適用します。
LDAP データベースユーザーまたはグループの追加
Atlas CLI を使用してプロジェクトのデータベースユーザーを作成するには、以下のコマンドを実行します。
atlas dbusers create [builtInRole]... [options]
コマンド構文とパラメータの詳細については、Atlas CLI Atlasdbusers create の ドキュメントを参照してください。
LDAP による認可を構成 したら、次の手順に従って LDAP データベースユーザーまたはグループを作成します。
AtlasGoDatabase AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
LDAP を選択します。
Add New Database User モーダルウィンドウの Authentication Method セクションで、LDAP というラベルの付いたボックスを選択します。
注意
LDAP オプションが表示されない場合は、LDAPによる認可を設定する必要があります。
特権を割り当てます。
データベースユーザーの権限を選択します。次のいずれかの方法で、新しいユーザーに特権を割り当てることができます。
[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] をクリックして、さらに特権を追加します。こうすることで、個々のデータベースとコレクションに対するユーザー固有の特権が割り当てられます。
Atlas では、組み込みロール、複数のカスタムロール、および複数の特定の特権を 1 人のデータベースユーザーに適用できます。
適用されたロールまたは特権を削除するには、次をクリックします:削除するロールまたは特権の横にあるDelete 。
注意
Atlas はオプションを 1 つだけ選択した場合は、 Built-in Role 、 Custom Role 、またはSpecific Privilege選択の横にDeleteアイコン。 選択したロールまたは特権は、別のロールまたは特権を適用すると、削除できます。
承認の詳細については、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 がユーザーまたはグループを削除すると、一時ユーザーのまたはグループの認証情報を使用するクライアントやアプリケーションは、クラスターにアクセスできなくなります。
LDAP 構成の表示
Atlas CLI を使用して 1 つの LDAP 設定の詳細を返すには、次のコマンドを実行します。
atlas security ldap get [options]
コマンド構文とパラメータの詳細については、 Atlas CLIドキュメントのAtlas security LDAP get を参照してください。
Atlas UI を使用して現在のLDAP設定を表示する。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
LDAP 構成の無効化
注意
同じ Atlas CLI コマンドを使用して、 LDAP 認証設定と LDAP 認証設定を無効にできます。
Atlas CLI を使用して 1 つの LDAP 設定を削除するには、次のコマンドを実行します。
atlas security ldap delete [options]
コマンド構文とパラメータの詳細については、 Atlas CLIドキュメントの「 Atlas security LDAP delete 」を参照してください。
Atlas UI を使用して現在のLDAP設定を無効にするには:
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
サードパーティの LDAP プロバイダーのチュートリアル
次のチュートリアルを使用して、サードパーティの LDAP プロバイダーからのユーザーを認証および承認するように Atlas を設定します。