-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Review adding AD as an external authentication source #3149
Review adding AD as an external authentication source #3149
Conversation
The PR preview for 503934f is available at theforeman-foreman-documentation-preview-pr-3149.surge.sh The following output files are affected by this PR: |
guides/common/modules/proc_enrolling-server-with-the-ad-server.adoc
Outdated
Show resolved
Hide resolved
737203b
to
468d121
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because I'm not the original author of these changes, I'm adding a few notes that I made while familiarizing myself with the bug report. Feel free to ignore them.
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_enrolling-server-with-the-ad-server.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_enrolling-server-with-the-ad-server.adoc
Outdated
Show resolved
Hide resolved
0232cbb
to
0e67127
Compare
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
09e27e6
to
c5a5ac3
Compare
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_enrolling-server-with-the-ad-server.adoc
Outdated
Show resolved
Hide resolved
I've commented on some issues based on my memory and I will proceed with testing this actual workflow documented, verbatim, without changes I've suggested. |
I believe I have resolved all comments you've posted so far @lhellebr Let me know what else needs changing. Thanks! |
Tested with the latest version and when running the installer, I get the following error.
Note that the realm (In this log, Additionally, in part 5.8.3 step 8a, it's unclear which section of the file the text should be added to. |
I don't think I can help with that but let me know if I'm missing something and there is anything I'm expected to do about this.
I clarified that the lines go to the domain section for the AD domain. And I also added a reference to the sssd-ad man page (there are multiple man pages related to sssd.conf so it might be helpful to point users to the most relevant one). |
It means what we agreed to do here #3149 (comment) and what was suggested in the ticket was kinda illegal. Not by the nature of the change, after all, we followed the KB... but it seems the satellite EXPECTS the keytab to be in
Anyway, this must be fixed, it's a blocker, the process doesn't work as is. |
When exactly following the docs in this PR's current state but changing |
So if we kept the old path (
If this is enough to resolve the issue then I'd prefer it over changing the puppet modules to expect the keytab to be in a different place, especially if we want to have this done soon. |
You can use I'm not sure about the SELinux policy, because that comes from the base SELinux policy. Looks like the default is # semanage fcontext -l | grep keytab
/etc/httpd/conf/keytab regular file system_u:object_r:httpd_keytab_t:s0
/etc/krb5\.keytab all files system_u:object_r:krb5_keytab_t:s0
/etc/krb5kdc/kadm5\.keytab regular file system_u:object_r:krb5_keytab_t:s0
/var/kerberos/krb5(/.*)? all files system_u:object_r:krb5_keytab_t:s0
/var/kerberos/krb5kdc/kadm5\.keytab regular file system_u:object_r:krb5_keytab_t:s0 Looking at the procedure it states |
guides/common/modules/proc_configuring-direct-ad-integration-with-gss-proxy.adoc
Outdated
Show resolved
Hide resolved
guides/common/modules/proc_enrolling-server-with-the-ad-server.adoc
Outdated
Show resolved
Hide resolved
If possible, I'd like to limit this PR to addressing https://issues.redhat.com/browse/SAT-22855 in a way that enables us to close that ticket. That would involve:
The last time I tried to look at the whole AD/SSSD integration procedure from a bigger perspective, it resulted in #3056 which became unmanageable and I had to close it. Because it's absolutely true that there are larger issues to deal with. Can we track them in https://issues.redhat.com/browse/SAT-26039 in order to avoid blocking this PR? |
Co-authored-by: Maximilian Kolb <[email protected]>
d6ebd6c
to
83cebcc
Compare
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Show resolved
Hide resolved
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Show resolved
Hide resolved
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
Co-authored-by: mmuehlfeldRH <[email protected]>
/etc/samba/smb.conf is already present by default, it's better to use that rather than create a separate configuration file for this
6fd41f4
to
503934f
Compare
@mmuehlfeldRH: I addressed your suggestions and resolved the related comment threads. @maximiliankolb: I addressed the one breaking change you found (installing packages) and resolved the other comments. @ekohl: I believe I addressed your request for changes as well by dropping the steps related to privilege separation for Apache and verifying that the remaining steps work. |
@adamruzicka and/or @lhellebr: Is the latest state something you'd be comfortable approving? |
I've tested this prior to the samba changes and back then it worked well. With the samba changes it reads well, so +1 from me, even though I didn't have a chance to test it out end to end. |
Thanks for confirming @adamruzicka! With my testing, I believe this covers tech review. |
There are still pending change requests but I checked them and they are either resolved or I have provided an explanation. Comment threads have been resolved. I'm going to go ahead with the merge now. Thanks everyone who provided their input! |
* Drop steps related to GSS proxy from Samba-based joining * List login methods for AD users with direct integration * Use smb.conf to store settings for interacting with AD * Further edits for readability and based on peer review --------- Co-authored-by: alazik <[email protected]> Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> Co-authored-by: Maximilian Kolb <[email protected]> Co-authored-by: mmuehlfeldRH <[email protected]> (cherry picked from commit 01add9f)
* Drop steps related to GSS proxy from Samba-based joining * List login methods for AD users with direct integration * Use smb.conf to store settings for interacting with AD * Further edits for readability and based on peer review --------- Co-authored-by: alazik <[email protected]> Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> Co-authored-by: Maximilian Kolb <[email protected]> Co-authored-by: mmuehlfeldRH <[email protected]>
What changes are you introducing?
After reviewing the existing procedure for adding Active Directory as an external authentication source when the base system of the Foreman server is connected directly to AD, I propose these changes:
The current procedure for direct AD integration + configuring AD as an external authentication source + using GSS Proxy for privilege separation is faulty. For example, the steps don't really achieve Apache keytab separation as promised, they combine Samba-based and SSSD-based AD join, and some of them could be replaced with a reference to FreeIPA/IdM docs to make sure we don't need to fret about keeping in sync with SSSD development.In its latest state (after quite a few changes in course), this PR proposes a complete restart to how we document the use case of direct AD integration -- and to document a minimum viable workflow to achieve direct AD integration and adding AD as an external authentication source:* First, refer users to FreeIPA/IdM docs for the integration to AD (referencing SSSD as the recommended way to join an AD domain and omitting references to Samba)* Then, advise users on how to configure AD as an external authentication sourceThis means that the procedures no longer attempt to configure privilege separation with GSS Proxy. If needed, we can add steps to that purpose later after we agree on the necessary minimum proposed in this PR.Why are you introducing these changes? (Explanation, links to references, issues, etc.)
https://issues.redhat.com/browse/SAT-22855 requests making changes to how the existing procedure on direct AD integration + configuring AD as an external authentication source handles privilege separation for Apache with GSS proxy. While investigating that scenario, it turned out that proper privilege separation may currently not be possible to achieve. Therefore, the agreed-upon approach is to first document the basic steps for AD enrollment + authentication source configuration and then, in another PR, continue the work by adding steps to achieve proper privilege separation.
This PR originated with https://issues.redhat.com/browse/SAT-22855 and then... escalated.According to https://issues.redhat.com/browse/SAT-22855, the procedure for direct AD integration with GSS-proxy needs updating. This PR continues the effort from #2737.Additionally, https://issues.redhat.com/browse/SAT-26355 requests adding two oddjob* packages to the same assembly.Anything else to add? (Considerations, potential downsides, alternative solutions you have explored, etc.)
Some might object to leaving Samba out of the picture. These resources explain why SSSD is preferred over Samba for direct AD integration:* 1.1. Overview of direct integration using SSSD* 6.1. Direct integration of Linux systems into Active DirectoryI suspect that the procedures might have originally involved Samba because SSSD was not sufficiently mature when the procedures were written. However, SSSD has evolved in the past few years and can stand on its own now, except for limited edge cases.Checklists
Please cherry-pick my commits into: