Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

Microsoft Entra ID ドメイン サービスを使用したユーザー認証と承認の構成

項目一覧

  • 制限
  • 必要なアクセス権
  • 前提条件
  • 手順
  • ドメイン用の Microsoft Entra ID ドメイン サービスの構成
  • LDAP 認証のための Atlas の構成
  • Atlas へのデータベースアクセス LDAPグループの追加
  • LDAP 認証のための Atlas の構成
  • を使用してクラスターに接続する mongosh
  • LDAP 接続の問題のトラブルシューティング

注意

MongoDB 8.0 以降、LDAP による認証と承認は非推奨です。この機能は利用可能であり、MongoDB 8 の有効期間を通じて変更なく動作し続けます。LDAP は今後のメジャーリリースで削除される予定です。

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

注意

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

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

  • M0 クラスター

  • M2/M5 クラスター

  • Flex クラスター

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

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

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

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

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

Atlas は、以下からのデータベースユーザーの認証と承認をサポートしています Microsoft Entra ID ドメイン サービス。

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

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

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

Microsoft Entra ID ドメイン サービスLDAPを Atlas と統合するには、次のものが必要です。

  • Azureのサブスクライブ。 サブスクリプションを申し込むには、 Microsoft Azure portal にアクセスしてください。

  • Contributor LDAP 統合に必要なリソースを作成するには、 Azure サブスクリプションの特権以上が必要です。

  • サブスクリプションに関連付けられた Microsoft Entra ID のテナント。 Microsoft Entra ID テナントを設定する方法の詳細については、「 Microsoft Entra ID ドキュメント 」を参照してください。

  • Global Administrator 権限(Microsoft Entra ID テナント)で、Microsoft Entra ID Domain Services を有効にする

  • ルーティング可能なカスタムのドメイン名。

1

Microsoft Entra ID ドメイン サービスを構成するには、次の手順に従ってください: Azure ドキュメントにあるCustom domain names DNS 名オプションを使用するチュートリアルを参照してください。

マネージド ドメインを構成するときは、 DNS domain nameフィールドに入力する値を必ずメモしておきます。 この値が<managed-domain>です。 このチュートリアルの複数の場所で指定する必要があります。

aadds.example.com

2

Microsoft Entra ID ドメイン サービスは SSL 証明書を使用して LDAP を保護します。 証明書は、 Azure ドキュメントに記載されている要件に準拠している必要があります。

証明書を取得するには、次のいずれかを行います。

  • 組織が使用する公開認証局またはエンタープライズ認証局 (CA) から 1 つを取得します。

    • 安全な LDAP が Microsoft Entra ID ドメイン サービスで正しく動作するようにするには、ワイルドカード証明書を取得する必要があります。

    • 証明書のサブジェクト名は、Microsoft Entra ID ドメイン サービスの構成時に使用した<managed-domain>と一致する必要があります。

      *.aadds.example.com

  • 自己署名証明書を生成します。 自己署名証明書は本番環境には推奨されません。

テスト 目的で MacOS または Linux システムで自己署名証明書を生成するには、次の手順に従います。

注意

macOS Catalina を使用している場合は、 opensslの最新バージョンをインストールしてください。 Homebrew を使用して をインストールするには、次のコマンドを実行します。

brew install openssl
  1. opensslを使用して秘密キーを生成します。 次のコマンドは、 <your-key-name>.keyという名前の秘密キーファイルを生成します。

    openssl genrsa -out <your-key-name>.key 2048
  2. 次の構成ファイルのテンプレートを編集します。 組織に関連する値で、 [dn-param]セクションの属性を更新します。 サブジェクト名( CN )が次のテンプレートと一致していることを確認します。 *.<managed-domain>

    *.aadds.example.com

    # openssl x509 extfile params
    extensions = extend
    [req] # openssl req params
    prompt = no
    distinguished_name = dn-param
    [dn-param] # DN fields
    C = US
    ST = NY
    L = New York
    O = MongoDB
    OU = Atlas
    CN = *.aadds.example.com
    [extend] # openssl extensions
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid:always
    keyUsage = digitalSignature,keyEncipherment,keyCertSign
    extendedKeyUsage=serverAuth,clientAuth
  3. ファイルを<your-config-name>.cfgとして保存します。

  4. 作成したキーと構成ファイルを使用して、証明書署名リクエストを生成します。 次のコマンドは、 <your-csr-name>.csrという名前の証明書署名リクエストを生成します。

    openssl req -new -key <your-key-name>.key \
    -out <your-csr-name>.csr -config <your-config-name>.cfg \
    -extensions extend
  5. 作成したキー、構成、および証明書署名リクエスト ファイルを使用して、 自己署名証明書 を生成します。 次のコマンドは、 <your-cert-name>.crtという名前の自己署名証明書ファイルを生成します。

    openssl x509 -req -sha256 -days 365 -in <your-csr-name>.csr \
    -signkey <your-key-name>.key -out <your-cert-name>.crt \
    -extfile <your-config-name>.cfg

テスト目的 で Windows システム上で自己署名証明書を生成する方法について詳しくは、 Azure のドキュメント を参照してください。

3

Microsoft Entra ID ドメイン サービスは秘密キーを使用して安全な LDAP トラフィックを復号化します。 秘密キーを含む証明書はPKCS#12形式を使用し、 .pfxファイル形式を使用します。 パブリック インターネット経由で送信された安全な LDAP トラフィックを復号化するには、この形式の証明書を Microsoft Entra ID ドメイン サービスにアップロードする必要があります。

MacOS または Linux システムで.pfx証明書を生成するには:

  1. 公開鍵と SSL 証明書をローカル マシンに保存します。

    注意

    証明書にはPEM形式を使用する必要があります。

    証明書に秘密キーが含まれていない場合は、秘密キーを.key形式ファイルに保存できます。

  2. 秘密キーとopenssl証明書を使用して.pfx証明書を生成します。 次のコマンドは、 <your-cert-name>.pfxという名前の.pfx証明書ファイルを生成します。

    openssl pkcs12 -export -out <your-cert-name>.pfx \
    -inkey <your-key-name>.key -in <your-cert-name>.crt

    プロンプトが表示されたら、ファイルを暗号化するためのパスワードを入力して確認します。 このパスワードは、 .pfx証明書を Microsoft Entra ID ドメイン サービスにアップロードするときに、秘密キーを復号化するために入力します。

.pfxWindows システム上で 証明書を生成する方法について詳しくは、 Azure のドキュメント を参照してください。

4

Microsoft Entra ID ドメイン サービスで安全な LDAP を有効にするには、 Azure のドキュメントを参照してください。

5

Atlas とデータベース ノードが Microsoft Entra ID Domain Services が管理するカスタム ドメイン内の LDAP サーバーに接続できるように DNS プロバイダーを構成する必要があります。

<managed-domain>のサブドメインを Microsoft Entra ID Domain Services LDAP サービスが使用する外部 IP アドレスに解決する LDAP トラフィックのホスト レコードを作成します。

LDAP IP アドレス
LDAP トラフィックのサブドメイン

203.0.113.77

ldap.aadds.example.com

Microsoft Entra ID Domain Services LDAP サービスが使用する外部 IP アドレスを見つけるには、 Azure のドキュメントを参照してください。

6

カスタム ドメイン名を Microsoft Entra ID に追加して、追加したドメインに属するユーザーを作成します。ドメインを追加したら、TXT レコードでお使いの DNS プロバイダーに Microsoft Entra ID の DNS 情報を追加して、構成を確認します。

カスタム ドメインの Microsoft Entra ID への追加方法について詳しくは、 Azure のドキュメント を参照してください。

7

Microsoft Entra ID ドメイン サービスを Atlas の LDAP プロバイダーとして使用するには、パブリック インターネットからポート636へのすべてのポート経由のすべてのトラフィックを許可する必要があります。

ポート でインバウンド LDAP トラフィックを許可するインバウンド セキュリティ636 ルールを追加する方法について詳しくは、 Azure のドキュメント を参照してください。

8

バインド ユーザーを作成します。 バインド ユーザーは 、Atlas データベースに接続するときにデータベースユーザーの認証情報を認証するために使用する Microsoft Entra ID ユーザーです。 バインド ユーザーは、Microsoft Entra ID に追加したカスタム ドメインに属している必要があります。

Microsoft Entra ID ユーザーを作成する方法について詳しくは、 Azure のドキュメント を参照してください。

9

バインド ユーザーが Microsoft Entra ID ドメイン サービスを使用する前に、Kerberos および NTM 認証用のバインド ユーザーのパスワード ハッシュを生成する必要があります。 手順は、Microsoft Entra ID ユーザー アカウントの種類によって異なります。

ユーザーのパスワード ハッシュを生成する方法については、 Azure のドキュメントを参照してください。

10

Microsoft Entra ID をクエリするには、バインド ユーザーは ディレクトリ リーダー によって付与される権限を持っている必要があります。 のロール。

バインド ユーザーにディレクトリ読み取りロールを割り当てる方法について詳しくは、 Azure のドキュメント を参照してください。

11

ユーザがまだ存在しない場合は、Microsoft Entra ID ドメイン サービスでデータベース アクセスを許可するユーザーを作成します。 ユーザーは、Microsoft Entra ID に追加したカスタム ドメインに属している必要があります。

Microsoft Entra ID ユーザーを作成する方法について詳しくは、 Azure のドキュメント を参照してください。

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

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

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

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

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

2

注意

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

3

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

4

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

[
{
"match":"(.+)",
"substitution":"CN={0},OU=AADDC Users,DC=<managed-domain>,DC=com"
}
]

注意

Microsoft Entra ID ドメイン サービスの場合、識別名の属性は大文字である必要があります。

<managed-domain>が 1 つ以上のサブドメインで構成されている場合は、それぞれの識別名にDC (domainComponent)属性を追加する必要があります。

<managed-domain>aadds.example.comの場合、ドメイン コンポーネントは次のようになります。

DC=aadds,DC=example,DC=com

5

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

6

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

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

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

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

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

8

注意

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

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

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

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

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

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

      CN=<user-name>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com

      たとえば、 <user-name>Jane Doeで、 <managed-domain>aadds.example.comの場合、ユーザーの DN は次のようになります。

      CN=Jane Doe,ou=AADDC Users,DC=aadds,DC=example,DC=com
    2. User to DN Mappingを入力した場合は、マッピングに必要なユーザー名を入力します。

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

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

注意

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

重要

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

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

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

ユーザーに付与するアクセス レベルごとに、個別の Microsoft Entra ID グループを作成します。 たとえば、1 つのデータベースへの読み取りアクセス用に 1 つのグループを作成し、読み取りおよび書込みアクセス用のグループを作成するなどします。 各ユーザーが必要とするアクセスのレベルに基づいて、ユーザーをグループに割り当てます。

Microsoft Entra ID データベースアクセス グループを作成し、ユーザーに割り当てる方法について詳しくは、 Azure のドキュメント を参照してください。

注意

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

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

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

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

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

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

2

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

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

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

    CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com

    注意

    Microsoft Entra ID ドメイン サービスの場合、識別名の属性は大文字である必要があります。

    <managed-domain>が 1 つ以上のサブドメインで構成されている場合は、それぞれの識別名にDC (domainComponent)属性を追加する必要があります。

    <managed-domain>aadds.example.comの場合、ドメイン コンポーネントは次のようになります。

    DC=aadds,DC=example,DC=com

    たとえば、 <group-name>Atlas read onlyで、 <managed-domain>aadds.example.comの場合、ユーザーの DN は次のようになります。

    CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,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を使用できます。

{USER}?memberOf?base

注意

他のクエリ テンプレートも機能する場合があります。

7

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

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

注意

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

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

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

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

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

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

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

2

接続文字列をコピーする方法は、次のとおりです。

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

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

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

注意

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

注意

Microsoft Entra ID ドメイン サービスの場合、識別名の属性は大文字である必要があります。

<managed-domain>が 1 つ以上のサブドメインで構成されている場合は、それぞれの識別名にDC (domainComponent)属性を追加する必要があります。

<managed-domain>aadds.example.comの場合、ドメイン コンポーネントは次のようになります。

DC=aadds,DC=example,DC=com

ユーザーまたはユーザーの完全な DN 内のグループ名内のエスケープ スペース。

--username CN=Jane\ Doe,OU=AADDC\ Users,DC=aadds,DC=example,DC=com

注意

ユーザーの完全な DN を使用している場合は、 AADDC Users OU(組織単位)のみを含めます。 ユーザーがメンバーである他の Microsoft Entra ID グループを含めないでください。

3

注意

Microsoft Entra ID ドメイン サービスでは、LDAP 検索を実行するにはバインド ユーザーがMicrosoft Entra ID DC Administratorsグループのメンバーである必要があります。 ldapsearchを実行する前に、バインド ユーザーにこれらの特権があることを確認してください

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

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

ldapsearch -H 'ldaps://ldap.<managed-domain>.com' -b 'DC=<managed>,DC=<domain>,DC=com' -s sub -D 'CN=<bind-user-dn>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com))'

注意

Microsoft Entra ID ドメイン サービスの場合、識別名の属性は大文字である必要があります。

<managed-domain>が 1 つ以上のサブドメインで構成されている場合は、それぞれの識別名にDC (domainComponent)属性を追加する必要があります。

<managed-domain>aadds.example.comの場合、ドメイン コンポーネントは次のようになります。

DC=aadds,DC=example,DC=com

たとえば、 bind-user-dnCN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com<managed-domain>aadds.example.comgroup-nameAtlas read onlyである場合は、次のコマンドを使用します。

ldapsearch -H 'ldaps://ldap.aadds.example.com' -b 'DC=aadds,DC=example,DC=com' -s sub -D 'CN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com))'

注意

他のクエリ テンプレートも機能する場合があります。

戻る

LDAP