-
Notifications
You must be signed in to change notification settings - Fork 256
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Test: Add the test when we replace id_provider
With AD/Samba check the authentication of user by replacing id_provider = ldap Signed-off-by: Madhuri Upadhye <[email protected]>
- Loading branch information
1 parent
1944936
commit aa55a38
Showing
1 changed file
with
71 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
""" | ||
SSSD AD Provider Test Cases | ||
:requirement: ad | ||
""" | ||
|
||
from __future__ import annotations | ||
|
||
import pytest | ||
from sssd_test_framework.roles.ad import AD | ||
from sssd_test_framework.roles.client import Client | ||
from sssd_test_framework.roles.generic import GenericADProvider | ||
from sssd_test_framework.topology import KnownTopologyGroup | ||
|
||
|
||
@pytest.mark.topology(KnownTopologyGroup.AnyAD) | ||
@pytest.mark.ticket(jira="RHEL-65848", gh=7690) | ||
@pytest.mark.parametrize("method", ["su", "ssh"]) | ||
@pytest.mark.importance("high") | ||
def test_ad__user_authentication_when_provider_is_set_to_ldap_with_gss_spnego( | ||
client: Client, provider: GenericADProvider, method: str | ||
): | ||
""" | ||
:title: Login to AD when id_provider is set to ldap | ||
:setup: | ||
1. Add AD user | ||
2. Update sssd.conf with 'id_provider = ldap', 'ldap_schema = ad', | ||
'ldap_id_use_start_tls = false', 'auth_provider = ad' and | ||
'ldap_sasl_mech = gssspengo' and Start SSSD | ||
:steps: | ||
1. Check authentication of the user | ||
:expectedresults: | ||
1. Authentication is successful | ||
:customerscenario: False | ||
""" | ||
provider.user("user1").add() | ||
|
||
client.sssd.config.remove_option("domain/test", "id_provider") | ||
|
||
configurations = { | ||
"id_provider": "ldap", | ||
"ldap_schema": "ad", | ||
"ldap_id_use_start_tls": "False", | ||
"auth_provider": "ad", | ||
"ldap_referrals": "False", | ||
"ldap_sasl_mech": "GSS-SPNEGO", | ||
"ldap_id_mapping": "True", | ||
} | ||
|
||
for key, value in configurations.items(): | ||
client.sssd.domain[key] = value | ||
|
||
# id_provider = ldap will not add them automatically if they are not | ||
# defined on the server side. | ||
client.sssd.nss["default_shell"] = "/bin/bash" | ||
client.sssd.nss["override_homedir"] = "/home/%u" | ||
|
||
if isinstance(provider, AD): | ||
dns_parameter = "ad.test" | ||
else: | ||
dns_parameter = "samba.test" | ||
client.sssd.domain["krb5_realm"] = f"{dns_parameter.upper()}" | ||
client.sssd.domain["dns_discovery_domain"] = f"{dns_parameter}" | ||
|
||
client.sssd.start() | ||
|
||
assert client.auth.parametrize(method).password("user1", "Secret123"), "User user1 failed login!" | ||
|
||
log_str = client.fs.read("/var/log/sssd/krb5_child.log") | ||
assert hasattr(provider.host, "domain"), "Host does not have 'domain' attribute!" | ||
assert f"UPN [user1@{provider.host.domain}]" in log_str, f"'UPN [user1@{provider.host.domain}]' not in logs!" |