spakky-oidc¶
OIDC bearer 인증 provider 플러그인 API입니다.
spakky.plugins.oidc
¶
OIDC bearer authentication provider plugin public API.
OIDC_AUTH_PROVIDER_ID = 'provider:spakky-oidc'
module-attribute
¶
Stable auth provider id advertised by spakky-oidc.
DEFAULT_RETAINED_CLAIMS = ('sub', 'iss', 'aud', 'azp', 'email', 'name', 'preferred_username')
module-attribute
¶
Safe claim names retained in AuthContext; raw token material is excluded.
AbstractSpakkyOidcError
¶
OidcCredentialError
¶
OidcDiscoveryError
¶
OidcJwksError
¶
OidcTokenValidationError
¶
OidcAuthenticationProvider(config)
¶
Bases: IAuthenticationProvider
OIDC JWT bearer implementation of the provider-neutral auth port.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
authenticate(credential, invocation)
¶
Authenticate an OIDC bearer credential and return AuthContext.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
authenticate_result(credential, invocation)
¶
Authenticate a bearer token and map failures to auth decisions.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
OidcAuthenticationResult(*, decision, auth_context=None)
dataclass
¶
OidcDiscoveryMetadata(*, issuer, jwks_uri)
dataclass
¶
OidcProviderConfig()
¶
Bases: BaseSettings
Runtime config for OIDC bearer authentication.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
issuer = 'https://issuer.example.test'
class-attribute
instance-attribute
¶
Expected issuer and base URL for discovery when discovery_url is omitted.
audience = 'spakky'
class-attribute
instance-attribute
¶
Accepted audience value or values.
client_id = None
class-attribute
instance-attribute
¶
Expected authorized party (azp) when the token carries it.
discovery_url = None
class-attribute
instance-attribute
¶
Explicit OIDC discovery URL; defaults to issuer/.well-known/openid-configuration.
algorithm = 'RS256'
class-attribute
instance-attribute
¶
Expected JWT signing algorithm.
clock_skew = timedelta(seconds=60)
class-attribute
instance-attribute
¶
Allowed exp/nbf/iat clock skew.
retained_claim_names = DEFAULT_RETAINED_CLAIMS
class-attribute
instance-attribute
¶
JWT claim names safe to retain on AuthContext.
roles_claim = 'roles'
class-attribute
instance-attribute
¶
Claim containing role refs as a string or string array.
scopes_claim = 'scope'
class-attribute
instance-attribute
¶
Claim containing scope refs as a space-delimited string or string array.
tenant_claim = 'tenant'
class-attribute
instance-attribute
¶
Optional claim containing the tenant canonical ref.
display_name_claim = 'name'
class-attribute
instance-attribute
¶
Optional claim containing a human-readable subject label.
json_fetcher = fetch_json_document
class-attribute
instance-attribute
¶
Fetches discovery and JWKS JSON; injectable for deterministic tests.
provider_available = True
class-attribute
instance-attribute
¶
Whether provider dependencies are usable at runtime.
fetch_json_document(url)
¶
Fetch a JSON object from an OIDC metadata URL.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
oidc_auth_provider_contribution()
¶
Return the auth capabilities contributed by spakky-oidc.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
spakky.plugins.oidc.main
¶
Plugin initialization for OIDC bearer authentication.
initialize(app)
¶
Register OIDC configuration and authentication provider binding.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/main.py
spakky.plugins.oidc.provider
¶
OIDC bearer authentication provider.
OIDC_AUTH_PROVIDER_ID = 'provider:spakky-oidc'
module-attribute
¶
Stable auth provider id advertised by spakky-oidc.
DEFAULT_RETAINED_CLAIMS = ('sub', 'iss', 'aud', 'azp', 'email', 'name', 'preferred_username')
module-attribute
¶
Safe claim names retained in AuthContext; raw token material is excluded.
OidcProviderConfig()
¶
Bases: BaseSettings
Runtime config for OIDC bearer authentication.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
issuer = 'https://issuer.example.test'
class-attribute
instance-attribute
¶
Expected issuer and base URL for discovery when discovery_url is omitted.
audience = 'spakky'
class-attribute
instance-attribute
¶
Accepted audience value or values.
client_id = None
class-attribute
instance-attribute
¶
Expected authorized party (azp) when the token carries it.
discovery_url = None
class-attribute
instance-attribute
¶
Explicit OIDC discovery URL; defaults to issuer/.well-known/openid-configuration.
algorithm = 'RS256'
class-attribute
instance-attribute
¶
Expected JWT signing algorithm.
clock_skew = timedelta(seconds=60)
class-attribute
instance-attribute
¶
Allowed exp/nbf/iat clock skew.
retained_claim_names = DEFAULT_RETAINED_CLAIMS
class-attribute
instance-attribute
¶
JWT claim names safe to retain on AuthContext.
roles_claim = 'roles'
class-attribute
instance-attribute
¶
Claim containing role refs as a string or string array.
scopes_claim = 'scope'
class-attribute
instance-attribute
¶
Claim containing scope refs as a space-delimited string or string array.
tenant_claim = 'tenant'
class-attribute
instance-attribute
¶
Optional claim containing the tenant canonical ref.
display_name_claim = 'name'
class-attribute
instance-attribute
¶
Optional claim containing a human-readable subject label.
json_fetcher = fetch_json_document
class-attribute
instance-attribute
¶
Fetches discovery and JWKS JSON; injectable for deterministic tests.
provider_available = True
class-attribute
instance-attribute
¶
Whether provider dependencies are usable at runtime.
OidcAuthenticationResult(*, decision, auth_context=None)
dataclass
¶
OidcDiscoveryMetadata(*, issuer, jwks_uri)
dataclass
¶
OidcAuthenticationProvider(config)
¶
Bases: IAuthenticationProvider
OIDC JWT bearer implementation of the provider-neutral auth port.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
authenticate(credential, invocation)
¶
Authenticate an OIDC bearer credential and return AuthContext.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
authenticate_result(credential, invocation)
¶
Authenticate a bearer token and map failures to auth decisions.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
fetch_json_document(url)
¶
Fetch a JSON object from an OIDC metadata URL.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
oidc_auth_provider_contribution()
¶
Return the auth capabilities contributed by spakky-oidc.
Source code in plugins/spakky-oidc/src/spakky/plugins/oidc/provider.py
spakky.plugins.oidc.error
¶
spakky.plugins.oidc.contributions.auth
¶
Auth feature contribution for the OIDC provider.