Commit Graph
16352 Commits
Author SHA1 Message Date
Viktor Ashirov bfc9552d56 ipa-enrollment: fix memory leaks
`smods`, `fqdn`, `sdn` were not freed.

Related: https://pagure.io/freeipa/issue/9895
Signed-off-by: Viktor Ashirov <vashirov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-12 09:40:21 +01:00
Viktor Ashirov 4a62d6141a ipa-extdom-extop: fix memory leaks
In various code paths the `ctx` structure was freed, but not `ctx`
resources (`base_dn`, `nss_ctx`, `extdom_instance_counter`) which may
have been allocated.

Plugin didn't have SLAPI_PLUGIN_CLOSE_FN registered, so context was
never freed on server shutdown.

Related: https://pagure.io/freeipa/issue/9895
Signed-off-by: Viktor Ashirov <vashirov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-12 09:40:21 +01:00
Viktor Ashirov 0e409d1955 ipa-range-check: fix memory leak
`ipa_range_check_close` function didn't do any cleanup.
The `ctx` structure was freed, but not `ctx->base_dn` which may have
been allocated.

Related: https://pagure.io/freeipa/issue/9895
Signed-off-by: Viktor Ashirov <vashirov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-12 09:40:21 +01:00
Viktor Ashirov 67ea4467ec ipa-sidgen: fix memory leaks
In various code paths the `ctx` structure was freed, but not
`ctx->base_dn` which may have been allocated.

`sid` was duplicated, but the original memory was never freed.

Related: https://pagure.io/freeipa/issue/9895
Signed-off-by: Viktor Ashirov <vashirov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-12 09:40:21 +01:00
Viktor Ashirov 29699af133 ipa-pwd-extop: fix memory leaks
`cur_pw` was allocated but not freed after password validation.
`principal_expire` was allocated but not freed in all code paths.

Related: https://pagure.io/freeipa/issue/9895
Signed-off-by: Viktor Ashirov <vashirov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-12 09:40:21 +01:00
Viktor Ashirov 819fddc3d2 ipa-lockout: fix memory leaks
Move cleanup of `unlock_time` to `done` label to ensure cleanup in all code paths.

Related: https://pagure.io/freeipa/issue/9895
Signed-off-by: Viktor Ashirov <vashirov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-12 09:40:21 +01:00
Viktor Ashirov c173a70c85 ipa-graceperiod: fix memory leaks
Direct return of invalid grace limit bypassed cleanup code.
`tmpstr` variable was not freed in all code paths.

Related: https://pagure.io/freeipa/issue/9895
Signed-off-by: Viktor Ashirov <vashirov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-12 09:40:21 +01:00
Carla Martinez f39acce911 Fix: Incorrect auth error message
There is a small bug in the server code that processes
the user-locked situation: while kinit reports `kinit:
Client's credentials have been revoked ...`, the code
expects `kinit: Clients credentials have been revoked ...`
(doesn't contain the apostrophe). By correcting the
message and adding the apostrophe the right message
should be displayed.

Fixes: https://pagure.io/freeipa/issue/9891
Signed-off-by: Carla Martinez <carlmart@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-12-09 20:53:28 +01:00
Florence Blanc-Renaud c03f7eb2b9 ipatest: add an integration test for samba upgrade
When a trust was establish pre samba 4.23, the trust domain object
could contain ipanttrustattributes = 40 (LSA_TRUST_ATTRIBUTE_WITHIN_FOREST)
and winbind would fail to restart after an upgrade to samba 4.23.

Add a test simulating the situation and calling ipa-server-upgrade

Related: https://pagure.io/freeipa/issue/9892
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-09 12:33:34 +01:00
Florence Blanc-Renaud 6f0cd075e5 Trust: fix tdo with WITH_FOREST
When a trust was established pre samba 4.23, the trust domain object
could contain ipanttrustattributes: 8 (LSA_TRUST_ATTRIBUTE_WITHIN_FOREST)
This value prevents winbind restart.

The current code replaces 0 with LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
but should also handle the case for LSA_TRUST_ATTRIBUTE_WITHIN_FOREST.
In this case we should drop the bit and replace it by FOREST_TRANSITIVE
one because otherwise Samba will skip the domain. Do not change the LDAP
representation to allow older replicas to continue operations.

Fixes: https://pagure.io/freeipa/issue/9892
Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
2025-12-09 12:33:34 +01:00
Florence Blanc-Renaud b575e3dc39 Nightly test definitions: configure 4.13 branch
Configure the gating and nightly pipelines for ipa-4-13 branch

Fixes: IDM-3230
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Alexander Bokovoy <abbra@users.noreply.github.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Sudhir Menon <sumenon@redhat.com>
2025-12-08 14:26:49 +01:00
Antonio Torres a4617fb04b Back to git snapshots
Signed-off-by: Antonio Torres <antorres@redhat.com>
2025-12-04 11:42:21 +01:00
Antonio Torres dd8ba50929 Become IPA 4.13.0
Signed-off-by: Antonio Torres <antorres@redhat.com>
2025-12-04 11:32:44 +01:00
Antonio Torres fb28051781 Update list of contributors
Signed-off-by: Antonio Torres <antorres@redhat.com>
2025-12-04 11:24:07 +01:00
Florence Blanc-Renaud 443aff6a0a ipatests: fix teardown of TestIpaCertFix
The test is moving the date in the future to simulate CA certificate
expiration, then uninstalls the server. If certmonger is working,
the uninstaller may fail with a Dbus Exception.

The test can be fixed with the same strategy as other tests changing
the date: stop certmonger and remove the tracking requests before
uninstallation.

Fixes: https://pagure.io/freeipa/issue/9888
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-12-02 16:38:02 +01:00
Antonio Torres 68cc47a3e4 eDNS: disable dnsconfd before configuring Unbound
If dnsconfd is kept enabled after we are done configuring Unbound for the
encrypted DNS setup, it might overwrite the configuration,
resulting in a broken setup. dnsconfd should be disabled prior to
configuring Unbound during the server/client install process.

Fixes: https://pagure.io/freeipa/issue/9859
Signed-off-by: Antonio Torres <antorres@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
2025-12-02 10:26:56 -05:00
Finn Krein-Schuch 2dcc943e6b Use mod_auth_gssapi option GssapiNegotiateOnce
In some user agents (e.g. Chrome on Windows) after negotiation of
Kerberos auth fails the agent will try negotiating NTML auth.  This
will not work but may prompt http basic auth popups before showing the
html login form, confusing the users.

To circumvent this problem mod_auth_gssapi added the option
GssapiNegotiateOnce, sending the negotiate header only once.

References:
[1] Discussion in mod_auth_gssapi:
https://github.com/gssapi/mod_auth_gssapi/discussions/293

Fixes: https://pagure.io/freeipa/issue/5614
Signed-off-by: Finn Krein-Schuch <finn.krein-schuch@sva.de>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
2025-12-02 14:27:24 +01:00
Rafael Guterres Jeffman c98d1b819e ipa-idrange-fix: Fix typo when ID under 1000 is present.
Fixes: https://pagure.io/freeipa/issue/9885

Signed-off-by: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: David Hanina <dhanina@redhat.com>
2025-12-01 11:19:26 +01:00
Arif Budiman 136ab8ca30 Translated using Weblate (Indonesian)
Currently translated at 42.4% (2071 of 4881 strings)

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/freeipa/master/id/
Translation: freeipa/master
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
2025-11-28 18:01:32 +01:00
Rob Crittenden ffb8fe3541 Don't assume the server has a CA service when issuing certificates
The hostname "localhost" was harcoded in pki_issue_certificate.
This worked for installations, even without a CA, because this
wasn't called for issuing those certificates.

It fails with ipa-pkinit-enable on a server without a CA because
only attempted the local server which lacks a CA.

Instead detect the CA based on the local capabilities and the
server list of available CAs, preferring the local server if it
has a CA.

Fixes: https://pagure.io/freeipa/issue/9879

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
2025-11-26 14:17:23 -05:00
Florence Blanc-Renaud 9b9c71475b test_ipahealthcheck_dogtag_ca_connectivity_check: update expected msg
With the changes related to PKI API, a different error message is
returned when PKI is not reachable.
This breaks the test test_ipahealthcheck_dogtag_ca_connectivity_check.

Update the expected error message.
Fixes: https://pagure.io/freeipa/issue/9881
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-11-25 17:08:58 +01:00
Julien Rische 0aced73926 ipatests: fix kdcproxy tests against AD
In recent kdcproxy commit 1773f28eeea72ec6efcd433d3b66595c44d1253f, the
use of DNS discovery has been restricted to declared realms in order to
mitigate CVE-2025-59088. The present commit update the
TestHttpKdcProxy::test_ad_user_login_on_client_with_kdcproxy test to
take this change into account.

Signed-off-by: Julien Rische <jrische@redhat.com>
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
2025-11-21 16:26:19 +05:30
Rob Crittenden b7c66bf23b Revert "Temp commit"
This reverts commit a5132136cd.

It was merged on accident.
2025-11-20 15:57:54 -05:00
Sumedh Sidhaye a5132136cd Temp commit
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-11-20 15:42:45 -05:00
Sumedh Sidhaye e9a644feb0 Validate message to check if not a trust agent/controller Previously the check would return an empty SUCCESS message.
This is an update to the integration test since this involves a
beahviour change

Related PR: https://github.com/freeipa/freeipa-healthcheck/pull/367
Related JIRA: https://issues.redhat.com/browse/RHEL-112752

Signed-off-by: Sumedh Sidhaye <ssidhaye@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-11-20 15:42:45 -05:00
Florence Blanc-Renaud bcbc88dc4a temp_commit: revert to the version pre 0b521f7
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-11-20 15:40:37 -05:00
Florence Blanc-Renaud ca5510a08d ipatests: mark test_dnssec as xfail in fips mode
The test test_fips.py::TestInstallFIPS::test_dnssec is failing and
the issue is reported upstream at 9785.
Mark the test as xfail for now.

Related: https://pagure.io/freeipa/issue/9785
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-11-20 15:40:37 -05:00
Florence Blanc-Renaud 3e6b5b954b FIPS mode: openssl pkcs12 command needs -nomacver option
In FIPS mode, ipa server installation fails in a call to
openssl pkcs12 command because the PKCS12 MAC requires PKCS12KDF
which is not an approved FIPS algo.
The fix consists in passing the additional option -nomacver

Fixes: https://pagure.io/freeipa/issue/9878
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2025-11-20 15:40:37 -05:00
Rob Crittenden 0b521f7d19 PR-CI: Run test_installation_TestInstallKeySizes in the nightlies
This tests the key and type installation arguments so the end
user can have some level of control over the type and key size
of some of the IPA keys.

Related: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden d424dc6dd2 Move some functions to installutils to be more independent
This is needed to avoid importing functions and static values
from cainstance.py and krainstance.py. Both import dsinstance.py
which imports lib389 and initializes things that don't work
well within the server API.

They are moved to installutils and ipalib.constants to be more
centralized and reduce imports.

Related: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden d322bbfb3f Detect the highest API version the remote server supports
There are deployed 11.7.0 servers that aren't yet configured
to expose the v2 API. This change will allow IPA to fall back
to the v1 API.

Related: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden f74ff21364 Refine restricting CA profiles to known subjects
Since renewal now occurs through IPA and not directly via
the CA, restrict the CA profiles to only those certificates
we know about and expect.

The RA Agent cert and the subsystem cert share the same profile
so there is another hoop to jump through in validating that
the subjects are valid and expected.

Since the code runs as ipaapi it does not have access to check
the run status of DS so skip in that case. If it fails, it fails.

Contributions from Fraser Tweedale <ftweedal@redhat.com>

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 56620f400a Sort when comparing tuples in the xmlrpc tests
Two test were failing because the order within the result
keys changed. We shouldn't rely on order so sort the result
and compare that.

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 372468511d Set minimum version of certmonger and PKI for PKI-API
The updated certmonger supports the --json-api flag used
to signal that all requests go through the IPA API.

The updated PKI packages provide fixes for the python API
so that all CA requests can be directed through that instead
of using the REST API directly.

Related: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 1729aa4e66 Reduce the log level before calling PKI functions
This will reduce the output spam during an IPA server install.

Output like:

2025-06-13T22:17:05Z INFO Connecting to https://localhost:8443
2025-06-13T22:17:05Z INFO Getting PKI server info from /pki/v2/info

File-based logs are not affected.

Related: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Signed-off-by: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 1c107542cf Retrieve all cert profiles from the CA with --all
Normally IPA only returns the locally-stored certificate profiles.
In order for certmonger to request CA subsystem certificates using
cert_request we need the full set of profiles. Return them all
when --all is provided and the requesting user has permission.

Related: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden e8425bd88d Configure renewals to use the IPA JSON API
certmonger defaults to using the PKI XML API for renewing
CA/KRA subsystem certificates. certmonger supports the
IPA API for renewals by providing --jsonrpc-url

The IPA API will forward requests to the CA via the
PKI python API. IPA will be RPC agnostic this way and
rely on the PKI python API to handle communication.

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 7a33bccabd Use PKIClient instead of deprecated PKIConnection
This is for calls to instantiate a SecurityDomainClient
to get version information.

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden f5fc5e0fdf Remove the RestClient class
This is replaced by the APIClient class which uses the pki
python API instead of making direct REST API calls.

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 191aec5a52 Use the APIClient instead of direct REST calls for ACME
Drop the use of direct REST calls in favor of using the
APIClient based on the pki python API.

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 43f0284080 Replace REST with PKI python API for cert and LWCA
This reduces the reliance on specific REST/XML API in PKI and will
allow the pki client library to choose which RPC API(s) to use.
Add the new, versioned REST endpoint paths (v1, v2) to the httpd
configuration.

This needs additional refactoring once the certprofile
class is ported and the RestClient class can be dropped or
repurposed so some of the duplication can be re-centralized.

Also catch a bare Exception when we can't reach the local
server on port 443 in ipa-ca-install.  This is because
proxying isn't configured yet.  So catch that Exception and
try again with port 8443 like other exceptions.

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Signed-off-by: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Fraser Tweedale 8aea0fd900 Refactor installer cert issuance to use pki python lib
Update the installation code to use the pki python client library to
issue certificates.  This is instead of using the `pki` CLI program
and parsing its output strings.

As part of this change, decompose the `pki_issue_certificate`
function into two specialised functions, rather than a single
function with different "modes".  This makes the logic easier to
follow (and enables the refactor to be done incrementally).

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden 5d55b4efb2 Add config option for RSA key size for HTTP, DS, PKINIT, RA certs
A new command-line option was added, --key-type-size, to define
the type of key to generate and the size of the key, or equivalent.

Only rsa is supported currently but this can be expanded easily if
additional key types are added. Placeholders have been added for
ec and ml-dsa key types but they are not yet supported.

There is also a config plugin option to modify this value. It does
NOT modify any certificates already issued. Changing it will only
apply to new replicas added.

Related: https://pagure.io/freeipa/issue/9738

Also add a test to verify installation key sizes.

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Rob Crittenden cdc8054453 Use the pki tool to bootstrap certificates during installation
We previously called out to certmonger to have it directly
obtain certificates from the CA. Instead use the CA-generated
/root/ca-admin.p12 certificate to authenticate using the pki
tool to generate the IPA RA certificate.

Then use that certificate to issue the DS, HTTP and KDC
certificates.

Fixes: https://pagure.io/freeipa/issue/9738

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
Reviewed-By: Thomas Woerner <twoerner@redhat.com>
2025-11-19 16:50:37 -05:00
Emilio Herrera d018361c6f Translated using Weblate (Spanish)
Currently translated at 62.5% (3055 of 4881 strings)

Co-authored-by: Emilio Herrera <ehespinosa57@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/freeipa/master/es/
Translation: freeipa/master
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
2025-11-18 18:26:17 +05:30
Carla Martinez c03fe90186 Modern WebUI version v0.1.7
Signed-off-by: Carla Martinez <carlmart@redhat.com>
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
2025-11-18 18:02:21 +05:30
Aleksandr Sharov e0b9ad0ae0 Correctly recognize OID 2.5.4.97, organizationIdentifier as a subject/issuer DN of the CA certificate
OID 2.5.4.97 added to the ATTR_NAME_BY_OID list, and cainstance during
2-step installation is re-fetching CA certificate and re-parsing OIDs
based on the list. Example:

cert issuer: <Name(C=CZ,2.5.4.97=LLCCZ-123456789,O=Corp,CN=ROOT)>
DN(cert issuer): CN=ROOT,O=Corp,organizationIdentifier=LLCCZ-123456789,C=CZ

Fixes: https://pagure.io/freeipa/issue/9866

Signed-off-by: Aleksandr Sharov <asharov@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: David Hanina <dhanina@redhat.com>
2025-11-13 11:23:45 +05:30
Alexander Bokovoy ec22295fed sysaccounts: extend permissions to include description and account lock
Security Architect role was supposed to manage sysaccount objects. But
since description attribute is missing from the list of the managed
permissions, the role is unable to modify 'description' field. Same for
nsAccountLock which needs an explicit ACI.

Fixes: https://pagure.io/freeipa/issue/9875

Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
2025-11-12 17:16:48 +01:00
Florence Blanc-Renaud d3909d8601 test_sudo: do not clean the cache for offline cache tests
The tests for offline caching should not clear SSSD cache
before shutting down the IPA server. Currently most of them
follow the same steps:
- create the rule
- clear the cache
- call run_as_sudo_user (which clears the cache)
- call list_sudo_commands (which clears the cache)
- stop the master
- call run_as_sudo_user with skip_sssd_cache_clear
- call list_sudo_commands with skip_sssd_cache_clear

The scenario is wrong as skip_sssd_cache_clear should also be
added on the calls before the master is stopped.

Fixes: https://pagure.io/freeipa/issue/9874
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: PRANAV THUBE <pthube@redhat.com>
2025-11-12 16:08:52 +01:00
Florence Blanc-Renaud 54f9e0f3e6 test_idp: use more recent keycloak server
Use Keycloak 26.4.4 and java 25 for the test setup.
The current versions (keycloak 26.1.0 and java-21) are not
working on Fedora 43.

Fixes: https://pagure.io/freeipa/issue/9833
Signed-off-by: Florence Blanc-Renaud <flo@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Rafael Guterres Jeffman <rjeffman@redhat.com>
2025-11-12 15:33:41 +01:00