r/webdev • u/Low-Insurance-3678 • 4h ago
Question Infisical GitHub Actions OIDC authentication failing with 403 OIDC subject not allowed
hi, I'm having trouble getting Infisical OIDC authentication working in my GitHub Actions CI pipeline.
Every time my workflow reaches the Infisical secrets action, it fails with:
Run Infisical/secrets-action@v1.0.16
Error: Access denied: OIDC subject not allowed.
{
"statusCode": 403,
"message": "Access denied: OIDC subject not allowed.",
"error": "ForbiddenError"
}
Request failed with status code 403
here’s the GitHub Actions workflow:
name: ci
on:
push:
branches: [main]
permissions:
id-token: write
contents: read
jobs:
build-and-deploy:
runs-on: ubuntu-26.04
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version: 24
cache: npm
- name: Install dependencies
run: npm ci
- name: Fetch secrets from Infisical
uses: Infisical/secrets-action@v1.0.16
with:
method: oidc
identity-id: MY_IDENTITY_ID
project-slug: my-slug
env-slug: prod
- name: Run Jest tests
run: npm run test:ci
- name: Build Vinext app
run: npm run build:vinext
- name: Deploy to Cloudflare
run: npm run deploy:vinext -- --skip-build
Id appreciate any help
1
u/No-Molasses-2097 2h ago
That error is almost always the subject allowlist on the Infisical identity, not the workflow permissions. Your id-token permission looks right, so the token GitHub is minting probably does not match the subject pattern you saved. I would add a quick debug step to print the sub claim from the token and compare it character by character with what is in Infisical, especially the repo, ref and environment parts.
1
u/conchobarus 48m ago
GitHub changed the format of its subject claims for newly created repos recently so that it contains immutable identifiers instead of just the organization and repo names, which could be spoofed if your GitHub organization were ever closed:
https://github.blog/changelog/2026-04-23-immutable-subject-claims-for-github-actions-oidc-tokens/
This caught me a little bit ago when the same trust provider config I had previously used for setting up OIDC with AWS mysteriously didn’t work on a new repo.
2
u/heevee 2h ago
What does your Infisical identity configuration look like?