Red Hat Training

A Red Hat training course is available for RHEL 8

57.5. Utilização de um livro de jogo possível para permitir que usuários, grupos, anfitriões ou grupos anfitriões da IdM criem uma tabela de chaves de um serviço

Uma tabela de chaves é um arquivo contendo pares de chaves principais Kerberos e chaves criptografadas. Os arquivos keytab são comumente usados para permitir a autenticação automática de scripts usando Kerberos, sem exigir interação humana ou acesso a senha armazenada em um arquivo de texto simples. O script é então capaz de usar as credenciais adquiridas para acessar arquivos armazenados em um sistema remoto.

Como administrador de Gerenciamento de Identidade (IdM), você pode permitir que outros usuários recuperem ou mesmo criem uma tabela de chaves para um serviço executado no IdM. Ao permitir que usuários específicos e grupos de usuários criem keytabs, você pode delegar a administração do serviço a eles sem compartilhar a senha do administrador do IdM. Esta delegação proporciona uma administração de sistema mais fina.

Esta seção descreve como você pode permitir que usuários específicos de IdM, grupos de usuários, hosts e grupos de hosts criem uma tabela de chaves para o serviço HTTP rodando em um cliente IdM. Especificamente, descreve como você pode permitir que o usuário do IdM user01 crie uma keytab para o serviço HTTP rodando em um cliente IdM chamado client.idm.example.com.

Pré-requisitos

  • Você sabe a senha do administrador da IdM.
  • Você instalou o pacote ansible-freeipa no controlador Ansible.
  • Você cadastrou o serviço HTTP para a IdM.
  • O sistema para hospedar o serviço HTTP é um cliente IdM.
  • Os usuários e grupos de usuários do IdM que você deseja permitir a criação da tabela de chaves existem no IdM.
  • Os anfitriões e grupos anfitriões do IdM que você deseja permitir criar o keytab existem no IdM.

Procedimento

  1. Criar um arquivo de inventário, por exemplo inventory.file:

    $ touch inventory.file
  2. Abra o inventory.file e defina o servidor IdM que você deseja configurar na seção [ipaserver]. Por exemplo, para instruir o Ansible a configurar server.idm.example.com, entre:

    [ipaserver]
    server.idm.example.com
  3. Faça uma cópia do arquivo do livro de jogo /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present.yml. Por exemplo:

    $ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present-copy.yml
  4. Abrir o arquivo /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present-copy.yml Um possível arquivo de playbook para edição.
  5. Adapte o arquivo alterando o seguinte:

    • A senha do administrador da IdM especificada pela variável ipaadmin_password.
    • O nome de seu cliente IdM no qual o serviço HTTP está sendo executado. No exemplo atual, ele é HTTP/client.idm.example.com
    • Os nomes dos usuários da IdM que estão listados na seção allow_create_keytab_user:. No exemplo atual, é user01.
    • Os nomes dos grupos de usuários da IdM que estão listados na seção allow_create_keytab_group:.
    • Os nomes dos anfitriões da IdM que estão listados na seção allow_create_keytab_host:.
    • Os nomes dos grupos anfitriões da IdM que estão listados na seção allow_create_keytab_hostgroup:.
    • O nome da tarefa especificada pela variável name na seção tasks.

      Depois de ser adaptado para o exemplo atual, o arquivo copiado tem este aspecto:

    ---
    - name: Service member allow_create_keytab present
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Service HTTP/client.idm.example.com members allow_create_keytab present for user01
        ipaservice:
          ipaadmin_password: Secret123
          name: HTTP/client.idm.example.com
          allow_create_keytab_user:
          - user01
          action: member
  6. Salvar o arquivo.
  7. Execute a Pasta de reprodução possível especificando o arquivo da Pasta de reprodução e o arquivo do inventário:

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present-copy.yml

Etapas de verificação

  1. SSH para um servidor IdM como um usuário IdM que tem o privilégio de criar um keytab para o serviço HTTP particular:

    $ ssh user01@server.idm.example.com
    Password:
  2. Use o comando ipa-getkeytab para gerar a nova tabela de chaves para o serviço HTTP:

    $ ipa-getkeytab -s server.idm.example.com -p HTTP/client.idm.example.com -k /etc/httpd/conf/krb5.keytab

    A opção -s especifica um servidor do Centro de Distribuição de Chaves (KDC) para gerar a tabela de chaves.

    A opção -p especifica o principal cuja chaveta você deseja criar.

    A opção -k especifica o arquivo keytab para anexar a nova chave. O arquivo será criado se ele não existir.

Se o comando não resultar em um erro, você criou com sucesso uma tabela de chaves de HTTP/client.idm.example.com como user01.