Skip to content

Smartcard multi token tests#8519

Draft
krishnavema wants to merge 2 commits intoSSSD:masterfrom
krishnavema:smartcard-multi-token-tests
Draft

Smartcard multi token tests#8519
krishnavema wants to merge 2 commits intoSSSD:masterfrom
krishnavema:smartcard-multi-token-tests

Conversation

@krishnavema
Copy link
Copy Markdown
Contributor

No description provided.

@krishnavema krishnavema requested a review from spoore1 March 15, 2026 16:12
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces system tests for multi-token smartcard authentication. It includes new helper functions for setting up tokens and authenticating, along with several test cases covering different scenarios with two tokens. A key change is updating the sssd-test-framework dependency to a personal fork to support these new tests. My review focuses on the risk associated with this dependency and on improving the maintainability and robustness of the new test code by addressing magic numbers and polling logic.

git+https://github.com/next-actions/pytest-tier
git+https://github.com/next-actions/pytest-output
git+https://github.com/SSSD/sssd-test-framework
git+https://github.com/krishnavema/sssd-test-framework@multi-token-smart-card-support
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

This change introduces a dependency on a personal fork (krishnavema/sssd-test-framework). While this might be acceptable for development, it poses a security and maintenance risk for the main branch. The changes from this fork should be merged into the upstream SSSD/sssd-test-framework repository, and the dependency should point to an official release or commit from the upstream repository before this pull request is merged.

git+https://github.com/SSSD/sssd-test-framework

Comment thread src/tests/system/tests/test_smartcard.py
Comment thread src/tests/system/tests/test_smartcard.py Outdated
Copy link
Copy Markdown
Contributor

@spoore1 spoore1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good start. I've run into a couple snags with testing but basics are working so here's a start for review.

Comment thread src/tests/system/tests/test_smartcard.py Outdated
Comment thread src/tests/system/tests/test_smartcard.py Outdated
Comment thread src/tests/system/tests/test_smartcard.py Outdated
@krishnavema krishnavema force-pushed the smartcard-multi-token-tests branch from 2592a18 to 1322416 Compare March 20, 2026 08:01
@krishnavema krishnavema marked this pull request as ready for review March 20, 2026 08:02
@krishnavema krishnavema requested a review from spoore1 March 20, 2026 08:03
@alexey-tikhonov
Copy link
Copy Markdown
Member

'changes requested': all platforms fail test_smartcard__two_tokens_match_on_both

@spoore1
Copy link
Copy Markdown
Contributor

spoore1 commented Mar 26, 2026

'changes requested': all platforms fail test_smartcard__two_tokens_match_on_both

We're investigating this issue now. I hadn't looked at the test failures yet because I was hitting this one locally.

@krishnavema krishnavema marked this pull request as draft March 27, 2026 12:20
@sumit-bose
Copy link
Copy Markdown
Contributor

Hi,

please try to run the tests with #8629, his PR should hopefully fix the issue with test_smartcard__two_tokens_match_on_both.

bye,
Sumit

@spoore1
Copy link
Copy Markdown
Contributor

spoore1 commented Apr 22, 2026

Hi,

please try to run the tests with #8629, his PR should hopefully fix the issue with test_smartcard__two_tokens_match_on_both.

bye, Sumit

Yes, I can confirm that fixes the failure. I posted to that PR as well.

I tested on Fedora 42 containers and I can confirm this fixes the test_smartcard__two_tokens_match_on_both failure in PR#8519:

Version:

[root@client ~]# rpm -q sssd
sssd-2.13.0-99.20260422110653129739.pr8629.168.g4868b17eb.fc42.x86_64

Results:

tests/test_smartcard.py::test_smartcard__two_tokens_match_on_first (ipa) PASSED
tests/test_smartcard.py::test_smartcard__two_tokens_match_on_second (ipa) PASSED
tests/test_smartcard.py::test_smartcard__two_tokens_match_on_both (ipa) PASSED
==== 3 passed, 1 deselected in 200.01s (0:03:20) ====

Copy link
Copy Markdown
Contributor

@spoore1 spoore1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can probably move the enroll_to_token() to the framework. It might be useful in other places (like the GDM tests) to consolidate and reduce duplicate code. Overall the tests look good. And with the fix in #8629, all the tests are working now.


setup_two_tokens(client, ipa, token1_username=username, token2_username=decoy)
client.sssd.common.smartcard_with_softhsm(client.smartcard)
assert client.auth.su.smartcard_with_su(username, TOKEN_PIN)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a note to change this if you rename in SSSD/sssd-test-framework#239

Comment thread src/tests/system/tests/test_smartcard.py
TOKEN_PIN = "123456"


def enroll_to_token(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering now if this would be better to add this to the smartcard util in the framework with this: SSSD/sssd-test-framework#239

Also, if this is moved to the framework, can the initialize_card() be included here to make this more generic?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants