LDAP/Active Directoryを使用したApache Ranger認証の構成

ビッグ・データ・サービス・クラスタで提供されるサービスおよびリソースにアクセスできるように、認可されたActive Directoryユーザーを構成する必要があります。これを行うには、Active Directoryユーザーをビッグ・データ・サービスのApache Rangerと同期できるようにApache Rangerを構成する必要があります。さらに、ユーザーはActive DirectoryユーザーとしてApache Ranger UIにサインインする場合があります。

Rangerの構成 UserSync

Ranger UserSyncを構成すると、Active Directoryサーバーからグループベースのユーザー同期を実行できます。特定のグループ内のActive DirectoryグループとユーザーはRangerに同期されます。

  1. Apache Ambariにアクセスします。
  2. サイド・ツールバーの「サービス」で、「レンジャー」を選択します。
  3. 「Configs」を選択し、「Ranger User Info」を選択します。
  4. 「ユーザー同期の有効化」「はい」に設定します。
  5. 「同期ソース」ドロップダウン・メニューから「LDAP/AD」を選択します。
  6. 「共通構成」を選択します。
    1. 次を入力します。
      • LDAP/AD URL: LDAP/ADのURLを入力します。
      • バインド・ユーザー: バインド・ユーザー情報を入力します。たとえば、CN=Administrator、CN=Users、DC=<domain_controller>、DC=COMです。
      • ユーザー・パスワードのバインドパスワードを入力して確認します。
    2. 「増分同期」「True」に設定します。
    3. 「LDAP STARTTLSの有効化」「いいえ」に設定します。
  7. 「ユーザー構成」を選択します。
    1. LDAP構成に基づいて次を入力します。
      • ユーザー名属性: LDAPユーザー名属性を入力します。例: sAMAccountName
      • ユーザー・オブジェクト・クラス: オブジェクト・クラスのユーザー名を入力します。
      • ユーザー検索ベース: ユーザーアカウントの検索を開始する識別名(DN)を指定します。DNは、ユーザーを検索するためのRanger UserSyncのLDAP階層の開始点を指定します。

        Examples:

        • 単一の組織単位(OU)の場合:

          ターゲットOUがドメインexample.comのParentOUの場合:
          • OU=ParentOU,DC=example,DC=com
        • ネストしたOU階層の場合:

          ターゲットOUがドメインexample.comのParentOUの下にあるChildOUの場合:
          • OU=ChildOU,OU=ParentOU,DC=example,DC=com
        • 複数のOU:

          複数のOUを検索するには、それらをセミコロン(;)で区切ります。
          • OU=ParentOU1,DC=example,DC=com;OU=ParentOU2,DC=example,DC=com
      • ユーザー検索フィルタ: 検索フィルタを入力します。これは標準のLDAPフィルタ式です。特定のグループ内のユーザーをフィルタするように指定できます。「LDAPフィルタの構文」を参照してください。このフィールドは空のままです。
      • ユーザー検索範囲: subと入力します。
      • User Group Name Attribute: グループ名の属性を入力します。たとえば、memberof、ismemberofです。
    2. 「グループ・ユーザー・マップ同期」「True」に設定します。
    3. 「ユーザー検索の有効化」「はい」に設定します。
  8. グループを同期するには、「グループ構成」を選択します。
    1. 「グループ同期の有効化」「はい」に設定します。グループを同期しない場合は、「いいえ」を選択し、次のステップに進みます。
    2. 次を入力します。
      • グループ・メンバー属性: LDAPグループ・メンバー属性を入力します。たとえば、memberです。
      • グループ名属性: グループ名属性を入力します。例: cn
      • グループ・オブジェクト・クラス: グループ・オブジェクト・クラスを入力します。たとえば、groupです。
      • グループ検索ベース: グループが存在するコンテナの完全なドメイン名を入力します。

        このテキストは、「ユーザー構成」タブの「ユーザー検索ベース」フィールドと同じです。

      • グループ検索フィルタ: Active Directoryグループ検索フィルタを入力します。たとえば、(|(CN=group1)(CN=group2)(CN=*admin))
        ノート

        このフィルタは、標準のLDAPフィルタ式です。「LDAPフィルタの構文」を参照してください。
    3. 「グループ検索を最初に有効化」「はい」に設定します。
    4. 「ネストされたグループの同期」「はい」に設定します。
  9. 構成を保存してRanger User Syncサービスを再起動するには、「保存」を選択します。
  10. Ranger User Syncサービスが起動し、エラーなしで実行されるまで待ちます。

Rangerに対するActive Directory認証の構成

  1. Apache Ambariにアクセスします。
  2. サイド・ツールバーの「サービス」で、「レンジャー」を選択します。
  3. 「Configs」を選択し、「Advanced」を選択します。
  4. 「Ranger Settings」を選択します。
  5. 「認証メソッド」ACTIVE_DIRECTORYを選択します。
  6. 次の「AD Settings」を入力します。
    • AD URL: Active DirectoryのURLを入力します
    • ADバインドDN: Active Directory DNを入力します
    • ADバインド・パスワード: Active Directoryバインド・パスワードを入力して確認します。たとえば、 <AD_BIND_USER_PWD>
    • ADベースDN: Active Directoryドメイン名を入力します。たとえば、 <AD_SEARCH_BASE>
    • AD Referral: 「無視」を選択します。
    • AD User Search Filter: Active Directoryユーザー名属性を入力します。例: (sAMAccountName={0}
  7. 構成を保存してRanger管理サービスを再起動するには、「保存」を選択します。
  8. Ranger Adminサービスが起動し、エラーなしで実行されるまで待機します。
  9. 構成を検証します。
    1. クラスタ管理資格証明を使用してRangerにサインインします。
    2. 任意のサービス・ポリシーを選択し、「ユーザーの選択」列に、認可ポリシーを適用できるActive Directoryユーザーがリストされます。ユーザー・ドロップダウンにActive Directoryユーザーの限定セットのみが表示される場合は、「レンジャーUIドロップダウンにすべての同期済ユーザーがリストされない」を参照してください。
    3. クラスタ・ノードにサインインし、次を実行します。
      kinit <user>@<ad-realm>
                                          
    4. Active Directoryユーザーにチケットが付与されていることを確認します。実行:
      klist

      出力例:

      Ticket cache: FILE:/tmp/krb5cc_1000
      Default principal: <user>@<ad-realm>
      Valid starting       Expires              Service principal
      09/01/2021 20:44:07  09/02/2021 06:44:07  krbtgt/<ad-realm>@<ad-realm>
      renew until 09/08/2021 20:44:04
    5. Hadoopサービスに移動し、リソースにアクセスできることを確認します。