> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AD/LDAPコネクターのテスト環境をセットアップする

> Active Directory Domain Controllerを作成してテストする方法について説明します。

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****MASKED*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

export const codeExample = `https://{yourDomain}/authorize?response_type=token&scope=openid%20profile&client_id={yourClientId}&redirect_uri=http%3A%2F%2Fjwt.io&connection=auth0-test-ad`;

クラウドにデプロイしたVM上にAD Domain Controllerを最小限にインストールして、テスト環境をセットアップすることができます。VMは任意のクラウドプラットフォーム上で実行することができます。この例では、Microsoft Azure上にセットアップする方法を説明します。

1. [Azure Management Console](https://azure.microsoft.com/en-us/features/azure-portal/)に仮想マシンを作成します。
2. 新しいVMの **［ENDPOINTS（エンドポイント）］** タブをクリックして、 **Remote Desktop（リモートデスクトップ）** エンドポイントの **PUBLIC PORT（パブリックポート）** を書き留めておきます。
3. Microsoft Remote Desktopクライアント（WindowsまたはMac）を開くか、任意のクライアント（Linuxシステム用の[rdesktop](http://www.rdesktop.org/)など）を起動します。VMへの新しい接続を作成します。
4. 接続を開きます。その際に、Remote Desktopクライアントが証明書の警告を表示したら無視します。PC、デバイス、ローカルネットワーク上のコンテンツを見つけるか尋ねられたら、 **［No（いいえ）］** を選択します。
5. WindowsのタスクバーにあるPowerShellアイコンをクリックして、 **PowerShellコマンドプロンプト** を開きます。ADDSをインストールします。
6. サーバーを、`mycompany.local`のFQDNを管理するドメインコントローラーに昇格させます。
7. **SafeModeAdministratorPassword** が求められたら、VMの作成時に使用した管理者パスワードを入力します。Enterキーを押して続行します。昇格スクリプトが実行されて、VMが自動的に再起動します。
8. テストのグループとユーザーを追加します。Remote Desktopクライアントを使ってVMにログインし、PowerShellコマンドプロンプトを開きます。以下のスクリプトを実行します。

   ```text lines theme={null}
   > New-ADGroup -Name "Accounting" -GroupScope "DomainLocal"
   > New-ADGroup -Name "IT" -GroupScope "DomainLocal"

   > New-ADUser -GivenName Bob -Surname Johnson -Name "Bob Johnson" -SamAccountName bob.johnson -Enabled $True -AccountPassword (ConvertTo-SecureString "Pass@word1!" -AsPlainText -force) -PasswordNeverExpires $True
   > New-ADUser -GivenName Mary -Surname Smith -Name "Mary Smith" -SamAccountName mary.smith -Enabled $True -AccountPassword (ConvertTo-SecureString "Pass@word1!" -AsPlainText -force) -PasswordNeverExpires $True

   > Add-ADGroupMember -Identity Accounting -Members "bob.johnson", "mary.smith"
   > Add-ADGroupMember -Identity IT -Members "mary.smith"
   ```

## AD/LDAPコネクターをインストールして構成する

1. [［Auth0 Dashboard］>［Authentication（認証）］>［Enterprise（エンタープライズ）］](https://manage.auth0.com/#/connections/enterprise)に移動し、新しい **Active Directory/LDAP** 接続を「`auth0-test-ad`」という名前で作成します。手順の最後に生成される **チケットURL** を必ずコピーしてください。
2. VMで、 **［Internet Explorerのセキュリティ強化の構成］** を無効にします。
3. 手順1で保存した **チケットURL** を使って **Internet Explorer** を開きます。
4. ブラウザーに表示される指示に従って、 **コネクター** のダウンロード、インストール、および構成を行います。LDAPサービスアカウントを昇格させる際には、VMの作成に使った管理者アカウントを使用します： **ユーザー名** ：`mycompany\ad-admin`、 **パスワード** ：（以前のものと同一）
5. コネクターのインストールと構成が完了したら、サーバーを再起動します。
6. Remote Desktopを使用してVMにもう一度ログインします。
7. `http://localhost:8357/`に移動し、コネクターの構成サイトを開きます。
8. **コネクター** がユーザーを見つけられるか確認します。

   1. **［Search（検索）］** タブをクリックします。
   2. ［Find User by Login（ユーザーをログインで検索）］に「`mary.smith`」と入力します。
   3. **［Search（検索）］** をクリックします。ユーザーのADプロファイルデータが含まれたJSONを受け取るはずです。

## Auth0からの認証をテストする

Auth0アカウントを使用してすべてが動作していることを確実にするために、Auth0で **デフォルトのアプリ** を構成して新しい **Active Directory / LDAP** 接続で使用し、`/authorize`エンドポイントを使って認証フローを開始します。

1. [［Auth0 Dashboard］>［Applications（アプリケーション）］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動します。

2. **デフォルトのアプリ** の **設定** アイコンをクリックします。

3. `http://jwt.io`をアプリケーションの **［Allowed Callback URLs（許可されているコールバックURL）］** リストに追加します。

4. **［Connections（接続）］** タブをクリックします。

5. **［Enterprise（エンタープライズ）］** で、「`auth0-test-ad`」という名前の **Active Directory / LDAP** 接続を有効にします。

6. ブラウザーで以下のリンクを開いて、認証フローをテストします。

   <AuthCodeBlock children={codeExample} language="http" />

7. ディレクトリに作成したテストユーザーの1人でログインします。

   * ユーザー名：`mary.smith`または`bob.johnson`
   * パスワード：`Pass@word1!`

8. すべてが問題なく動作している場合は、JWT.ioのWebサイトにリダイレクトされ、結果のJWTの内容が表示されます。
