OSVDC Series: IdM Integration of oVirt 3.6 and FreeIPA 4.3 - rharmonson/richtech GitHub Wiki

OSVDC: IdM Integration of oVirt 3.6 and FreeIPA 4.3

Published: DRAFT

Article 16 of the Open Source Virtual Data Center Series


Published September 28, 2016


Prerequisites

The primary components needed prior to proceeding through this article are:

  1. oVirt 3.6 Hosted-engine Appliance
  2. Dogtag Root Certificate Authority
  3. FreeIPA 4.3 Installation on Fedora 24 Minimal
  4. FreeIPA 4.3 client on Fedora 24 Workstation

Note that a FreeIPA Master used as the Root CA would work as well.

Process

  1. Obtain Kerberos token
  2. Validate LDAP service records
  3. Create group "svcaccounts"
  4. Create password policy
  5. Create user "svcldapbind"
  6. Add user into group
  7. Set user password
  8. Obtain Root CA certificate
  9. Install and setup ovirt-engine-extension-aaa-ldap
  10. Restart the Hosted-engine

Kerberos Token

Begin by using a terminal or SSH to FreeIPA client, then obtain a Kerberos token for "admin."

john@wsai ~]$ kinit admin
Password for [email protected]: 
[john@wsai ~]$

Results

[john@wsai ~]$ klist
Ticket cache: KEYRING:persistent:1000:1000
Default principal: [email protected]

Valid starting       Expires              Service principal
09/26/2016 12:25:09  09/27/2016 12:25:03  krbtgt/[email protected]
[john@wsai ~]$ 

LDAP Service Records

Verify DNS and service records are resolving.

[john@wsai ~]$ dig _ldap._tcp.mydomain.net SRV

Results

; <<>> DiG 9.10.4-P2-RedHat-9.10.4-1.P2.fc24 <<>> _ldap._tcp.mydomain.net SRV
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16270
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_ldap._tcp.mydomain.net. IN  SRV

;; ANSWER SECTION:
_ldap._tcp.mydomain.net. 86400 IN SRV 0 100 389 ds2.mydomain.net.
_ldap._tcp.mydomain.net. 86400 IN SRV 0 100 389 ds1.mydomain.net.

;; AUTHORITY SECTION:
mydomain.net. 86400   IN      NS      ds2.mydomain.net.
mydomain.net. 86400   IN      NS      ds1.mydomain.net.

;; ADDITIONAL SECTION:
ds1.mydomain.net. 1200 IN     A       192.168.10.11
ds2.mydomain.net. 1200 IN     A       192.168.10.12

;; Query time: 0 msec
;; SERVER: 192.168.10.11#53(192.168.10.11)
;; WHEN: Mon Sep 26 13:09:08 PDT 2016
;; MSG SIZE  rcvd: 214

[john@wsai ~]$ 

Group svcaccounts

Create a new group "svcaccounts" for use by service accounts.

[john@wsai ~]$ ipa group-add svcaccounts --desc="Service Account Group"
-------------------------
Added group "svcaccounts"
-------------------------
  Group name: svcaccounts
  Description: Service Account Group
  GID: 261200001
[john@wsai ~]$ 

Password Policy

Create a new password policy for group "svcaccounts" using a password life of 365 days, password history of five, password length of 16 charactars, permit only 10 failures within one hour then lock the account for fifteen minutes. The 365 days is too long, really, so set it to meet your organization's password requirements.

[john@wsai ~]$ ipa pwpolicy-add svcaccounts --maxlife=365 --minlife=4 --history=5 --minlength=16 --maxfail=10 --failinterval=3600 --lockouttime=900 --priority=1
  Group: svcaccounts
  Max lifetime (days): 365
  Min lifetime (hours): 4
  History size: 5
  Min length: 16
  Priority: 1
  Max failures: 10
  Failure reset interval: 3600
  Lockout duration: 900
[john@wsai ~]$ 

You can upate the pasword policy settings using pwpolicy-mod.

Create user account

Create the user account aka service account "svcldapbind."

[john@wsai ~]$ ipa user-add svcldapbind --first=svcldapbind --last=SVCAccount --password
Password: 
Enter Password again to verify: 
------------------------
Added user "svcldapbind"
------------------------
  User login: svcldapbind
  First name: svcldapbind
  Last name: SVCAccount
  Full name: svcldapbind SVCAccount
  Display name: svcldapbind SVCAccount
  Initials: sS
  Home directory: /home/svcldapbind
  GECOS: svcldapbind SVCAccount
  Login shell: /bin/sh
  Kerberos principal: [email protected]
  Email address: [email protected]
  UID: 261200003
  GID: 261200003
  Password: True
  Member of groups: ipausers
  Kerberos keys available: True
[john@wsai ~]$ 

Obtain user distinguished name (DN) using user-show and note the first value for "dn:" to use later.

[john@ds1 ~]$ ipa user-show svcldapbind --all
  dn: uid=svcldapbind,cn=users,cn=accounts,dc=mydomain,dc=net
  User login: svcldapbind
  First name: svcldapbind
  Last name: SVCAccount
  Full name: svcldapbind SVCAccount
  Display name: svcldapbind SVCAccount
  Initials: sS
  Home directory: /home/svcldapbind
  GECOS: svcldapbind SVCAccount
  Login shell: /bin/sh
  Kerberos principal: [email protected]
  Email address: [email protected]
  UID: 261200003
  GID: 261200003
  Account disabled: False
  Preserved user: False
  Password: True
  Member of groups: ipausers, svcaccounts
  Kerberos keys available: True
  ipauniqueid: 8d680e3d-843c-11e6-a4da-001a4a160321
  krbextradata: AALDjOlXa3GlbWluZEBJTlRSQU5FVC5IQVJNT05TT15xTkVUAA==
  krblastpwdchange: 20160926210155Z
  krblastsuccessfulauth: 20160926210155Z
  krbloginfailedcount: 0
  krbpasswordexpiration: 20170926210155Z
  krbpwdpolicyreference: cn=svcaccounts,cn=MYDOMAIN.NET,cn=kerberos,dc=mydomain,dc=net
  krbticketflags: 128
  mepmanagedentry: cn=svcldapbind,cn=groups,cn=accounts,dc=mydomain,dc=net
  objectclass: ipaSshGroupOfPubKeys, ipaobject, mepOriginEntry, person, top, ipasshuser,
               inetorgperson, organizationalperson, krbticketpolicyaux, krbprincipalaux, inetuser,
               posixaccount

Add to Group

To apply the password policy, add user svcldapbind to group svcaccounts.

[john@wsai ~]$ ipa group-add-member svcaccounts --user=svcldapbind
  Group name: svcaccounts
  Description: Service Account Group
  GID: 261200001
  Member users: svcldapbind
-------------------------
Number of members added 1

Set Password

[john@wsai ~]$ kinit svcldapbind
Password for [email protected]: 
Password expired.  You must change it now.
Enter new password: 
Enter it again: 

Nifty password generator found at the URL below, but note it does not support SSL.

http://passwordsgenerator.net/


Root CA Certificate

Obtain the public certificate file for your Root CA. You may find the ovirt-engine-extension-aaa-ldap README to be very helpful.

https://github.com/oVirt/ovirt-engine-extension-aaa-ldap

I am using an external Root CA using Dogtag. As such I use the following syntax to export the certificate.

[root@ca ~]# pki ca-cert-show 1 --output rootca.pem

Results

-----------------
Certificate "0x1"
-----------------
  Serial Number: 0x1
  Issuer: CN=CA Signing Certificate,O=mydomain.net Security Domain
  Subject: CN=CA Signing Certificate,O=mydomain.net Security Domain
  Status: VALID
  Not Before: Wed Sep 07 05:56:18 PDT 2016
  Not After: Sun Sep 07 05:56:18 PDT 2036

Alternatively, you may use

[root@ca ~]# pki ca-cert-show "CA Signing Certificate" --output rootca.pem

After obtaining the Root CA certificate, connect to the oVirt engine and and copy the PEM certificate file.

[john@ca ~]$ scp rootca.pem [email protected]:~/
[email protected]'s password: 
rootca.pem                                                             100% 1404     1.4KB/s   00:00    

In preparation for setup, move the file to /tmp. Note the contents of /tmp are lost on shutdown.


Note

Update oVirt Hosted-engine to resolve against FreeIPA DNS hosts, otherwise, service record lookups will fail. However, if your FreeIPA hosts are managed by the oVirt Hosted-engine, you may need to update the Hosted-engine's /etc/hosts file to resolve cluster nodes and other dependencies in the absence of DNS.

TEST!


Install the LDAP extenstion package.

[root@eng ~]# yum install ovirt-engine-extension-aaa-ldap-setup

Results

=====================================================================================================
 Package                                    Arch        Version            Repository           Size
=====================================================================================================
Installing:
 ovirt-engine-extension-aaa-ldap-setup      noarch      1.1.4-1.el7        ovirt-3.6            35 k
Installing for dependencies:
 ovirt-engine-extension-aaa-ldap            noarch      1.1.4-1.el7        ovirt-3.6           105 k
 python-ldap                                x86_64      2.4.15-2.el7       base                159 k
 unboundid-ldapsdk                          noarch      3.0.0-1.el7        centos-ovirt36      1.7 M

Transaction Summary
=====================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 1.9 M
Installed size: 2.7 M
Is this ok [y/d/N]: 

Execute the ovirt-engine-extension-aaa-ldap interactive setup.

[root@eng ~]# ovirt-engine-extension-aaa-ldap-setup

Results

[root@eng ~]# ovirt-engine-extension-aaa-ldap-setup
[ INFO  ] Stage: Initializing
[ INFO  ] Stage: Environment setup
          Configuration files: ['/etc/ovirt-engine-extension-aaa-ldap-setup.conf.d/10-packaging.conf']
          Log file: /tmp/ovirt-engine-extension-aaa-ldap-setup-20160926230431-eskjpo.log
          Version: otopi-1.4.2 (otopi-1.4.2-1.el7.centos)
[ INFO  ] Stage: Environment packages setup
[ INFO  ] Stage: Programs detection
[ INFO  ] Stage: Environment customization
          Welcome to LDAP extension configuration program
          Please specify profile name that will be visible to users: mydomain.net
          Available LDAP implementations:
           1 - 389ds
           2 - 389ds RFC-2307 Schema
           3 - Active Directory
           4 - IPA
           5 - Novell eDirectory RFC-2307 Schema
           6 - OpenLDAP RFC-2307 Schema
           7 - OpenLDAP Standard Schema
           8 - Oracle Unified Directory RFC-2307 Schema
           9 - RFC-2307 Schema (Generic)
          10 - RHDS
          11 - RHDS RFC-2307 Schema
          12 - iPlanet
          Please select: 4
          NOTE:
          It is highly recommended to use DNS resolution for LDAP server.
          If for some reason you intend to use hosts or plain address disable DNS usage.
          Use DNS (Yes, No) [Yes]: 
          Available policy method:
           1 - Single server
           2 - DNS domain LDAP SRV record
           3 - Round-robin between multiple hosts
           4 - Failover between multiple hosts
          Please select: 2
          Please enter DNS domain: mydomain.net
[ INFO  ] Trying to resolve domain 'mydomain.net'
          NOTE:
          It is highly recommended to use secure protocol to access the LDAP server.
          Protocol startTLS is the standard recommended method to do so.
          Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol.
          Use plain for test environments only.
          Please select protocol to use (startTLS, ldaps, plain) [startTLS]: 
          Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): File
          File path: /tmp/rootca.pem
[ INFO  ] Resolving SRV record 'mydomain.net'
[ INFO  ] Connecting to LDAP using 'ldap://ds1.mydomain.net:389'
[ INFO  ] Executing startTLS
[ INFO  ] Connection succeeded
          Enter search user DN (empty for anonymous): uid=svcldapbind,cn=users,cn=accounts,dc=mydomain,dc=net
          Enter search user password: 
[ INFO  ] Attempting to bind using 'uid=svcldapbind,cn=users,cn=accounts,dc=mydomain,dc=net'
[ INFO  ] Stage: Setup validation
          NOTE:
          It is highly recommended to test drive the configuration before applying it into engine.
          Perform at least one Login sequence and one Search sequence.
          Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Login
          Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Login
          Enter user name: admin
          Enter user password: 
[ INFO  ] Executing login sequence...
          Login output:
          2016-09-26 23:21:50 INFO    ========================================================================
          2016-09-26 23:21:50 INFO    ============================ Initialization ============================
          2016-09-26 23:21:50 INFO    ========================================================================
          2016-09-26 23:21:50 INFO    Loading extension 'mydomain.net-authn'
          2016-09-26 23:21:50 INFO    Extension 'mydomain.net-authn' loaded
          2016-09-26 23:21:50 INFO    Loading extension 'mydomain.net-authz'
          2016-09-26 23:21:50 INFO    Extension 'mydomain.net-authz' loaded
          2016-09-26 23:21:50 INFO    Extension 'mydomain.net-authz' loaded
          2016-09-26 23:21:50 INFO    Initializing extension 'mydomain.net-authn'
          2016-09-26 23:21:50 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] Creating LDAP pool 'authz'
          2016-09-26 23:21:51 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] LDAP pool 'authz' information: vendor='389 Project' version='389-Directory/1.3.5.13 B2016.221.207'
          2016-09-26 23:21:51 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] Creating LDAP pool 'authn'
          2016-09-26 23:21:51 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] LDAP pool 'authn' information: vendor='389 Project' version='389-Directory/1.3.5.13 B2016.221.207'
          2016-09-26 23:21:51 INFO    Extension 'mydomain.net-authn' initialized
          2016-09-26 23:21:51 INFO    Initializing extension 'mydomain.net-authz'
          2016-09-26 23:21:51 INFO    [ovirt-engine-extension-aaa-ldap.authz::mydomain.net-authz] Creating LDAP pool 'authz'
          2016-09-26 23:21:51 INFO    [ovirt-engine-extension-aaa-ldap.authz::mydomain.net-authz] LDAP pool 'authz' information: vendor='389 Project' version='389-Directory/1.3.5.13 B2016.221.207'
          2016-09-26 23:21:51 INFO    [ovirt-engine-extension-aaa-ldap.authz::mydomain.net-authz] Available Namespaces: [dc=mydomain,dc=net]
          2016-09-26 23:21:51 INFO    Extension 'mydomain.net-authz' initialized
          2016-09-26 23:21:51 INFO    Start of enabled extensions list
          2016-09-26 23:21:51 INFO    Instance name: 'mydomain.net-authn', Extension name: 'ovirt-engine-extension-aaa-ldap.authn', Version: '1.1.4', Notes: 'Display name: ovirt-engine-extension-aaa-ldap-1.1.4-1.el7', License: 'ASL 2.0', Home: 'http://www.ovirt.org', Author 'The oVirt Project', Build interface Version: '0',  File: '/tmp/tmprzOG1q/extensions.d/mydomain.net-authn.properties', Initialized: 'true'
          2016-09-26 23:21:51 INFO    Instance name: 'mydomain.net-authz', Extension name: 'ovirt-engine-extension-aaa-ldap.authz', Version: '1.1.4', Notes: 'Display name: ovirt-engine-extension-aaa-ldap-1.1.4-1.el7', License: 'ASL 2.0', Home: 'http://www.ovirt.org', Author 'The oVirt Project', Build interface Version: '0',  File: '/tmp/tmprzOG1q/extensions.d/mydomain.net-authz.properties', Initialized: 'true'
          2016-09-26 23:21:51 INFO    End of enabled extensions list
          2016-09-26 23:21:51 INFO    ========================================================================
          2016-09-26 23:21:51 INFO    ============================== Execution ===============================
          2016-09-26 23:21:51 INFO    ========================================================================
          2016-09-26 23:21:51 INFO    Profile='mydomain.net' authn='mydomain.net-authn' authz='mydomain.net-authz' mapping='null'
          2016-09-26 23:21:51 INFO    API: -->Authn.InvokeCommands.AUTHENTICATE_CREDENTIALS user='admin'
          2016-09-26 23:21:51 INFO    API: <--Authn.InvokeCommands.AUTHENTICATE_CREDENTIALS result=SUCCESS
          2016-09-26 23:21:51 INFO    --- Begin AuthRecord ---
          2016-09-26 23:21:51 INFO    AAA_AUTHN_AUTH_RECORD_PRINCIPAL: admin
          2016-09-26 23:21:51 INFO    --- End   AuthRecord ---
          2016-09-26 23:21:51 INFO    API: -->Authz.InvokeCommands.FETCH_PRINCIPAL_RECORD principal='admin'
          2016-09-26 23:21:51 INFO    API: <--Authz.InvokeCommands.FETCH_PRINCIPAL_RECORD status=SUCCESS
          2016-09-26 23:21:51 INFO    --- Begin PrincipalRecord ---
          2016-09-26 23:21:51 INFO    AAA_AUTHZ_PRINCIPAL_PRINCIPAL: admin
          2016-09-26 23:21:51 INFO    AAA_AUTHZ_PRINCIPAL_LAST_NAME: Administrator
          2016-09-26 23:21:51 INFO    AAA_LDAP_UNBOUNDID_DN: uid=admin,cn=users,cn=accounts,dc=mydomain,dc=net
          2016-09-26 23:21:51 INFO    AAA_AUTHZ_PRINCIPAL_NAMESPACE: dc=mydomain,dc=net
          2016-09-26 23:21:51 INFO    AAA_AUTHZ_PRINCIPAL_ID: c0753cca-7d5d-11e6-9893-001a4a160156
          2016-09-26 23:21:51 INFO    AAA_AUTHZ_PRINCIPAL_NAME: admin
          2016-09-26 23:21:51 INFO      --- Begin GroupRecord ---
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_DISPLAY_NAME: Account administrators group
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_ID: c0795102-7d5d-11e6-bf28-001a4a160156
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_NAMESPACE: dc=mydomain,dc=net
          2016-09-26 23:21:51 INFO      AAA_LDAP_UNBOUNDID_DN: cn=admins,cn=groups,cn=accounts,dc=mydomain,dc=net
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_NAME: admins
          2016-09-26 23:21:51 INFO      --- End   GroupRecord ---
          2016-09-26 23:21:51 INFO      --- Begin GroupRecord ---
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_DISPLAY_NAME: Trusts administrators group
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_ID: 8c319490-7d62-11e6-984d-001a4a160156
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_NAMESPACE: dc=mydomain,dc=net
          2016-09-26 23:21:51 INFO      AAA_LDAP_UNBOUNDID_DN: cn=trust admins,cn=groups,cn=accounts,dc=mydomain,dc=net
          2016-09-26 23:21:51 INFO      AAA_AUTHZ_GROUP_NAME: trust admins
          2016-09-26 23:21:51 INFO      --- End   GroupRecord ---
          2016-09-26 23:21:51 INFO    --- End   PrincipalRecord ---
[ INFO  ] Login sequence executed successfully
          Please make sure that user details are correct and group membership meets expectations (search for PrincipalRecord and GroupRecord titles).
          Abort if output is incorrect.
          Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Search
          Select entity to search (Principal, Group) [Principal]: 
          Term to search, trailing '*' is allowed: svcldap*
          Resolve Groups (Yes, No) [No]: Yes
[ INFO  ] Executing search sequence...
          Login output:
          2016-09-26 23:22:28 INFO    ========================================================================
          2016-09-26 23:22:28 INFO    ============================ Initialization ============================
          2016-09-26 23:22:28 INFO    ========================================================================
          2016-09-26 23:22:28 INFO    Loading extension 'mydomain.net-authn'
          2016-09-26 23:22:28 INFO    Extension 'mydomain.net-authn' loaded
          2016-09-26 23:22:28 INFO    Loading extension 'mydomain.net-authz'
          2016-09-26 23:22:28 INFO    Extension 'mydomain.net-authz' loaded
          2016-09-26 23:22:28 INFO    Initializing extension 'mydomain.net-authn'
          2016-09-26 23:22:28 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] Creating LDAP pool 'authz'
          2016-09-26 23:22:28 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] LDAP pool 'authz' information: vendor='389 Project' version='389-Directory/1.3.5.13 B2016.221.207'
          2016-09-26 23:22:28 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] Creating LDAP pool 'authn'
          2016-09-26 23:22:28 INFO    [ovirt-engine-extension-aaa-ldap.authn::mydomain.net-authn] LDAP pool 'authn' information: vendor='389 Project' version='389-Directory/1.3.5.13 B2016.221.207'
          2016-09-26 23:22:28 INFO    Extension 'mydomain.net-authn' initialized
          2016-09-26 23:22:28 INFO    Initializing extension 'mydomain.net-authz'
          2016-09-26 23:22:28 INFO    [ovirt-engine-extension-aaa-ldap.authz::mydomain.net-authz] Creating LDAP pool 'authz'
          2016-09-26 23:22:29 INFO    [ovirt-engine-extension-aaa-ldap.authz::mydomain.net-authz] LDAP pool 'authz' information: vendor='389 Project' version='389-Directory/1.3.5.13 B2016.221.207'
          2016-09-26 23:22:29 INFO    [ovirt-engine-extension-aaa-ldap.authz::mydomain.net-authz] Available Namespaces: [dc=mydomain,dc=net]
          2016-09-26 23:22:29 INFO    Extension 'mydomain.net-authz' initialized
          2016-09-26 23:22:29 INFO    Start of enabled extensions list
          2016-09-26 23:22:29 INFO    Instance name: 'mydomain.net-authn', Extension name: 'ovirt-engine-extension-aaa-ldap.authn', Version: '1.1.4', Notes: 'Display name: ovirt-engine-extension-aaa-ldap-1.1.4-1.el7', License: 'ASL 2.0', Home: 'http://www.ovirt.org', Author 'The oVirt Project', Build interface Version: '0',  File: '/tmp/tmprzOG1q/extensions.d/mydomain.net-authn.properties', Initialized: 'true'
          2016-09-26 23:22:29 INFO    Instance name: 'mydomain.net-authz', Extension name: 'ovirt-engine-extension-aaa-ldap.authz', Version: '1.1.4', Notes: 'Display name: ovirt-engine-extension-aaa-ldap-1.1.4-1.el7', License: 'ASL 2.0', Home: 'http://www.ovirt.org', Author 'The oVirt Project', Build interface Version: '0',  File: '/tmp/tmprzOG1q/extensions.d/mydomain.net-authz.properties', Initialized: 'true'
          2016-09-26 23:22:29 INFO    End of enabled extensions list
          2016-09-26 23:22:29 INFO    ========================================================================
          2016-09-26 23:22:29 INFO    ============================== Execution ===============================
          2016-09-26 23:22:29 INFO    ========================================================================
          2016-09-26 23:22:29 INFO    --- Begin QueryFilterRecord ---
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_QUERY_FILTER_OPERATOR: 102
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_QUERY_ENTITY: AAA_AUTHZ_QUERY_ENTITY_PRINCIPAL[1695cd36-4656-474f-b7bc-4466e12634e4]
          2016-09-26 23:22:29 INFO      --- Begin QueryFilterRecord ---
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_QUERY_FILTER_OPERATOR: 0
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_QUERY_FILTER_KEY: Extkey[name=AAA_AUTHZ_PRINCIPAL_NAME;type=class java.lang.String;uuid=AAA_AUTHZ_PRINCIPAL_NAME[a0df5bcc-6ead-40a2-8565-2f5cc8773bdd];]
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_PRINCIPAL_NAME: svcldap*
          2016-09-26 23:22:29 INFO      --- End QueryFilterRecord ---
          2016-09-26 23:22:29 INFO    --- End QueryFilterRecord ---
          2016-09-26 23:22:29 INFO    API: -->Authz.InvokeCommands.QUERY_OPEN namespace='dc=mydomain,dc=net'
          2016-09-26 23:22:29 INFO    API: <--Authz.InvokeCommands.QUERY_OPEN
          2016-09-26 23:22:29 INFO    API: -->Authz.InvokeCommands.QUERY_EXECUTE
          2016-09-26 23:22:29 INFO    API: <--Authz.InvokeCommands.QUERY_EXECUTE count=1
          2016-09-26 23:22:29 INFO    --- Begin PrincipalRecord ---
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_PRINCIPAL: svcldapbind
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_LAST_NAME: SVCAccount
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_EMAIL: [email protected]
          2016-09-26 23:22:29 INFO    AAA_LDAP_UNBOUNDID_DN: uid=svcldapbind,cn=users,cn=accounts,dc=mydomain,dc=net
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_NAMESPACE: dc=mydomain,dc=net
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_ID: 8d680f2c-842b-11e6-a4da-001a4a160156
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_DISPLAY_NAME: svcldapbind SVCAccount
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_NAME: svcldapbind
          2016-09-26 23:22:29 INFO    AAA_AUTHZ_PRINCIPAL_FIRST_NAME: svcldapbind
          2016-09-26 23:22:29 INFO      --- Begin GroupRecord ---
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_DISPLAY_NAME: Default group for all users
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_ID: c07b3134-7d5d-11e6-b74b-001a4a160156
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_NAMESPACE: dc=mydomain,dc=net
          2016-09-26 23:22:29 INFO      AAA_LDAP_UNBOUNDID_DN: cn=ipausers,cn=groups,cn=accounts,dc=mydomain,dc=net
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_NAME: ipausers
          2016-09-26 23:22:29 INFO      --- End   GroupRecord ---
          2016-09-26 23:22:29 INFO      --- Begin GroupRecord ---
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_DISPLAY_NAME: Service Account Group
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_ID: 1e208c34-8426-11e6-8ae4-001a4a160156
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_NAMESPACE: dc=mydomain,dc=net
          2016-09-26 23:22:29 INFO      AAA_LDAP_UNBOUNDID_DN: cn=svcaccounts,cn=groups,cn=accounts,dc=mydomain,dc=net
          2016-09-26 23:22:29 INFO      AAA_AUTHZ_GROUP_NAME: svcaccounts
          2016-09-26 23:22:29 INFO      --- End   GroupRecord ---
          2016-09-26 23:22:29 INFO    --- End   PrincipalRecord ---
          2016-09-26 23:22:29 INFO    API: -->Authz.InvokeCommands.QUERY_EXECUTE
          2016-09-26 23:22:29 INFO    API: <--Authz.InvokeCommands.QUERY_EXECUTE count=END
          2016-09-26 23:22:29 INFO    API: -->Authz.InvokeCommands.QUERY_CLOSE
          2016-09-26 23:22:29 INFO    API: <--Authz.InvokeCommands.QUERY_CLOSE
[ INFO  ] Search sequence executed successfully
          Please make sure that entity details are correct and that depending on the type of the query group membership meets expectations (search for PrincipalRecord and GroupRecord titles).
          Abort if output is incorrect
          Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done
[ INFO  ] Stage: Transaction setup
[ INFO  ] Stage: Misc configuration
[ INFO  ] Stage: Package installation
[ INFO  ] Stage: Misc configuration
[ INFO  ] Stage: Transaction commit
[ INFO  ] Stage: Closing up
          CONFIGURATION SUMMARY
          Profile name is: mydomain.net
          The following files were created:
              /etc/ovirt-engine/aaa/mydomain.net.jks
              /etc/ovirt-engine/aaa/mydomain.net.properties
              /etc/ovirt-engine/extensions.d/mydomain.net-authz.properties
              /etc/ovirt-engine/extensions.d/mydomain.net-authn.properties
[ INFO  ] Stage: Clean up
          Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20160926230431-eskjpo.log:
[ INFO  ] Stage: Pre-termination
[ INFO  ] Stage: Termination
[root@eng ~]# 

Restart ovirt-engine service:

[root@eng ~]# systemctl restart ovirt-engine

Refresh your browser and the "mydomain.net" profile is now available for use.

References

Create Groups

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Linux_Domain_Identity_Authentication_and_Policy_Guide/user-groups.html#Configuring_IPA_Groups-Creating_IPA_Groups

Password Policy

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Linux_Domain_Identity_Authentication_and_Policy_Guide/Setting_Different_Password_Policies_for_Different_User_Groups.html

Create User

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Linux_Domain_Identity_Authentication_and_Policy_Guide/managing-users-lifecycle.html

SSL & TLS

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Virtualization/3.6/html/Administration_Guide/Setting_Up_SSL_or_TLS_Connections_between_the_Manager_and_an_LDAP_Server.html

External LDAP Provider

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Virtualization/3.6/html/Administration_Guide/sect-Configuring_an_External_LDAP_Provider.html#Configuring_an_External_LDAP_Provider

Next

Next article in the series is Secure Remote Access with SoftEther VPN Server and Client 4.2.