36.14. Using Ansible to ensure an IdM user can log in to an IdM client with two certificates
If you want an Identity Management (IdM) user that normally logs in to IdM with a password to authenticate to a specific IdM client by using a smart card only, you can create an ID view that requires certification for the user on that client.
Complete this procedure to use the ansible-freeipa idoverrideuser module to:
- Apply an ID view to host01 named idview_for_host01.
- Ensure, in idview_for_host01, the presence of a user ID override for idm_user with two certificates.
Prerequisites
You have configured your Ansible control node to meet the following requirements:
- You are using Ansible version 2.15 or later.
-
You have installed the
ansible-freeipapackage. - The example assumes that in the ~/MyPlaybooks/ directory, you have created an Ansible inventory file with the fully-qualified domain name (FQDN) of the IdM server.
-
The example assumes that the secret.yml Ansible vault stores your
ipaadmin_passwordand that you have access to a file that stores the password protecting the secret.yml file.
-
The target node, that is the node on which the
freeipa.ansible_freeipamodule is executed, is part of the IdM domain as an IdM client, server or replica.+
---
- name: Ensure both local user and IdM user have access to same files
hosts: ipaserver
become: false
gather_facts: false
tasks:
- name: Ensure idview_for_host1 is applied to host01.idm.example.com
ipaidview:
ipaadmin_password: "{{ ipaadmin_password }}"
name: *idview_for_host01*
host: *host01.idm.example.com*
- name: Ensure an IdM user is present in ID view with two certificates
ipaidoverrideuser:
ipaadmin_password: "{{ ipaadmin_password }}"
idview: *idview_for_host01*
anchor: *idm_user*
certificate:
- "{{ lookup('file', 'cert1.b64', rstrip=False) }}"
- "{{ lookup('file', 'cert2.b64', rstrip=False) }}"
+ The rstrip=False directive causes the white space not to be removed from the end of the looked-up file.
+ . Save the file.
+ . Run the playbook. Specify the playbook file, the file storing the password protecting the secret.yml file, and the inventory file:
+
$ ansible-playbook --vault-password-file=password_file -v -i inventory ensure-idmuser-present-in-idview-with-certificates.yml