Skip to content

issuance: Authenticate certificate requests based on OIDC token claims #1989

@sfox-equinix

Description

@sfox-equinix

fulcio does not currently provide a way to authenticate certificate requests using specific OIDC token claim values. As a result, configuring fulcio to trust GitHub's OIDC issuer means fulcio trusts requests from any GitHub Actions pipeline.

Context

This behavior is problematic for users that self-host their own fulcio instances. Self-hosted operators may want to limit requests to particular pipelines (e.g., pipelines belonging to a handful of GitHub organizations).

For example, GitHub Actions' OIDC token contains a repository_owner claim which is set to the name of the pipeline's GitHub organization. If fulcio provided a way to require the repository_owner claim match certain values, then operators could restrict requests to specific GitHub organizations.

Possible implementations

In speaking with Bob Callaway and Hayden B. on Slack, they raised the possibility of implementing policies using regex:

Hayden B:

I think the simplest solution would be a regex for accepted subjects on the config -
https://github.com/sigstore/fulcio/blob/main/pkg/config/config.go#L93.
We could limit this just to CIProvider configuration too

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions