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§
sourcefn origin(&self) -> ProviderOrigin
fn origin(&self) -> ProviderOrigin
Retrieve this providers origin
sourcefn 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 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
sourcefn 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_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
sourcefn mark_offline<'life0, 'async_trait>(
&'life0 self,
) -> 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,
Force this provider offline immediately.
sourcefn has_map_group(&self, local: &str) -> Option<&Id>
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.
sourcefn 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_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?