j1ngk3.sssd_ldap

ビルドステータス Galaxyロール

lae.system_ldap

LDAP対応のActive Directoryサーバーに対して、システムレベルのLDAP認証のためにSSSDをインストールおよび設定します。

ロール変数

設定可能なロール変数のリストはdefaults/main.ymlを参照してください。ほとんどのユーザーにはデフォルトの設定で十分ですが、このセクションでは定義が必要な変数のみを説明します。

LDAP/ADサーバーと通信するために以下の設定が必要です:

変数 説明
system_ldap_domain LDAP この設定/ドメインを識別するためにsssdが使用するラベル。
system_ldap_search_base OU=Idol Schools,DC=Aikatsu,DC=net LDAPユーザー操作を行うために使用するデフォルトのベースDN。
system_ldap_uris - ldaps://ldap-tyo.example.aikatsu.net:636
- ldaps://ldap-ngo.example.aikatsu.net:636
sssdが接続すべきLDAPサーバーのURIリスト。
system_ldap_bind_dn CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net LDAP操作を行うために使用するデフォルトのバインドDN。
system_ldap_bind_password sunrise デフォルトのバインドDNの認証トークン。現在、クリアテキストのパスワードのみがサポートされています。
system_ldap_access_filter_groups - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net 現在のホストにアクセスを許可されたグループDNのリスト。
system_ldap_access_unix_groups - operations 実質的にはsystem_ldap_access_filter_groupsと同じですが、UNIXグループ名(通常はCN)を使用します。
system_ldap_access_filter_users - hoshimiya.ichigo
- nikaidou.yuzu
現在のホストにアクセスを許可されたユーザー名のリスト(デフォルトではフィルタ(sAMAccountName=%s)に渡されます)。
system_ldap_sudo_groups - operations 現在のホストでsudoの使用を許可するために設定するグループのリスト。
system_ldap_sudo_users - hoshimiya.ichigo 現在のホストでsudoの使用を許可するために設定するユーザーのリスト。

例のプレイブック

以下は、マルチテナントプレイブックで通常使用するものです:

---
- hosts: all
  user: ansible
  roles:
    - lae.system_ldap
  become: True

テストディレクトリにも例のプレイブックがあります。

拡張使用

このセクションでは、上記のコードブロックのプレイブックはsystem_ldap.ymlです。 以下のようなプレイブックのレイアウトを見てみましょう:

- system_ldap.yml
- inventory
- group_vars/
    - all/
        - main.yml
    - starlight/
        - main.yml
- host_vars/
    - research-node01
- roles/
    - requirements.yml

このレイアウトでは、ホストグループまたはホストごとにアクセス制御をグループ化できます。 すべてのホストにわたって設定したい変数がいくつかありますは、group_vars/all/main.yml(またはディレクトリを使わない場合はgroup_vars/all)に設定できます:

---
system_ldap_domain: aikatsu.net
system_ldap_bind_dn: CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_bind_password: sunrise
system_ldap_search_base: OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_uris:
  - ldaps://ldap-tyo.example.aikatsu.net:636
  - ldaps://ldap-ngo.example.aikatsu.net:636
system_ldap_access_filter_groups:
  - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_access_filter_users: []
system_ldap_access_unix_groups:
  - operations
system_ldap_sudo_groups:
  - operations
system_ldap_sudo_users: []

ここでは、検索ユーザーアカウントとパスワード(system_ldap_bind_*)を使用して、SSL経由でLDAPサーバーと同期し、"operations" グループが認証できるようにし、ルート権限を与えています。

starlight グループの変数ファイルは次のようになります:

---
system_ldap_allow_passwordauth_in_sshd: true
system_ldap_access_filter_users:
  - hoshimiya.ichigo
system_ldap_sudo_users:
  - hoshimiya.ichigo

これにより、ユーザー名hoshimiya.ichigostarlightホストグループ内のマシンにログインでき、sudoを使用することができます。上記の変数は、LDAP対応のADサーバーからのsAMAccountName値と一致します。

グループを指定することもできますが、グループフィルタ変数に完全なDNを提供する必要があります。他の変数については、CNを使用できます。例えば:

system_ldap_access_filter_groups:
  - CN=operations,OU=Security Groups,OU=Global,OU=Idol Schools,DC=Aikatsu,DC=net
  - CN=starlight-students,OU=Security Groups,OU=Starlight Academy,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_access_unix_groups:
  - operations
  - starlight-students
system_ldap_sudo_groups:
  - operations

ここではstarlight-studentsLDAPグループを追加しますが、ログインのみを許可します。

開発

最初にこのリポジトリをクローンし、ブランチまたはフォークを作成し、変更を行い、コミットしてプルリクエストを提出します。

ansible vaultの変更を追跡するために、.gitconfigをGitの設定に含めます:

echo -e "[include]\n\tpath = ../.gitconfig" >> .git/config

テスト

vagrant box add debian/stretch64
vagrant up
vagrant provision

ライセンス

MIT

プロジェクトについて

Install and configure SSSD for system-level LDAP authentication

インストール
ansible-galaxy install j1ngk3.sssd_ldap
ライセンス
Unknown
ダウンロード
735
所有者