创建 jaas-activedirectory.conf 文件

创建一个 jaas-activedirectory.conf文件,如下所示:

# vi /etc/rundeck/jaas-activedirectory.conf
  activedirectory {
    com.dtolabs.rundeck.jetty.jaas.JettyCachingLdapLoginModule required
    debug="true"
    contextFactory="com.sun.jndi.ldap.LdapCtxFactory"
    providerUrl="ldap://IP_DOMAIN_CONTROLER:389"
    bindDn="CN=YOUR_BIND_USER,OU=Rundeck,OU=Application,DC=onitroad,DC=LOCAL"
    bindPassword="XXXXXXXXXXXXXXX"
    authenticationMethod="simple"
    forceBindingLogin="true"
    userBaseDn="DC=onitroad,DC=LOCAL"
    userRdnAttribute="sAMAccountName"
    userIdAttribute="sAMAccountName"
    userPasswordAttribute="unicodePwd"
    userObjectClass="user"
    roleBaseDn="OU=Rundeck,OU=Application,DC=onitroad,DC=LOCAL"
    roleNameAttribute="cn"
    roleMemberAttribute="member"
    roleObjectClass="group"
    cacheDurationMillis="300000"
    reportStatistics="true";
};

providerUrl:域控制器的 IP 地址或者 FQDN
bindDn:LDAP 绑定用户专有名称
bindPassword: LDAP 绑定用户的密码
userBaseDn:用作查找用户的搜索库的专有名称。

roleBaseDn:rundeck 安全组所在的 OU。

最后,更改文件的所有权并设置正确的权限:

# chown rundeck:rundeck /etc/rundeck/jaas-activedirectory.conf
# chmod 640 /etc/rundeck/jaas-activedirectory.conf

编辑 /etc/rundeck/profile

我们需要将路径添加到 jaas-activedirectory.conf文件并将 Dloginmodule.name值设置为 activedirectory
修改/etc/rundeck/profile如下:

# vi /etc/rundeck/profile
############## Before #####################
RDECK_JVM="-Djava.security.auth.login.config=$JAAS_CONF \
           -Dloginmodule.name=$LOGIN_MODULE \
############# After #######################

RDECK_JVM="-Djava.security.auth.login.config=/etc/rundeck/jaas-activedirectory.conf \
           -Dloginmodule.name=activedirectory \
如何将 Rundeck 与 Active Directory 身份验证集成

创建 /etc/rundeck/rundeck_users.aclpolicy 文件

我们需要为 rundeck_usersAD 安全组创建一个名为 rundeck_users.aclpolicy的 ACL 策略文件,该文件将在 Rundeck 中只读访问

# vi /etc/rundeck/rundeck_users.aclpolicy
description: Standard Users project level access control.
context:
  project: '.*' # all projects
for:
  resource:
    - equals:
        kind: job
      allow: [read] # allow read jobs
    - equals:
        kind: node
      allow: [read] # allow refresh node sources
    - equals:
        kind: event
      allow: [read] # allow read/read events
  adhoc:
    - allow: [read] # allow read adhoc jobs
  job:
    - allow: [read] # allow read of all jobs
  node:
    - allow: [read] # allow read for nodes
by:
  group: rundeck_users

--

description: A
context:
  application: 'rundeck'
for:
  resource:
    - equals:
        kind: project
      allow: [read] # allow read of projects
    - equals:
        kind: system
      allow: [read] # allow read executions
    - equals:
        kind: system_acl
      allow: [read] # allow reading system ACL files
  project:
    - match:
        name: '.*'
      allow: [read] # allow read access of all projects or use 'admin'
  project_acl:
    - match:
        name: '.*'
      allow: [read] # allow reading project-specific ACL files
  storage:
    - allow: [read] # allow read access for /ssh-key/* storage content

by:
  group: rundeck_users

更改所有权并设置“rundeck_users.aclpolicy”的正确权限如下:

chown rundeck:rundeck /etc/rundeck/rundeck_users.aclpolicy
chmod 640 /etc/rundeck/rundeck_users.aclpolicy

什么是Rundeck?

Rundeck 是一个开源软件作业调度程序和运行手册自动化系统,用于跨开发和生产环境自动化日常流程。
它结合了任务调度、多节点命令执行、工作流编排并记录发生的一切。

默认情况下,Rundeck 带有默认的本地用户帐户。
Rundeck 支持 LDAP、Active Directory、PAM 和 Pre-Auth 方法。
在本教程中,我们将展示如何配置基于 LDAP/AD 的身份验证。

本教程假设我们已经安装了 Rundeck,如果我们还没有安装,我们可以查看本教程:如何在 CentOS 7/RHEL 7 上安装和配置 Rundeck

在 Active Directory 中创建绑定用户和安全组

在将 Rundeck 与 Active Directory 集成之前,我们需要创建一个绑定用户和两个名为 rundeck_administratorsrundeck_users的安全组。
最后,在继续之前将适当的用户添加到这些组中。

重启 Rundeck

最后重启 Rundeck 守护进程:

# systemctl restart rundeckd

创建 /etc/rundeck/rundeck_administrators.aclpolicy 文件

让我们为 rundeck_administratorsAD 安全组创建一个名为 rundeck_administrators.aclpolicy的 ACL 策略文件,该文件将在 Rundeck 中具有管理员访问权限

# vi /etc/rundeck/rundeck_administrators.aclpolicy
description: Administrators, all access.
context:
  project: '.*' # all projects
for:
  resource:
    - equals:
        kind: job
      allow: [create] # allow create jobs
    - equals:
        kind: node
      allow: [read,create,update,refresh] # allow refresh node sources
    - equals:
        kind: event
      allow: [read,create] # allow read/create events
  adhoc:
    - allow: [read,run,runAs,kill,killAs] # allow running/killing adhoc jobs
  job:
    - allow: [create,read,update,delete,run,runAs,kill,killAs,toggle_schedule] # allow create/read/write/delete/run/kill of all jobs
  node:
    - allow: [read,run] # allow read/run for nodes
by:
  group: rundeck_administrators

--

description: Administrators, all access.
context:
  application: 'rundeck'
for:
  resource:
    - equals:
        kind: project
      allow: [create] # allow create of projects
    - equals:
        kind: system
      allow: [read,enable_executions,disable_executions,admin] # allow read of system info, enable/disable all executions
    - equals:
        kind: system_acl
      allow: [read,create,update,delete,admin] # allow modifying system ACL files
    - equals:
        kind: user
      allow: [admin] # allow modify user profiles
  project:
    - match:
        name: '.*'
      allow: [read,import,export,configure,delete,admin] # allow full access of all projects or use 'admin'
  project_acl:
    - match:
        name: '.*'
      allow: [read,create,update,delete,admin] # allow modifying project-specific ACL files
  storage:
    - allow: [read,create,update,delete] # allow access for /ssh-key/* storage content

by:
  group: rundeck_administrators

更改所有权并设置“rundeck_administrators.aclpolicy”的正确权限如下:

chown rundeck:rundeck /etc/rundeck/rundeck_administrators.aclpolicy
chmod 640 /etc/rundeck/rundeck_administrators.aclpolicy

编辑 /var/lib/rundeck/exp/webapp/WEB-INF/web.xml 文件

通过编辑文件/var/lib/rundeck/exp/webapp/WEB-INF/web.xml来创建新角色

# vi /var/lib/rundeck/exp/webapp/WEB-INF/web.xml
<security-role>
    <role-name>rundeck_administrators</role-name>
</security-role>
<security-role>
     <role-name>rundeck_users</role-name>
</security-role>
日期:2020-06-02 22:19:02 来源:oir作者:oir