Enum OidcValidation
pub enum OidcValidation {
Jwks,
Introspection,
}Expand description
Token validation strategy for an OIDC trust relationship.
Variants§
Jwks
Validate token signatures offline against the issuer’s published
JWKS (fetched via discovery, refreshed on key rotation with a
bounded cooldown). No per-request IdP round-trip; revocation is
bounded by max_auth_lifetime_secs and token expiry.
Introspection
Validate every token online via the issuer’s RFC 7662 introspection
endpoint. Live revocation within revalidation_secs; requires
client_secret.
Endpoint contract (the daemon fails closed on anything less): an
active: true response authenticates only when it also reports
token_type: Bearer, an aud containing audience, and a nonblank
client_id. The endpoint MUST NOT report refresh tokens, ID tokens,
or any other non-access credential as an active Bearer token for
this audience: RFC 7662 lets an endpoint introspect refresh tokens
and treats the daemon’s token_type_hint=access_token as advisory,
so this is the issuer’s obligation. Where the issuer stamps an
explicit purpose marker (typ, e.g. Keycloak’s Refresh/ID, or
token_use, e.g. Cognito’s id), any value other than an access
token is denied.
Trait Implementations§
Source§impl Clone for OidcValidation
impl Clone for OidcValidation
Source§fn clone(&self) -> OidcValidation
fn clone(&self) -> OidcValidation
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for OidcValidation
Source§impl Debug for OidcValidation
impl Debug for OidcValidation
Source§impl Default for OidcValidation
impl Default for OidcValidation
Source§fn default() -> OidcValidation
fn default() -> OidcValidation
Source§impl<'de> Deserialize<'de> for OidcValidation
impl<'de> Deserialize<'de> for OidcValidation
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<OidcValidation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<OidcValidation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for OidcValidation
Source§impl HasPropKind for OidcValidation
impl HasPropKind for OidcValidation
const PROP_KIND: PropKind = crate::config::PropKind::Enum
const ALIAS_SOURCE: Option<AliasSource> = None
Source§fn display_secret_terminals() -> Vec<&'static str>
fn display_secret_terminals() -> Vec<&'static str>
secret_field_terminals.Source§impl JsonSchema for OidcValidation
impl JsonSchema for OidcValidation
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for OidcValidation
impl PartialEq for OidcValidation
Source§impl Serialize for OidcValidation
impl Serialize for OidcValidation
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for OidcValidation
Auto Trait Implementations§
impl Freeze for OidcValidation
impl RefUnwindSafe for OidcValidation
impl Send for OidcValidation
impl Sync for OidcValidation
impl Unpin for OidcValidation
impl UnsafeUnpin for OidcValidation
impl UnwindSafe for OidcValidation
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more