Provisioning puntuale degli utenti just-in-time-user-provisioning
I moduli AEM supportano il provisioning in tempo reale di utenti che non esistono ancora in Gestione utente. Con il provisioning in tempo reale, gli utenti vengono aggiunti automaticamente a Gestione utente dopo che le loro credenziali sono state autenticate correttamente. Inoltre, i ruoli e i gruppi rilevanti vengono assegnati in modo dinamico al nuovo utente.
Necessità di provisioning degli utenti in tempo reale need-for-just-in-time-user-provisioning
L’autenticazione tradizionale funziona in questo modo:
-
Quando un utente tenta di accedere AEM moduli, Gestione utente trasmette le credenziali dell’utente in sequenza a tutti i provider di autenticazione disponibili. (Le credenziali di accesso includono una combinazione nome utente/password, ticket Kerberos, firma PKCS7 e così via.)
-
Il provider di autenticazione convalida le credenziali.
-
Il provider di autenticazione controlla quindi se l'utente esiste nel database User Management. Sono possibili i seguenti risultati:
Esiste: Se l'utente è corrente e sbloccato, Gestione utente restituisce l'autenticazione riuscita. Tuttavia, se l'utente non è corrente o è bloccato, Gestione utente restituisce un errore di autenticazione.
Non esiste: Gestione utente restituisce un errore di autenticazione.
Non valido: Gestione utente restituisce un errore di autenticazione.
-
Viene valutato il risultato restituito dal provider di autenticazione. Se il provider di autenticazione ha restituito l'autenticazione, l'utente può effettuare l'accesso. In caso contrario, User Management controlla con il provider di autenticazione successivo (passaggi 2-3).
-
Se le credenziali utente non vengono convalidate da alcun provider di autenticazione disponibile, viene restituito un errore di autenticazione.
Quando si implementa il provisioning in tempo reale, un nuovo utente viene creato dinamicamente in Gestione utente se uno dei provider di autenticazione convalida le credenziali dell’utente. (Dopo il passaggio 3 nella procedura di autenticazione tradizionale, sopra.)
Implementare il provisioning degli utenti in tempo reale implement-just-in-time-user-provisioning
API per il provisioning just-in-time apis-for-just-in-time-provisioning
AEM forms fornisce le seguenti API per il provisioning in tempo reale:
package com.adobe.idp.um.spi.authentication ;
publ ic interface IdentityCreator {
/**
* Tries to create a user with the in formation provided in the <code>UserProvisioningBO</code> object.
* If the user is successfully created, a valid AuthResponse is returned along with the information using which the user was created.
* It is the responsibility of the IdentityCreator to set the User obje ct in the cre dential map with th e ke y <code>UMA u thenticationUtil.authenticatedUserKey</code>
* The credentials are available in the <code>UserProvisioningBO</code> object in the 'credentials' property.
* If the IdentityCreator is unable to create a user due to any reason, it returns <code>null</code>
* @param userBO An object of <code>com.adobe. i dp.um . spi.authenti c ationUserProvisioningBO</code>
* @return */public AuthResponse create(UserProvisioningBO userBO);
/**
* Returns the name of the IdentityCreator which will be registered in preferences.
* This name is used to associate the IdentityProvider with the Auth Provider Configuration in the domain.
* @return The name of the Identity Creator which is recognized in Configuration.
*/
public String getName();
}
package com.adobe.idp.um.spi.authentication;
import com.adobe.idp.um.api.infomodel.User;
public interface AssignmentProvider {
/**
* Tries to assign roles or permissions or group memberships to users created via Just-in-time provisioning.
* @param user The User created via the Just-in-time provisioning process.
* @return a Boolean flag indicating whether the assignment was successful or not.
*/
public Boolean assign(User user);
/**
* Returns the name of the AssignmentProvider through which it is registered under preferences.
* This name is used to associate the AssignmentProvider with the Auth Provider Configuration in the domain.
* @return The name of the AssignmentProvider which is recognized in Configuration.
*/public String getName();
}
Considerazioni durante la creazione di un dominio abilitato solo nel tempo considerations-while-creating-a-just-in-time-enabled-domain
- Durante la creazione di un
IdentityCreator
per un dominio ibrido, assicurati che per l’utente locale sia specificata una password fittizia. Non lasciare vuoto questo campo password. - Raccomandazione: Utilizzo
DomainSpecificAuthentication
per convalidare le credenziali utente rispetto a un dominio specifico.
Creare un dominio abilitato nel tempo create-a-just-in-time-enabled-domain
-
Scrivi un DSC che implementa le API nella sezione "API per il provisioning just-in-time".
-
Distribuire il DSC nel server dei moduli.
-
Crea un dominio abilitato per il momento:
- In Admin Console, fai clic su Impostazioni > Gestione utente > Gestione dominio > Nuovo dominio Enterprise.
- Configura il dominio e seleziona Abilita provisioning in tempo.
- Aggiungi provider di autenticazione. Durante l’aggiunta di provider di autenticazione, nella schermata Nuova autenticazione , seleziona un creatore di identità registrato e un fornitore di assegnazione.
-
Salva il nuovo dominio.
Dietro le quinte behind-the-scenes
Supponiamo che un utente stia tentando di accedere a AEM moduli e che un provider di autenticazione accetti le credenziali utente. Se l'utente non esiste ancora nel database di Gestione utente, il controllo di identità dell'utente non riesce. AEM Forms esegue ora le azioni seguenti:
- Crea un
UserProvisioningBO
con i dati di autenticazione e inserirli in una mappa delle credenziali. - In base alle informazioni di dominio restituite da
UserProvisioningBO
, recupera e richiama ilIdentityCreator
eAssignmentProvider
per il dominio . - Richiama
IdentityCreator
. Se restituisce un risultato positivoAuthResponse
estrattoUserInfo
dalla mappa delle credenziali. Passa aAssignmentProvider
per l’assegnazione di gruppi/ruoli e qualsiasi altro post-elaborazione dopo la creazione dell’utente. - Se l'utente viene creato correttamente, il tentativo di accesso dell'utente viene restituito come riuscito.
- Per i domini ibridi, estrai le informazioni utente dai dati di autenticazione forniti al provider di autenticazione. Se queste informazioni vengono recuperate correttamente, crea l’utente on-the-fly.
IdentityCreator
che puoi utilizzare per creare utenti in modo dinamico. Gli utenti vengono creati con le informazioni associate alle directory nel dominio .