Active Directory用のKerberos認証の構成

ビッグ・データ・サービス・クラスタでActive DirectoryのKerberos認証を構成します。

前提条件

ODHクラスタのKDCとしてActive Directoryを構成する前に、次の前提条件を満たす必要があります。

  • ODHクラスタ・ホストには、ドメイン・コントローラのDNS名に対するネットワーク・アクセスがあり、これを解決できる必要があります。
  • Active DirectoryのセキュアなLDAPまたはLDAPS接続が構成されました。
  • Active Directoryバインドユーザーおよびバインドパスワード。

Active Directoryのみのアプローチを使用して Kerberos認証を構成するには、次が必要です。

  • サービス原則のActive Directoryユーザー・コンテナが作成され、使用可能です。たとえば、OU=Hadoop,OU=People,DC=apache,DC=orgです。ユーザー・コンテナでユーザー・アカウントを作成、削除および管理するための委任制御を備えたActive Directory管理資格証明を使用できます。

Active Directory証明書のインポート

様々な構成設定を更新するには、証明書チェーンをビッグ・データ・サービス・クラスタにインポートする必要があります。たとえば、個々のサービスで使用される各.crtファイル、キー・ストアなどです。たとえば、Hue、Ranger、Ambariなどです。
  1. ビッグ・データ・サービス・クラスタの最初のマスター・ノード(mn0)にサインインします。
  2. Active Directory管理者からLDAP証明書チェーンを取得し、ファイルに格納します。たとえば、/<path>/<manually_obtained_certifcate_chain>.crtです。
  3. ビッグ・データ・サービス3.0.27以降では、証明書チェーンを検証してLDAP URLを接続します。それ以外の場合は、このステップをスキップします。
    sudo bds_cert_util -ot validateURLConnection -url <ldap_fqdn>:<port> -ca /<path>/<manually_obtained_certifcate_chain>.crt
  4. /home/opc/cloud/flask-microservice/cert_util/conf/bds-certs.confファイルを次のように編集します。
    1. CUSTOM_CERTIFICATEをTrueに設定します。
    2. ROOT_CERT_PATH/<path>/<manually_obtained_certifcate_chain>.crtに設定します。
      ノート

      手動で取得した証明書のパスは、次のいずれかの値と競合しないようにしてください。
      • 証明書TEMP_CERT_PATH=/etc/security/serverKeys_new #Initital certificate generation pathを適用する前に使用します。
      • 自己署名証明書CERT_GEN_FOLDER=/etc/security/serverKeys_cert_genの生成時のみ使用されます

      デフォルトでは、CERT_PATH=/etc/security/serverKeys #Temporary certificate directoryを使用します。ただし、ルート証明書パスをカスタマイズする場合は、別のパスを使用する必要があります。

    3. 変更内容を保存します。
  5. 次のコマンドを実行します:
    sudo bds_cert_util --enable
  6. Apache Ambariにサインインし、必要なすべてのサービスを再起動します。

Active Directoryから証明書を手動で取得する(Windows)

  1. Active Directoryサーバーにサインインします。
  2. mmcを実行します。
  3. 「ファイル」を選択し、「スナップインの追加/削除」を選択します。
  4. 「証明書」を選択し、「サービス・アカウント」を選択します。
  5. 「次へ」を選択します。
  6. 「ローカル・コンピュータ」を選択し、「次へ」を選択します。
  7. 「Active Directoryドメイン・サービス」を選択し、「OK」を選択します。
  8. ルート証明書に対応する証明書を検索するには:
    1. 「証明書- ローカル・コンピュータ上のサービス(Active Directoryドメイン・サービス)」を選択します。
    2. 「NTDS\Personal」を選択します。
    3. 「証明書」を選択します。

      証明書を検索するために、「発行先」「発行者」は証明書で同じです。

  9. 前のステップにある証明書をエクスポートします。
    1. ルート証明書の行を右クリックします。
    2. 「すべてのタスク」を選択し、「エクスポート」を選択します。
      証明書のエクスポート ウィザードが開きます。
    3. 「次へ」を選択します。
    4. 「ファイル形式」「Base-64エンコードX.509」を選択します。
    5. 「次へ」を選択し、ファイル名を入力します。
    6. 「終了」を選択します。
  10. 前のステップで作成した.cerファイルをTextpadで開いて、ベース64でエンコードされた証明書の内容をコピーできます。または、.cerファイル自体をコピーできます。

Kerberosトークンのクリーンアップ

  1. ビッグ・データ・サービス・クラスタの最初のプライマリ・ノード(mn0)にサインインします。
  2. 古い Kerberosトークンが存在しないことを確認するには、次を実行します。

    sudo dcli -C "rm -rf /tmp/krb5cc*"