pub struct SpiffeWorkloadIdentityProvider { /* private fields */ }Expand description
Production Workload Identity provider backed by a SPIFFE Workload API. JWT-SVIDs authenticate the application request and are bound to the peer SPIFFE ID authenticated by the live X.509-SVID mTLS connection.
Implementations§
Source§impl SpiffeWorkloadIdentityProvider
impl SpiffeWorkloadIdentityProvider
pub async fn connect( config: SpiffeWorkloadIdentityConfig, ) -> Result<Self, WorkloadIdentityError>
pub fn config(&self) -> &SpiffeWorkloadIdentityConfig
Sourcepub fn x509_source(&self) -> X509Source
pub fn x509_source(&self) -> X509Source
Live X.509 material for spiffe-rustls mTLS composition. New handshakes
consume rotated SVIDs without rebuilding this provider.
pub fn authenticated_transport_binding( peer_spiffe_id: &SpiffeId, ) -> AuthenticatedTransportBinding
pub async fn shutdown(&self)
Trait Implementations§
Source§impl WorkloadIdentityProvider for SpiffeWorkloadIdentityProvider
impl WorkloadIdentityProvider for SpiffeWorkloadIdentityProvider
fn issue( &self, request: WorkloadCredentialRequest, ) -> Result<WorkloadCredential, WorkloadIdentityError>
Source§fn issue_async(
&self,
request: WorkloadCredentialRequest,
) -> Pin<Box<dyn Future<Output = Result<WorkloadCredential, WorkloadIdentityError>> + Send + '_>>
fn issue_async( &self, request: WorkloadCredentialRequest, ) -> Pin<Box<dyn Future<Output = Result<WorkloadCredential, WorkloadIdentityError>> + Send + '_>>
Asynchronous credential issuance for providers backed by networked or
local-agent protocols. Existing synchronous providers inherit a
source-compatible adapter around
issue.fn verify( &self, token: &str, verification: &WorkloadIdentityVerification, ) -> Result<AuthenticatedServicePrincipal, WorkloadIdentityError>
Auto Trait Implementations§
impl !RefUnwindSafe for SpiffeWorkloadIdentityProvider
impl !UnwindSafe for SpiffeWorkloadIdentityProvider
impl Freeze for SpiffeWorkloadIdentityProvider
impl Send for SpiffeWorkloadIdentityProvider
impl Sync for SpiffeWorkloadIdentityProvider
impl Unpin for SpiffeWorkloadIdentityProvider
impl UnsafeUnpin for SpiffeWorkloadIdentityProvider
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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> ⓘ
Converts
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> ⓘ
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request