[認証] ワークスペースを使用して、SaltStack Config のディレクトリ サービスが LDAP プロトコルを使用するように構成できます。このプロトコルは、Active Directory や Microsoft Azure などのサービスへの接続に使用されます。

注: 必要に応じて同時に複数のシステムを使用して、 SaltStack Config のユーザーを認証できます。たとえば、SAML ベースの IdP および LDAP ベースの IdP を使用すると同時に、複数のユーザー認証情報を RaaS サーバにネイティブに保存できます。ただし、 SaltStack Config では、複数の SAML プロバイダまたは複数の LDAP プロバイダを同時に構成することはできません。

認証プロセス

SaltStack Config は、次のバック エンド プロセスを使用して LDAP ベースのシステムを認証します。

  • [プレビュー] - 接続設定をプレビューすると、SaltStack Config によって LDAP サーバからユーザーとグループのサンプル リストが取得されるため、正しい構成パラメータを入力したかどうかを確認できます。
  • [ログイン] - ユーザーが SaltStack Config ログイン フォームに認証情報を入力すると、バックエンド サーバは、その時点でのデータベース内の一致を確認します。その後、複数ステップの検索プロセスが開始され、一致が見つかるとユーザーが認証されます。この検索プロセスを使用した場合、有効なグループ内の有効なユーザーは、最初にログインするまで [ロール] ワークスペースに表示されません。
  • [バックグラウンド タスク] - SaltStack Config は定期的にバックグラウンド ジョブを実行することにより、リンクされている各グループとユーザーをディレクトリ サービス接続内で検索して存在を確認します。グループまたはユーザーが削除されている場合、バックエンド サーバはデータベース内のそのリンクを無効にします。
  • [アーカイブされたグループとユーザー] - ディレクトリ サービス接続から削除したすべてのグループは、アーカイブされます。これらのグループは非アクティブ化され、ユーザーはログインできませんが、[ロール] ワークスペースには引き続き表示され、選択できます。これは、以前は [ロール] ワークスペースに表示されていた削除済みのユーザーにも適用されます。
  • [ネストされたグループ] - ネストされたグループを操作する場合は、親グループを有効にするとすべての子グループもデフォルトで有効になります。

LDAP 接続の構成

LDAP を構成するには、最初に接続を作成し、次に特定の LDAP ユーザーおよびグループについて SaltStack Config の認証を有効にします。グループまたはユーザーを有効にすると、ロールベースのアクセス制御 (RBAC) 設定を定義できます。

Active Directory や OpenLDAP など、ディレクトリ サービスに合わせてカスタマイズされたデフォルトの設定を使用したフィールドへの事前入力を選択できます。

注: 次の手順は、LDAP システム全体のレイアウトを理解している経験豊富な LDAP 管理者または Active Directory 管理者が実行する必要があります。詳細は管理者に確認してください。

LDAP ディレクトリ サービスを設定するには、次の手順に従います。

  1. (オプション)LDAP を構成する前に、サードパーティ製ツールを使用した接続とクエリのテストが役立つことがあります。Active Directory ユーザーの場合は、LDP または ADSI Edit を使用できます。Linux ユーザーの場合、推奨されるツールは ldapsearch です。
    注: これらのツールを使用したテストの詳細については、サポート センターの How to verify and troubleshoot a Directory Service connectionを参照してください。
  2. サイド メニューで [管理] >[認証] の順にクリックします。
  3. [作成] をクリックします。
  4. [構成タイプ] メニューの [LDAP] を選択します。
  5. (オプション)[設定] で、[デフォルトの事前入力] をクリックし、ドロップダウンからディレクトリ サービスを選択します。

    選択に基づいてデフォルトのエントリがポピュレートされます。ただし、[ユーザー検索 DN] などの特定のエントリは、完全にはポピュレートされません。エントリがディレクトリ サービスのスキーマと一致していることを確認し、プレースホルダ テキストをサービスの適切な値に置き換える必要があります。

  6. LDAP 接続の情報を入力または確認します。

    [基本]

    フィールド 説明
    名前 LDAP 接続の名前。これは表示専用の名前であるため、この認証バックエンドを他の認証バックエンドと区別しやすい任意の名前を入力することを推奨します。
    ホスト FQDN または IP アドレスのいずれかの形式による LDAP ホスト サーバ アドレス。
    ポート LDAP サーバが構成されているポート。デフォルトは、暗号化されない LDAP の場合は 389、SSL 上の LDAP の場合は 636 です。
    バックグラウンド同期 SaltStack Config は、ここで定義された一定の間隔(分)で、すべてのユーザーとグループを認証バックエンドに対して検証します。
    SSL
    SSL の有効化
    RaaS サーバ設定で指定された証明書を使用して、SSL (Secure Sockets Layer) 経由で LDAP サーバに接続する場合に選択します。構成が指定されていない場合は、システム証明書ストアが SSL 接続の検証に使用されます。RaaS サーバの設定の詳細については、『Installing and Configuring SaltStack Config』ガイドの Set up SSL certificatesを参照してください。
    重要: ベスト プラクティスとして、[SSL の有効化] を選択します。このオプションが選択解除されたままの場合、 SaltStack Config では安全でない接続を使用して情報がプレーン テキストで送信されます。
    証明書の検証
    選択すると、接続時に SSL 証明書が検証されます。自己署名証明書を使用する場合などに、検証をスキップするためには選択解除のままにします(本番環境では推奨されません)。

    [認証]

    フィールド 説明
    認証ベース DN

    基本 LDAP 識別名これは、グループとユーザーのクエリを実行する場所です(例:DC=sse,DC=example,DC=com)。

    注: LDAP 詳細ページには、次に示すように [Person Object Class][Account Attribute Name][Group Class][Group Attribute Name]、および [Sync Scheduling] 用の個別の入力フィールドがあります。したがって、[ベース DN] フィールドにはこれらのオブジェクトを含めないでください。
    管理バインド DN LDAP サーバに対して構成される管理者 DN。SaltStack Config では、これを使用して、ユーザーとグループの検索に使用するディレクトリに対する認証を行います。構文 cn=Administrator,cn=Users,dc=example,dc=com に基づいて入力します。
    管理バインド DN パスワード

    管理者の個別のパスワード。

    これは、暗号化されてデータベースに保存されます。プレーンテキストで保存されません。

    認証バインド DN フィルタ

    フィルタが適用され、特定のユーザーが選択されます。この検索の結果は、SaltStack Config がディレクトリにバインドする際や、ユーザーに SaltStack Config へのアクセス権を付与する際に使用するユーザー DN です。これは、1 回の検索で返される結果の数を制限するときに有用です。

    注: フィルタ構文は非常に複雑になる可能性があるため、ベスト プラクティスとしては、このフィールドに入力する前に LDP、 ldapsearch などのツールを使用して入力を検証し、必要な調整を行います。

    次のサンプル フィルタは、DevOps またはレベル II グループに属する、指定されたユーザー名に一致するアカウントのみを返します。

    (&(objectclass=user)(sAMAccountName={username})(|(memberOf=CN=DevOps,OU=Groups,OU=TestCompanyHQ,DC=adtest,DC=com)(memberOf=LevelII,OU=Groups,DC=adtest,DC=com)))

    事前入力済みのデフォルト値を使用する場合は、プレースホルダ テキストを、実際のディレクトリ サービスに対応する正しい値に置き換える必要があります。

    注: フォレスト構造を構成する場合、このフィールドは空白のままにします。
    リモートの一意の ID 属性名 一意のエントリを識別するために使用される値の名前。これは、すべてのエントリに使用される一意の ID 属性です。Active Directory では、これは ObjectGUID です。

    [グループ]

    フィールド 説明
    グループ検索 DN グループの検索ベース。たとえば Active Directory では、これを cn=Groups,dc=example,dc=com になります。グループを検索する際のディレクトリ内の場所を示します。次の [グループ検索範囲] と組み合わせて使用します。
    グループ検索範囲

    [グループ検索 DN] で指定されたベースからのディレクトリ検索の深さを示します。次の 4 つの値のいずれかを指定できます。

    baseObject
    値 0。一般的には base と指定します。これを使用すると、このオブジェクトのみが検索され、他のオブジェクトは検索されません。
    singleLevel
    値 1。一般的には one と指定します。これを使用すると、ベース エントリの直接的な子のみが一致と見なされます。
    wholeSubtree
    値 2(ldap3 では SUBTREE)は、 sub とも呼ばれます。これを使用すると、ベースおよびその下位を任意の深さで検索できます。
    subordinateSubtree
    値 3。一般的には subordinates と指定します。これは wholeSubtree と同じですが、ベースの検索エントリが無視されます。
    グループ検索 DN フィルタ ディレクトリからグループを抽出するための検索フィルタ。これは通常 (objectClass=group) ですが、一部の Active Directory 構成では (objectCategory=group) になることもあります。グループ クラスに加えて使用することで、より詳細な指定ができます。
    グループ クラス groupOfNames など、グループを定義するために使用されるオブジェクト クラス名。
    グループ名属性 グループ名に使用する属性の名前。複数値ではなく単一値の属性を入力します。
    グループ メンバーシップ属性 グループ名を含むユーザー エントリ内の属性の名前(例:memberOf)。

    [ユーザー]

    フィールド 説明
    ユーザー検索 DN ユーザーの検索ベース。たとえば、Active Directory では cn=Users,dc=example,dc=com、他のディレクトリ サービスでは cn=people,cn=accounts,dc=example,dc=com になります。ユーザーを検索する際のディレクトリ内の場所を示します。次の [ユーザー検索範囲] と組み合わせて使用します。
    ユーザー検索範囲 [ユーザー検索 DN] で指定されたベースからのディレクトリ検索の深さを示します。次の 4 つの値のいずれかを指定できます。[グループ検索範囲] で説明されている 4 つの値を参照してください。
    ユーザー検索 DN フィルタ ディレクトリからユーザーを抽出するための検索フィルタ。これは通常 (objectClass=person) ですが、一部の Active Directory 構成では (objectCategory=user) になることもあります。
    Person クラス ログインを有効にするユーザーを含むディレクトリ サービスのクラス名。ほとんどのシステム(Active Directory を含む)では person が使用されますが、一部のシステムでは user または inetOrgPerson が使用されます。
    ユーザー ID 属性 ユーザー アカウント属性の一意の名前。Active Directory の場合、sAMAccountName。その他のサービスでは、多くの場合、uid または memberUid が使用されます。
    ユーザー メンバーシップ属性 ユーザー名を含むグループ エントリ内の属性の名前。考えられる例には、memberuniquemember があります。
  7. 保存せずに設定をプレビューするには、[プレビューの更新] をクリックします。

    接続のために選択されたユーザーとグループがプレビュー ウィンドウに表示されます。必要に応じて [グループ] または [ユーザー] タブを選択すると、サービスに関連付けられているユーザーとグループをプレビューできます。

    接続を正常にプレビューできない場合は、トラブルシューティングを参照してください。

  8. [保存] をクリックします。

    LDAP 構成が保存されます。構成が適切かどうかを確認するには、テスト ユーザー アカウントから SaltStack Config へのログインを試行します。ログインできない場合は、トラブルシューティングを参照してください。

    注: LDAP 構成の場合、指定されたグループとユーザーを含む接続設定が SaltStack Config によって保存されます。ディレクトリ全体が同期されるのではなく、定義した範囲内のグループとユーザーのみが取得されます。この機能の詳細については、 認証プロセスを参照してください。

    時間の経過につれて、LDAP ディレクトリの更新または再同期が必要になることがあります。たとえば、新しいユーザーを追加して SaltStack Config で有効にする場合は、ディレクトリを更新する必要があります。