Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

Okta LDAP Interface によるユーザー認証と承認の構成

項目一覧

  • 制限
  • 必要なアクセス権
  • 手順
  • LDAP 認証のための Okta の構成
  • LDAP 認証のための Atlas の構成
  • LDAP 認証のための Okta の構成
  • LDAP 認証のための Atlas の構成
  • を使用してクラスターに接続する mongosh
  • LDAP 接続の問題のトラブルシューティング

注意

MongoDB 8.0以降、 LDAP認証と認可は非推奨です。 この機能は利用可能であり、 MongoDB 8のサポート期間中に変更されずに動作し続けます。 LDAPは将来のメジャー リリースで削除される予定です。

詳しくは、「 LDAP 非推奨 」を参照してください。

注意

この機能は、次の配置では使用できません。

  • サーバーレス インスタンス

  • M0 クラスター

  • M2/M5 クラスター

  • Flex クラスター

詳しくは、「 の制限 」を参照してください。

このガイドでは、Atlas が Okta からデータベースユーザー(Atlas ユーザーではない)の認証と認可を有効にする方法について説明します。 、サードパーティの LDAP プロバイダー。

LDAP 認証のみを有効にすることも、LDAP 認証と承認の両方を有効にすることもできます。

  • LDAP認証のみを有効にする場合は、Atlas に個々のユーザーを追加し、追加する各ユーザーにデータベース アクセス特権を割り当てます。

  • LDAP認証と認可を有効にする場合は、Atlas にユーザー グループを追加し、各グループにデータベース アクセス特権を割り当てます。 ユーザーは、属するLDAPグループからデータベース アクセス特権を継承します。

Atlas は以下をサポートします。

  • Okta Active Directory 同期からのデータベースユーザーの認証。

  • Okta からデータベースユーザーを認証します。

  • Okta グループでデータベースユーザーを認可する。

  • LDAP統合を有効にするには、 M10以上の Atlas クラスターを配置する必要があります。 LDAP統合は Atlas Enterprise の機能です。

  • Atlas は、Okta Active Directory 同期グループでのデータベースユーザーの認証をサポートしていません。

  • Atlas では、データベース ユーザーシングル サインオン統合をサポートしていません。 Atlas 管理ウェブ インターフェイスのシングルサインオン統合の詳細については、「フェデレーション認証の構成 」を参照してください。

LDAPユーザーまたはグループを管理するには、Atlas に対するOrganization OwnerまたはProject Ownerアクセス権が必要です。

次の手順では、Atlas での認証用に Okta を構成します。

1
  1. Okta LDAP インターフェイスの設定の詳細については、 Okta ドキュメント を参照してください。

  2. <okta-instance-id>に注目してください。 これは、構成プロセス中に複数の場所で指定する必要があります。

    インスタンス名は、Okta アカウントにサインインするために使用する URL にあります。

    https://<okta-instance-id>.admin.okta.com
2
  1. 新しい Okta ユーザーを作成する Atlas バインド ユーザーとして を使用する。バインド ユーザーは、Atlas データベースに接続するときにアカウントをクエリし、データベース ユーザーの認証情報を認証するために使用する Okta ユーザーです。

    重要

    バインド ユーザーには自分のユーザー アカウントは使用 しない でください。

  2. 次のテンプレートを使用して、バインド ユーザーの完全な DN(Distinguished Name、識別名)を決定します。

    uid=<bind-user-email>,dc=<okta-instance-id>,dc=okta,dc=com

    たとえば、 <bind-user-email>bind@example.comで、 <okta-instance-id>mdb-exampleの場合、バインドユーザーの DN は次のようになります。

    uid=bind@example.com,ou=users,dc=mdb-example,dc=okta,dc=com
3

ユーザがまだ存在しない場合は、データベースへのアクセスを許可するユーザーを Okta で作成します。

  1. Okta people ページに移動します。

  2. [ Add Personをクリックします。

  3. ユーザーの詳細を入力します。 ユーザー名にはメールアドレスを使用します。

    注意

    プラス記号を含むメールアドレスの入力は避けてください( + )。 Atlas LDAP統合では、プラス記号を含むメールアドレスで問題が発生する可能性があります。

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

次の手順により、Atlas は Okta LDAPからデータベースユーザーを認証できるようになります。

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のAdvancedをクリックします。

    詳細ページが表示されます。

2

注意

この機能を有効にすると、追加コストが発生する可能性があります。 「高度なセキュリティ 」を参照してください。

3

複数のサーバーをカンマで区切って一覧表示できます。 異なるポートは使用できません。

4

次の例のようなユーザーと DN のマッピングを追加して、クライアントが Atlas データベースに接続するときに完全な DN の代わりにメールアドレスを提供できるようにします。

[
{
"match": "(.+)",
"substitution": "uid={0},ou=users,dc=<okta_instance_id>,dc=okta,dc=com"
}
]
5

自己署名証明書を提供できます。

6

Atlas が変更を配置するまで待ちます。 Atlas は、提供した構成の詳細を使用して、クラスターが LDAP サーバーに接続、認証、クエリを実行できることを確認します。

7
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のDatabase Accessをクリックします。

    [データベース アクセス ]ページが表示されます。

8

注意

LDAP 認可を有効にする場合は、この手順をスキップします。

Okta LDAPで管理されているユーザーを Atlas に追加します。

  1. Add New Database User をクリックします。

  2. [LDAP User] をクリックします。

  3. 次のいずれかを実行します。

    1. User to DN Mappingを入力していない場合は、 LDAPユーザーの完全な DN を入力します。 このテンプレートに従います。

      uid=<user-name>,ou=users,dc=<okta-instance-id>,dc=okta,dc=com

      たとえば、 <user-name>jane@example.comで、 <okta-instance-id>mdb-exampleの場合、ユーザーの DN は次のようになります。

      uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com
    2. User to DN Mappingを入力した場合は、マッピングに必要なユーザー名またはメールアドレスを入力します。

  4. ユーザーに付与するデータベースアクセスレベルを選択します。

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

注意

LDAP 認可を有効にしない場合は、 このセクションをスキップし ます。

次の手順では、Okta LDAPデータベース アクセス グループに属するユーザーを認可するように Atlas を構成します。

重要

  • 承認を有効にする前に、 LDAP による認証を有効にする必要があります。

  • LDAP 承認を有効にして構成すると、LDAP 認証のみで構成されているデータベース ユーザーはデータベースにアクセスできなくなります。

1

Atlas LDAP 認証では、 LDAP グループを使用して、ユーザーにデータベース アクションの実行が許可されているかどうかを判断します。

ユーザーに付与するアクセスのレベルごとに、個別の Okta グループを作成します。 たとえば、1 つのデータベースへの読み取りアクセス用に 1 つのグループを作成し、読み取りおよび書込みアクセス用のグループを作成するなどします。

  1. Directoryをクリックし、次にGroupsをクリックして、Okta Groupsページに移動します。

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

  3. グループ名を入力します(例: db-read

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

2

各ユーザーが必要とするアクセスのレベルに基づいて、ユーザーをグループに割り当てます。

  1. ユーザーを追加するグループをクリックします。

  2. [Manage People] をクリックします。

  3. ユーザーをグループに追加し、[ Save ] をクリックします。

3

バインド ユーザーには、特定の Okta グループに対してユーザーを認証し、LDAP 検索を実行するためのRead Only Administrator特権が必要です。 バインド ユーザーRead Only Administrator特権を割り当てるには、次の手順に従います。

  1. Securityをクリックし、次にAdministratorsをクリックして、Okta Administratorsページに移動します。

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

  3. バインドユーザーを検索し、 Read Only Administratorロールを選択します。

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

注意

LDAP 認可を有効にしない場合は、 このセクションをスキップし ます。

次の手順では、Okta データベース アクセス グループを Atlas に追加し、Atlas でデータベースユーザーの認証を有効にします。

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のDatabase Accessをクリックします。

    [データベース アクセス ]ページが表示されます。

2

作成した各 Okta データベース グループを Atlas に追加します。 追加したグループのノードには、グループに付与されたデータベースアクションを実行する権限が付与されます。

  1. Add New Database User をクリックします。

  1. [ LDAP Groupをクリックし、 User to DN Mappingを有効にした場合でも、データベースユーザーを含むグループの完全な DN を入力します。 このテンプレートに従います。

    cn=<group-name>,ou=groups,dc=<okta-instance-id>,dc=okta,dc=com

    たとえば、 <group-name>db-readで、 <okta-instance-id>mdb-exampleの場合、バインドユーザーの DN は次のようになります。

    cn=db-read,ou=groups,dc=mdb-example,dc=okta,dc=com
  1. このグループ内のユーザーに付与するデータベース アクセス レベルを選択します。

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

3
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のAdvancedをクリックします。

    詳細ページが表示されます。

4
5
6

ユーザーがアクションを実行しようとすると、Atlas はLDAP クエリ テンプレートを実行して、認証されたユーザーが属する LDAP グループを取得します。 Atlas では、アクションの実行が許可されているグループが少なくとも 1 つクエリで返される場合、アクションは許可されます。 クエリがアクションを実行する権限を持つグループを返さない場合、Atlas ではアクションは許可されません。

Atlas はクエリを実行するときに、 {USER}プレースホルダー内の認証されたユーザー名を置き換えます。 クエリは、 Server Hostnameで指定されたホストに対して相対的です。

クエリの形式は RFC4515 に準拠する必要があります。

ユーザーがメンバーであるグループを識別する場合は、次のQuery Templateを使用できます。

ou=groups,dc=<okta-instance-id>,dc=okta,dc=com?dn?sub?(&(objectClass=groupofUniqueNames)(uniqueMember={USER}))

注意

他のクエリ テンプレートも機能する場合があります。 デフォルトのテンプレート{USER}?memberOf?baseを使用すると、検索時間が長くなる可能性があります。

7

Atlas が変更を配置するまで待ちます。 Atlas は、提供された構成の詳細を使用して、クラスターが LDAP サーバーに接続、認証、クエリを実行できることを確認します。

次の手順では、 LDAP 認証(および有効になっている場合は LDAP 承認)が正しく構成されていることを確認します。

注意

LDAP認証が有効になっている場合、データベースユーザーはクライアントの接続文字列内の次のパラメーターを上書きする必要があります。

  • authSource でなければなりません $external

  • authenticationMechanism でなければなりません PLAIN

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。

    [ Clusters (クラスター) ] ページが表示されます。

2

mongoshを使用してクラスターに接続します。 接続文字列をコピーする方法は、次のとおりです。

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

  2. [ LDAPをクリックし、 Copyをクリックします。

  3. ユーザー DN とパスワードを含む string を貼り付けて編集します。

注意

ユーザーから DN へのマッピングが有効になっていない場合は、ユーザーの完全な DN を使用してクラスターに接続します。

3

注意

Okta では、バインド ユーザーは LDAP 検索を実行するためにRead Only Administrator特権を持っている必要があります。 ldapsearchを実行する前に、バインド ユーザーにこれらの特権があることを確認してください

ldapsearchを使用して、Atlas を構成したクエリ テンプレートが期待どおりにユーザー DN を返すかどうかを判断します。LDAP 認証が機能しても LDAP 承認が機能しない場合、クエリ テンプレートが正しいユーザー DN を返さない可能性があります。

次のldapsearchテンプレートを使用します。

ldapsearch -H 'ldaps://<okta-instance-id>.ldap.okta.com' -D "<bind-user-dn>" -w "<bind-user-pwd>" -b 'ou=groups,dc=<okta-instance-id>,dc=okta,dc=com' '(&(objectClass=groupofUniqueNames)(uniqueMember=<bind-user-dn or group-dn>))

たとえば、 bind-user-dnuid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=comで、 <okta-instance-id>mdb-exampleの場合は、次のコマンドを使用します。

ldapsearch -H 'ldaps://mdb-example.ldap.okta.com' -D "uid=jane@example.com,dc=mdb-example,dc=okta,dc=com" -w "REDACTED" -b 'ou=groups,dc=mdb-example,dc=okta,dc=com' '(&(objectClass=groupofUniqueNames)(uniqueMember=uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com))'

注意

他のクエリ テンプレートも機能する場合があります。 デフォルトのテンプレート{USER}?memberOf?baseを使用すると、検索時間が長くなる可能性があります。

戻る

Microsoft Entra ID DS