Skip to content

Stable UNIX users: storage and auth API #51102

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

Merged
merged 19 commits into from
Jan 28, 2025

Conversation

espadolini
Copy link
Contributor

@espadolini espadolini commented Jan 16, 2025

This RFD implements the storage and storage manipulation in the auth server, and defines and implements the auth API to store and fetch stable UIDs for automatically provisioned UNIX users.

Related RFD: #50414
Part of #50292

@espadolini espadolini added the no-changelog Indicates that a PR does not require a changelog entry label Jan 16, 2025
@espadolini espadolini requested a review from eriktate January 16, 2025 01:35
@espadolini espadolini force-pushed the espadolini/stable-unix-user-api branch from 0fb9265 to d0943ca Compare January 16, 2025 01:46

This comment was marked as off-topic.

Copy link
Contributor

@rosstimothy rosstimothy left a comment

Choose a reason for hiding this comment

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

:shipit:

return 0, trace.Wrap(err)
}

// TODO(espadolini): emit an audit log event with the username and UID
Copy link
Contributor

Choose a reason for hiding this comment

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

Assuming this is out of scope for this PR

Copy link
Contributor Author

@espadolini espadolini Jan 28, 2025

Choose a reason for hiding this comment

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

Yes, it's addressed in #51200.

@espadolini espadolini enabled auto-merge January 28, 2025 16:12
@espadolini espadolini added this pull request to the merge queue Jan 28, 2025
github-merge-queue bot pushed a commit that referenced this pull request Jan 28, 2025
* add config field in cluster auth preference

* extend ClusterConfiguration to support checking auth preference in AtomicWrite

* stable UNIX users storage

* auth API and auth-side business logic

* move server implementation to a subpackage

* Use proto3 and the default (open) API

* remove type alias for ClusterConfiguration

* Move new AuthPreference validation into a Validate method

* Check the StableUnixUserConfig before use

* use Config instead of Params

* Don't rely on error types for the retry logic

* Fix TestStableUNIXUsersBasic

* Use free functions for Validate

* make grpc

* black-box testing that includes authz
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 28, 2025
@espadolini espadolini added this pull request to the merge queue Jan 28, 2025
Merged via the queue into master with commit 8858cee Jan 28, 2025
45 checks passed
@espadolini espadolini deleted the espadolini/stable-unix-user-api branch January 28, 2025 17:27
espadolini added a commit that referenced this pull request Jan 29, 2025
* add config field in cluster auth preference

* extend ClusterConfiguration to support checking auth preference in AtomicWrite

* stable UNIX users storage

* auth API and auth-side business logic

* move server implementation to a subpackage

* Use proto3 and the default (open) API

* remove type alias for ClusterConfiguration

* Move new AuthPreference validation into a Validate method

* Check the StableUnixUserConfig before use

* use Config instead of Params

* Don't rely on error types for the retry logic

* Fix TestStableUNIXUsersBasic

* Use free functions for Validate

* make grpc

* black-box testing that includes authz
This was referenced Jan 29, 2025
carloscastrojumo pushed a commit to carloscastrojumo/teleport that referenced this pull request Feb 19, 2025
* add config field in cluster auth preference

* extend ClusterConfiguration to support checking auth preference in AtomicWrite

* stable UNIX users storage

* auth API and auth-side business logic

* move server implementation to a subpackage

* Use proto3 and the default (open) API

* remove type alias for ClusterConfiguration

* Move new AuthPreference validation into a Validate method

* Check the StableUnixUserConfig before use

* use Config instead of Params

* Don't rely on error types for the retry logic

* Fix TestStableUNIXUsersBasic

* Use free functions for Validate

* make grpc

* black-box testing that includes authz
espadolini added a commit that referenced this pull request Feb 26, 2025
* add config field in cluster auth preference

* extend ClusterConfiguration to support checking auth preference in AtomicWrite

* stable UNIX users storage

* auth API and auth-side business logic

* move server implementation to a subpackage

* Use proto3 and the default (open) API

* remove type alias for ClusterConfiguration

* Move new AuthPreference validation into a Validate method

* Check the StableUnixUserConfig before use

* use Config instead of Params

* Don't rely on error types for the retry logic

* Fix TestStableUNIXUsersBasic

* Use free functions for Validate

* make grpc

* black-box testing that includes authz
espadolini added a commit that referenced this pull request Feb 27, 2025
* add config field in cluster auth preference

* extend ClusterConfiguration to support checking auth preference in AtomicWrite

* stable UNIX users storage

* auth API and auth-side business logic

* move server implementation to a subpackage

* Use proto3 and the default (open) API

* remove type alias for ClusterConfiguration

* Move new AuthPreference validation into a Validate method

* Check the StableUnixUserConfig before use

* use Config instead of Params

* Don't rely on error types for the retry logic

* Fix TestStableUNIXUsersBasic

* Use free functions for Validate

* make grpc

* black-box testing that includes authz
github-merge-queue bot pushed a commit that referenced this pull request Feb 27, 2025
* Stable UNIX users: storage and auth API (#51102)

* add config field in cluster auth preference

* extend ClusterConfiguration to support checking auth preference in AtomicWrite

* stable UNIX users storage

* auth API and auth-side business logic

* move server implementation to a subpackage

* Use proto3 and the default (open) API

* remove type alias for ClusterConfiguration

* Move new AuthPreference validation into a Validate method

* Check the StableUnixUserConfig before use

* use Config instead of Params

* Don't rely on error types for the retry logic

* Fix TestStableUNIXUsersBasic

* Use free functions for Validate

* make grpc

* black-box testing that includes authz

* Stable UNIX users: functionality (#51200)

* wiring the API client through

* tctl stable-unix-users ls

* stable UID fallback for Teleport SSHD

* stable_unix_user.create event

* fix-license

* Require and test audit log message

* Add stable_unix_user_config to fileconf

* Avoid saying "fallback UID" in logs

* Avoid saying "fallback UID" in error messages

* Avoid racing writes in the mock emitter

* pnpm lint-fix

* fix lib/auth tests that broken during rebase
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-changelog Indicates that a PR does not require a changelog entry size/lg
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants