kanidm_unix_resolver::idprovider::interface

Trait IdProvider

source
pub trait IdProvider {
Show 13 methods // Required methods fn origin(&self) -> ProviderOrigin; fn attempt_online<'life0, 'life1, 'async_trait>( &'life0 self, _tpm: &'life1 mut BoxedDynTpm, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn mark_next_check<'life0, 'async_trait>( &'life0 self, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn mark_offline<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn has_map_group(&self, local: &str) -> Option<&Id>; fn unix_user_get<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _id: &'life1 Id, _token: Option<&'life2 UserToken>, _tpm: &'life3 mut BoxedDynTpm, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = Result<UserTokenState, IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait; fn unix_user_online_auth_init<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, _account_id: &'life1 str, _token: &'life2 UserToken, _tpm: &'life3 mut BoxedDynTpm, _shutdown_rx: &'life4 Receiver<()>, ) -> Pin<Box<dyn Future<Output = Result<(AuthRequest, AuthCredHandler), IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait; fn unix_user_online_auth_step<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, _account_id: &'life1 str, _cred_handler: &'life2 mut AuthCredHandler, _pam_next_req: PamAuthRequest, _tpm: &'life3 mut BoxedDynTpm, _shutdown_rx: &'life4 Receiver<()>, ) -> Pin<Box<dyn Future<Output = Result<AuthResult, IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait; fn unix_unknown_user_online_auth_init<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _account_id: &'life1 str, _tpm: &'life2 mut BoxedDynTpm, _shutdown_rx: &'life3 Receiver<()>, ) -> Pin<Box<dyn Future<Output = Result<Option<(AuthRequest, AuthCredHandler)>, IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait; fn unix_user_offline_auth_init<'life0, 'life1, 'async_trait>( &'life0 self, _token: &'life1 UserToken, ) -> Pin<Box<dyn Future<Output = Result<(AuthRequest, AuthCredHandler), IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn unix_user_offline_auth_step<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _token: &'life1 UserToken, _cred_handler: &'life2 mut AuthCredHandler, _pam_next_req: PamAuthRequest, _tpm: &'life3 mut BoxedDynTpm, ) -> Pin<Box<dyn Future<Output = Result<AuthResult, IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait; fn unix_user_authorise<'life0, 'life1, 'async_trait>( &'life0 self, _token: &'life1 UserToken, ) -> Pin<Box<dyn Future<Output = Result<Option<bool>, IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn unix_group_get<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Id, _tpm: &'life2 mut BoxedDynTpm, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = Result<GroupTokenState, IdpError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait;
}

Required Methods§

source

fn origin(&self) -> ProviderOrigin

Retrieve this providers origin

source

fn attempt_online<'life0, 'life1, 'async_trait>( &'life0 self, _tpm: &'life1 mut BoxedDynTpm, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Attempt to go online immediately

source

fn mark_next_check<'life0, 'async_trait>( &'life0 self, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Mark that this provider should attempt to go online next time it receives a request

source

fn mark_offline<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Force this provider offline immediately.

source

fn has_map_group(&self, local: &str) -> Option<&Id>

Determine if this provider has a configured extension of a local system group with remote members.

source

fn unix_user_get<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _id: &'life1 Id, _token: Option<&'life2 UserToken>, _tpm: &'life3 mut BoxedDynTpm, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = Result<UserTokenState, IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

This is similar to a “domain join” process. What do we actually need to pass here for this to work for kanidm or himmelblau? Should we make it take a generic?

source

fn unix_user_online_auth_init<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, _account_id: &'life1 str, _token: &'life2 UserToken, _tpm: &'life3 mut BoxedDynTpm, _shutdown_rx: &'life4 Receiver<()>, ) -> Pin<Box<dyn Future<Output = Result<(AuthRequest, AuthCredHandler), IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

source

fn unix_user_online_auth_step<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, _account_id: &'life1 str, _cred_handler: &'life2 mut AuthCredHandler, _pam_next_req: PamAuthRequest, _tpm: &'life3 mut BoxedDynTpm, _shutdown_rx: &'life4 Receiver<()>, ) -> Pin<Box<dyn Future<Output = Result<AuthResult, IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

source

fn unix_unknown_user_online_auth_init<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _account_id: &'life1 str, _tpm: &'life2 mut BoxedDynTpm, _shutdown_rx: &'life3 Receiver<()>, ) -> Pin<Box<dyn Future<Output = Result<Option<(AuthRequest, AuthCredHandler)>, IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

source

fn unix_user_offline_auth_init<'life0, 'life1, 'async_trait>( &'life0 self, _token: &'life1 UserToken, ) -> Pin<Box<dyn Future<Output = Result<(AuthRequest, AuthCredHandler), IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn unix_user_offline_auth_step<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _token: &'life1 UserToken, _cred_handler: &'life2 mut AuthCredHandler, _pam_next_req: PamAuthRequest, _tpm: &'life3 mut BoxedDynTpm, ) -> Pin<Box<dyn Future<Output = Result<AuthResult, IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

source

fn unix_user_authorise<'life0, 'life1, 'async_trait>( &'life0 self, _token: &'life1 UserToken, ) -> Pin<Box<dyn Future<Output = Result<Option<bool>, IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn unix_group_get<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Id, _tpm: &'life2 mut BoxedDynTpm, _now: SystemTime, ) -> Pin<Box<dyn Future<Output = Result<GroupTokenState, IdpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Implementors§