10 releases
Uses new Rust 2024
| new 0.0.11 | Feb 9, 2026 |
|---|---|
| 0.0.10 | Feb 4, 2026 |
| 0.0.7 | Dec 9, 2025 |
| 0.0.6 | Nov 14, 2025 |
| 0.0.5 | Sep 10, 2025 |
#82 in Authentication
43,025 downloads per month
Used in 8 crates
(2 directly)
33KB
563 lines
ambient-id
A library for accessing ambient OIDC credentials in a variety of environments.
This crate serves the same purpose as Python's id library.
Supported environments
ambient-id currently supports ambient OIDC credential detection in the
following environments:
-
GitHub Actions
-
GitHub Actions requires the
id-token: writepermission to be set at the job or workflow level. In general, users should set this at the job level to limit the scope of the permission.For additional information on OpenID Connect in GitHub Actions, see the GitHub documentation.
-
-
GitLab CI
-
On GitLab, this crate looks for an
<AUD>_ID_TOKENenvironment variable, where<AUD>is the audience string with non-alphanumeric characters replaced by underscores and converted to uppercase. For example, if the audience issigstore, the crate will look for aSIGSTORE_ID_TOKENenvironment variable.For additional information on OpenID Connect and
<AUD>_ID_TOKENenvironment variables, see the GitLab documentation.
-
-
Buildkite
-
On Buildkite, this crate invokes
buildkite-agent oidc request-token --audience <AUD>to obtain the token.If you're using Buildkite's Docker plugin, you'll need to propagate the environment and mount the Buildkite agent binary into the container for this to work correctly.
Specifically, you'll need
propagate-environment: trueandmount-buildkite-agent: trueset in your plugin configuration.For additional information on OpenID Connect in Buildkite, see the Buildkite documentation.
-
-
CircleCI
-
On CircleCI, this crate invokes
circleci run oidc get --root-issuer --claims '{"aud": <AUD>}'to obtain the token.This crate only uses
--root-issuer; per-organization issuers aren't supported.
-
Development
To run tests:
RUST_TEST_THREADS=1 cargo test
You must pass RUST_TEST_THREADS=1 to ensure tests are run in a single
thread, as this crate's tests manipulate environment variables and are not
thread-safe.
License
ambient-id is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in ambient-id by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.
Dependencies
~4–22MB
~240K SLoC