-
Notifications
You must be signed in to change notification settings - Fork 108
Update Kerberos SSO documentation for foremanctl #4543
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
base: master
Are you sure you want to change the base?
Changes from all commits
c5f79ab
32344a2
4bb0515
e080e1d
3026aa3
d975738
20401ed
258bfc9
e19caaa
b4e1a67
b8abbb8
efd1980
34dcea9
e3b0a86
26a09a2
d8826ba
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,3 @@ | ||
| include::attributes-satellite.adoc[] | ||
|
|
||
| :project-package-install: {package-install} |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -12,6 +12,10 @@ By configuring a HBAC rule in the {FreeIPA} domain, you can ensure {Project} doe | |||||||||
|
|
||||||||||
| .Prerequisites | ||||||||||
| * {FreeIPA} user account with privileges to configure HBAC rules | ||||||||||
| ifdef::foremanctl[] | ||||||||||
| * The external authentication source has been enabled on your {ProjectServer} by using the `foremanctl deploy --external-authentication` command. | ||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
You could shorten this because the actual command is part of the linked procedure. The command as is seems not valid because it's lacking a specific external authentication object like "ipa". Another idea to avoid passive language:
Suggested change
|
||||||||||
| For more information, see xref:configuring-the-freeipa-authentication-source-on-projectserver_{context}[]. | ||||||||||
| endif::[] | ||||||||||
|
|
||||||||||
| .Procedure | ||||||||||
| . On the {FreeIPA} server, configure HBAC control. | ||||||||||
|
|
@@ -32,7 +36,12 @@ endif::[] | |||||||||
| + | ||||||||||
| [options="nowrap", subs="+quotes,verbatim,attributes"] | ||||||||||
| ---- | ||||||||||
| ifdef::foremanctl[] | ||||||||||
| # foremanctl deploy --external-authentication-pam-service foreman-prod | ||||||||||
| endif::[] | ||||||||||
| ifndef::foremanctl[] | ||||||||||
| # {foreman-installer} --foreman-pam-service foreman-prod | ||||||||||
| endif::[] | ||||||||||
| ---- | ||||||||||
|
|
||||||||||
| .Verification | ||||||||||
|
|
@@ -109,10 +118,22 @@ $ ipa hbactest --user=_ipa-user_ --host=_{foreman-example-com}_ --service={proje | |||||||||
| $ ipa hbacrule-disable allow_all | ||||||||||
| ---- | ||||||||||
|
|
||||||||||
| On {ProjectServer}, a {Project} administrator re-runs {foreman-installer} to load the host-based access control rules from {FreeIPA}: | ||||||||||
| On {ProjectServer}, a {Project} administrator re-runs | ||||||||||
| ifdef::foremanctl[] | ||||||||||
| `foremanctl deploy` | ||||||||||
| endif::[] | ||||||||||
| ifndef::foremanctl[] | ||||||||||
| `{foreman-installer}` | ||||||||||
| endif::[] | ||||||||||
| to load the host-based access control rules from {FreeIPA}: | ||||||||||
|
|
||||||||||
| [options="nowrap", subs="+quotes,verbatim,attributes"] | ||||||||||
| ---- | ||||||||||
| # {foreman-installer} --foreman-pam-service {project-context}-prod | ||||||||||
| ifdef::foremanctl[] | ||||||||||
| # foremanctl deploy --external-authentication-pam-service foreman-prod | ||||||||||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
| endif::[] | ||||||||||
| ifndef::foremanctl[] | ||||||||||
| # {foreman-installer} --foreman-pam-service foreman-prod | ||||||||||
| endif::[] | ||||||||||
| ---- | ||||||||||
| ==== | ||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,63 @@ | ||||||||||||||||||||||||||||||||||||||||||||
| :_mod-docs-content-type: PROCEDURE | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| [id="resetting-external-authentication-configuration-for-kerberos-sso"] | ||||||||||||||||||||||||||||||||||||||||||||
| = Resetting external authentication configuration for Kerberos SSO | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| [role="_abstract"] | ||||||||||||||||||||||||||||||||||||||||||||
| You can disable external authentication with {FreeIPA} or Active Directory (AD) by resetting the configuration for the `IPA` authentication type. | ||||||||||||||||||||||||||||||||||||||||||||
| This prevents user accounts defined in the external authentication source from accessing {Project}. | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| [IMPORTANT] | ||||||||||||||||||||||||||||||||||||||||||||
| ==== | ||||||||||||||||||||||||||||||||||||||||||||
| Resetting external authentication prevents users from accessing {Project} as described in xref:configuring-kerberos-sso-with-{FreeIPA-context}-in-{project-context}[] and xref:configuring-kerberos-sso-for-active-directory-users-in-project_{context}[]. | ||||||||||||||||||||||||||||||||||||||||||||
| However, some configuration files, such as configuration files for the System Security Services Daemon (SSSD), will remain modified because {Project} does not have access to the previous state of these files. | ||||||||||||||||||||||||||||||||||||||||||||
aneta-petrova marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||
| ==== | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| .Procedure | ||||||||||||||||||||||||||||||||||||||||||||
| ifdef::foremanctl[] | ||||||||||||||||||||||||||||||||||||||||||||
| * Reset the external authentication configuration to the default state: | ||||||||||||||||||||||||||||||||||||||||||||
| + | ||||||||||||||||||||||||||||||||||||||||||||
| [options="nowrap", subs="+quotes,verbatim,attributes"] | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| # foremanctl deploy --reset-external-authentication | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| endif::[] | ||||||||||||||||||||||||||||||||||||||||||||
| ifndef::foremanctl[] | ||||||||||||||||||||||||||||||||||||||||||||
| * Reset the external authentication configuration to the default state: | ||||||||||||||||||||||||||||||||||||||||||||
| ** To disable access to {ProjectWebUI}: | ||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+17
to
+27
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Line 18 and 26 is identical, so you could move it above the if and if not statements. |
||||||||||||||||||||||||||||||||||||||||||||
| + | ||||||||||||||||||||||||||||||||||||||||||||
| [options="nowrap", subs="+quotes,verbatim,attributes"] | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| # {foreman-installer} --reset-foreman-ipa-authentication | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| ** To disable access to {ProjectWebUI}, {Project} API, and Hammer CLI: | ||||||||||||||||||||||||||||||||||||||||||||
| + | ||||||||||||||||||||||||||||||||||||||||||||
| [options="nowrap", subs="+quotes,verbatim,attributes"] | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| # {foreman-installer} --reset-foreman-ipa-authentication-api | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| endif::[] | ||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
| .Verification | ||||||||||||||||||||||||||||||||||||||||||||
| ifdef::foremanctl[] | ||||||||||||||||||||||||||||||||||||||||||||
| * Verify your external authentication configuration: | ||||||||||||||||||||||||||||||||||||||||||||
| + | ||||||||||||||||||||||||||||||||||||||||||||
| [options="nowrap", subs="+quotes,verbatim,attributes"] | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| $ curl -k -u : --negotiate https://_{foreman-example-com}_/users/extlogin | ||||||||||||||||||||||||||||||||||||||||||||
| <html><body>You are being <a href="https://_{foreman-example-com}_/users/login">redirected</a>.</body></html> | ||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+48
to
+49
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Please avoid mixing commands and stdout. I suggest to drop this. If you want to keep it, maybe add a small block or paragraph below similar to line 52. |
||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| + | ||||||||||||||||||||||||||||||||||||||||||||
| When external authentication is disabled, the `curl` command redirects you to `\https://{foreman-example-com}/users/login`. | ||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||
| endif::[] | ||||||||||||||||||||||||||||||||||||||||||||
| ifndef::foremanctl[] | ||||||||||||||||||||||||||||||||||||||||||||
| * Display the value for the `foreman-ipa-authentication` and `foreman-ipa-authentication-api` configuration options: | ||||||||||||||||||||||||||||||||||||||||||||
| + | ||||||||||||||||||||||||||||||||||||||||||||
| [options="nowrap", subs="+quotes,verbatim,attributes"] | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| # {foreman-installer} --help | grep foreman-ipa-authentication | ||||||||||||||||||||||||||||||||||||||||||||
| ---- | ||||||||||||||||||||||||||||||||||||||||||||
| + | ||||||||||||||||||||||||||||||||||||||||||||
| The expected value for disabled external authentication is `false`. | ||||||||||||||||||||||||||||||||||||||||||||
| endif::[] | ||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| [NOTE] | ||
| ==== | ||
| The {FreeIPA} and Active{nbsp}Directory authentication sources are mutually exclusive. | ||
| Running | ||
| ifdef::foremanctl[] | ||
| `foremanctl deploy --external-authentication` | ||
| endif::[] | ||
| ifndef::foremanctl[] | ||
| `{foreman-installer} --foreman-ipa-authentication` or `{foreman-installer} --foreman-ipa-authentication-api` | ||
| endif::[] | ||
| overwrites any previously defined configuration for these authentication sources. | ||
| ==== |
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.
Does this mean that these are not available with foremanctl? I think that's not true.
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.
I excluded these lines (for now) because the NOTE leads to an LDAP procedure which uses foreman-maintain. The maintain tool will be replaced by foremanctl, which means the procedure cannot yet be included in a foremanctl guide. We can include it after we know what the replacement for
foreman-maintain service restartwill look like and that the procedure works in the foremanctl world.The other link leads to an AD procedure, which is being exposed in this PR. However, modifying the NOTE to include two links for a pre-foremanctl version of the guide and one link for the post-foremanctl version would take some rewriting. I don't think it's worth it right now -- we can just include the whole NOTE again after we verify that the LDAP procedure is safe for foremanctl.