Awesome, pkinit is exactly what we need, thank you.

Is the `--principal` option for ipa cert-request needed with a
matching rule? e.g. if we have

ipa certmaprule-add pkinit-host --matchrule  '<ISSUER>xxxx'
--maprule='(fqdn={subject_dns_name})'

Do I also need to

ipa cert-request example.csr --principal=host/example.com
--certificate-out=example.pem

for pkinit to work?


Cheers,
Yuriy

On Mon, Mar 11, 2024 at 4:08 AM Alexander Bokovoy <aboko...@redhat.com> wrote:
>
> On Няд, 10 сак 2024, Yuriy Halytskyy via FreeIPA-users wrote:
> >We want to be able to destroy/recreate IPA enrolled hosts without
> >using admin credentials.
> >
> >ipa-client-install with a keytab seems like a good option except it
> >generates a new keytab. And there is no non-hacky way of passing this
> >new keytab back to terraform. Can we tell it not to generate a new
> >keytab on re-enrollment?
>
> This option (--keytab) was supposed to be used as a re-enrollment tool
> for existing host. Thus, it forces use of a previously known keytab and
> forcibly regenerates it because of the commonly used policy in IPA that
> password must only be known to the end-user entity.
>
> You should not be using it to automate enrollments.
>
> >
> >Alternatively, we could create a user that has just enough permissions
> >to enroll host X but nothing else. What is the minimum set of
> >permissions for this?
>
> The enrollment process is split into two parts:
>
> - adding host object
> - enrolling actual host: configuring the system and requesting its
>    keys
>
> There are two separate permissions for this already:
>
> - 'System: Add Hosts'
> - 'System: Enroll a Host'
>
> If you have a system already added to IPA, then only the second
> permission for enrollemnt user. Depending on the options you are using
> during enrollment, more permissions might be needed. See a link to
> ipa-hcc below for details of some of those.
>
> >
> >Or is there a better way?
>
> Another option is in newer (as of RHEL 8.4 or RHEL 9.2, I think) IPA
> version: use PKINIT authentication to enroll hosts. This allows to map
> a certificate to the principal that can enroll the host. You can either
> use a certificate that is mapped on the IPA KDC side to this host
> identity (e.g. a certificate that has host/<hostname> Kebreros principal
> in it) or use it to replace a password-based authentication of an
> enrollment user who has 'System: Enroll a Host' permission.
>
> See 'PKINIT Options' in ipa-client-install(1) man page and
> https://freeipa.readthedocs.io/en/latest/designs/client-install-pkinit.html
> design page for more details.
>
> This method is used by the Podengo project's ipa-hcc plugin, for
> example, where a host-associated RHEL subscription manager certificate
> is used to authenticate against IPA during domain enrollment. See
> https://github.com/podengo-project/ipa-hcc for details.
>
>
>
>
> --
> / Alexander Bokovoy
> Sr. Principal Software Engineer
> Security / Identity Management Engineering
> Red Hat Limited, Finland
>
--
_______________________________________________
FreeIPA-users mailing list -- freeipa-users@lists.fedorahosted.org
To unsubscribe send an email to freeipa-users-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to