checkId: check.integration.oidc plugin: stellaops.doctor.integration severity: warn tags: [connectivity, oidc, auth, identity]
OIDC Provider
This Doctor check verifies that the Stella Ops control plane can reach its configured OpenID Connect provider and that the provider advertises a complete discovery document. It is aimed at operators and DevOps engineers diagnosing operator sign-in and API-token validation problems.
What It Checks
Reads the OIDC issuer URL from Oidc:Issuer, Authentication:Oidc:Issuer, or Authority:Oidc:Issuer. For cataloged tenants, tenant overrides under Doctor:TenantOverrides:<tenant>:<key> or Tenants:<tenant>:<key> are checked before the global keys. Fetches the OpenID Connect discovery document at <issuer>/.well-known/openid-configuration. On a successful response, parses the JSON for three required endpoints: authorization_endpoint, token_endpoint, and jwks_uri. The check passes if all three are present, warns if the discovery document is incomplete (missing one or more endpoints), fails if the discovery endpoint returns a non-success status code, and fails on connection errors.
Transient discovery fetch exceptions are retried with bounded ProbeRetry; incomplete or non-success discovery responses are returned immediately. Evidence records per-tenant status and retry attempts when tenant fan-out is active.
Why It Matters
OIDC authentication is the primary identity mechanism for Stella Ops operators and API clients. If the OIDC provider is unreachable or misconfigured, users cannot log in, API tokens cannot be validated, and all authenticated workflows halt. An incomplete discovery document causes subtle failures where some auth flows work but others (e.g., token refresh) silently break.
Common Causes
- OIDC issuer URL is incorrect or has a trailing slash issue
- OIDC provider (Authority, Keycloak, Azure AD, etc.) is down
- Network connectivity issues between Stella Ops and the identity provider
- Provider does not support OpenID Connect discovery
- Discovery document is missing required endpoints
How to Fix
Docker Compose
# Check OIDC configuration
grep 'OIDC__ISSUER\|AUTHENTICATION__OIDC' .env
# Test discovery endpoint
docker compose exec gateway curl -sv \
https://auth.example.com/.well-known/openid-configuration
# Verify the Authority service is running
docker compose ps authority
# Update issuer URL
echo 'Oidc__Issuer=https://auth.example.com' >> .env
docker compose restart gateway platform
Bare Metal / systemd
# Verify configuration
cat /etc/stellaops/appsettings.Production.json | jq '.Oidc'
# Test discovery
curl -v https://auth.example.com/.well-known/openid-configuration
# Check required fields in the response
curl -s https://auth.example.com/.well-known/openid-configuration \
| jq '{authorization_endpoint, token_endpoint, jwks_uri}'
# Fix configuration
sudo nano /etc/stellaops/appsettings.Production.json
sudo systemctl restart stellaops-platform
Kubernetes / Helm
# values.yaml
oidc:
issuer: https://auth.example.com
clientId: stellaops-ui
helm upgrade stellaops ./chart -f values.yaml
Verification
stella doctor --check check.integration.oidc
Related Checks
check.integration.ldap– alternative directory-based authentication
