Determinazione del IdP da utilizzare per SSO Federation
Come provider di servizi, quando si attiva un'operazione SSO Federation, a volte la sfida principale consiste nel determinare quale IdP deve essere selezionato per il flusso SSO, nei casi in cui il provider di servizi ha accordi di affidabilità con più IdPs.
OAM/SP dispone di un meccanismo diverso per selezionare IdP per l'operazione SSO Federation, tra cui:
-
Avere lo schema federativo OAM che indica il IdP da utilizzare
-
Avere un'impostazione personalizzata del plugin di autenticazione OAM IdP da utilizzare
-
Utilizzo di un servizio di ricerca automatica SAML 2.0 IdP se IdP non è stato specificato dallo schema né da un plugin personalizzato
-
Viene utilizzato il file IdP SSO predefinito se non viene utilizzato il servizio di ricerca automatica IdP
La sezione seguente esplora in dettaglio ciascun meccanismo.
Schema federazione OAM
OAM fornisce strumenti di amministrazione per creare uno schema di autenticazione OAM che sarà:
-
Uno schema di federazione
-
Limitato a un partner IdP specifico
Quando una risorsa è protetta con questo tipo di schema di autenticazione e se un utente non autenticato richiede l'accesso, verrà attivato un flusso SSO Federation con il partner IdP a cui è associato lo schema.
La creazione di tali schemi consente a un amministratore di disporre di risorse specifiche che determinano un SSO Federation con partner IdP specifici.
Nota: se l'utente è già stato autenticato con una sessione valida con un livello sufficientemente elevato, l'accesso alle risorse protette da altri schemi federativi potrebbe non generare un nuovo SSO Federation.
Console di amministrazione di OAM
Per creare uno schema di autenticazione OAM per un partner IdP specifico, eseguire i passi riportati di seguito.
-
Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole. -
Passare a Identity Federation , Service Provider Administration.
-
Aprire il partner IdP per il quale si desidera creare lo schema.
-
Fare clic sul pulsante Crea schema e modulo di autenticazione.

Descrizione dell'immagine OAM_Admin_Console.jpg
La console di amministrazione di OAM crea:
-
Un modulo di autenticazione OAM associato a questo partner IdP denominato
<PARTNER_NAME>FederationPlugin. -
Uno schema di autenticazione OAM associato al modulo di autenticazione OAM appena creato denominato
<PARTNER_NAME>FederationScheme.

Descrizione dell'immagine OAM_Admin_Console_with_message.jpg
Comando WLST
Per creare uno schema di autenticazione OAM per un partner IdP specifico utilizzando il comando WLST createAuthnSchemeAndModule() OAM, eseguire i passi riportati di seguito.
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh. -
Connettersi al server di amministrazione WLS:
connect(). -
Passare alla diramazione Runtime dominio:
domainRuntime(). -
Eseguire il comando
createAuthnSchemeAndModule(): specificare il nome partner IdP Un esempio è:createAuthnSchemeAndModule("AcmeIdP"). -
Uscire dall'ambiente WLST:
exit().
Nota: per eliminare uno schema/modulo federazione di questo tipo, eseguire il comando OAM WLST
deleteAuthnSchemeAndModule().
Protezione di una risorsa
Per proteggere una risorsa con un <PARTNER_NAME>FederationScheme che attiva SSO Federation con il partner IdP specifico, eseguire le operazioni riportate di seguito.
-
Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole. -
Passare a Access Manager , Dominio applicazione.
-
Fare clic su Cerca e aprire il dominio dell'applicazione contenente le risorse che si desidera proteggere con il nuovo
FederationScheme. -
Fare clic sulla scheda Criteri di autenticazione.
-
Creare un nuovo criterio di autenticazione o modificarne uno esistente.
-
Selezionare il nuovo
FederationScheme. -
Fare clic su Applica.

Descrizione dell'immagine Authentication_Policies.jpg
Dopo aver apportato questa modifica, ogni volta che un utente richiede risorse protette da questo criterio di autenticazione e che l'utente deve essere autenticato, viene eseguito un SSO Federation con il partner IdP specifico (AcmeIdP in questo esempio).
Plug autenticazione OAM personalizzata
Overview
Un modulo di autenticazione OAM è:
-
Una raccolta di plugin di autenticazione
-
Un'orchestrazione che determina l'ordine di esecuzione dei plugin
Il modulo di autenticazione della federazione OOTB, denominato FederationPlugin, è costituito da due plugin:
-
FedAuthnRequestPlugin: avvia il flusso SSO Federation, determina l'elemento IdP da utilizzare, crea una richiesta SSO e reindirizza l'utente a IdP
-
AssertionProcessing: elabora una risposta SSO SAML/OpenID in entrata e mappa il messaggio a un record utente locale nella directory LDAP
L'orchestrazione può essere visualizzata da:
-
Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole. -
Passare a Access Manager, Moduli di autenticazione.
-
Aprire
FederationScheme. -
Fare clic sulla scheda dei passi per visualizzare i plugin.
-
Fare clic sulla scheda Orchestrazione passi per visualizzare l'orchestrazione tra i vari plugin e il plugin utilizzato per avviare l'operazione.

Descrizione dell'immagine Steps_Orchestration.jpg
Implementazione di un plugin personalizzato
È possibile implementare un plugin personalizzato in base alla struttura del plugin di autenticazione personalizzata OAM che determina l'IdP da utilizzare per una specifica operazione SSO Federation:
-
Il plugin determina quale IdP deve essere utilizzato attraverso un approccio specifico (cookie, selezione degli utenti tramite una pagina, programmatico...)
-
Al termine della selezione, il plugin deve salvare il nome del partner IdP nell'istanza di credenziale salvata in
AuthenticationContext -
Il plugin restituisce uno stato di operazione riuscita
-
OAM richiama il plugin successivo (
FedAuthnRequestPlugin) che recupera il nome partner IdP daAuthenticationContext -
SSO Federation viene avviato con il file IdP specificato.
Il codice per salvare il nome del partner IdP in AuthenticationContext è simile al seguente:
public ExecutionStatus
process(AuthenticationContext context)
{
...
CredentialParam param = new CredentialParam();
param.setName("KEY_FEDIDP");
param.setType("string");
param.setValue(IDP_PARTNER_NAME);
context.getCredential().addCredentialParam("KEY_FEDIDP", param);
...
return ExecutionStatus.SUCCESS;
}
Dopo l'implementazione del plugin:
-
Deve essere fornito in package, caricato, distribuito e attivato
-
È necessario creare un nuovo modulo di autenticazione con tre plugin
-
Il plugin personalizzato
-
FedAuthnRequestPlugin
-
AssertionProcessing
-
-
L'orchestrazione deve essere impostata con:
-
Il plugin personalizzato è il plugin personalizzato del passo iniziale:
-
In caso di operazione riuscita, viene richiamato
FedAuthnRequestPlugin -
In caso di errore, viene restituito un errore in caso di errore
-
-
FedAuthnRequestPlugin:
-
In caso di operazione riuscita, è necessario restituire l'operazione riuscita
-
In caso di errore, richiamare AssertionProcessing
-
In caso di errore, l'errore deve essere restituito
-
-
Plugin personalizzato:
-
In caso di operazione riuscita, è necessario restituire l'operazione riuscita
-
In caso di errore, l'errore deve essere restituito in caso di errore, l'errore deve essere restituito
-
-
-
È necessario creare un nuovo schema di autenticazione OAM utilizzando il nuovo modulo di autenticazione OAM. Il nuovo regime dovrebbe essere simile all'OTB FederationScheme.
Infine, puoi proteggere le risorse utilizzando il nuovo schema OAM, che utilizza il modulo/plugin di autenticazione personalizzati per eseguire l'operazione SSO Federation.
Nota: vedere ulteriori informazioni sui plugin personalizzati nel manuale OAM Developer's Guide.
Servizio di ricerca automatica IdP
Overview
La specifica SAML 2.0 "Identity Provider Discovery Service Protocol and Profile" consente agli SP SAML 2.0 di delegare la selezione IdP a un servizio remoto.
Il flusso è descritto nella specifica SAML 2.0 ed è costituito dai seguenti passi:
-
SP è configurato per utilizzare un servizio di ricerca automatica IdP remoto per determinare il IdP da utilizzare per l'operazione SSO Federation.
-
L'SP reindirizza l'utente al servizio IdP Discovery tramite un reindirizzamento HTTP 302 e fornisce i parametri riportati di seguito nella stringa di query.
-
entityID: l'emittente/ProviderID di OAM/SP -
returnIDParam: il nome del parametro della stringa di query che il servizio deve utilizzare per il parametro contenente il valore IdP ProviderID quando l'utente viene reindirizzato a OAM/SP -
return: l'URL da utilizzare per reindirizzare l'utente a OAM/SP
-
-
Il servizio determina il file IdP da utilizzare
-
Il servizio reindirizza l'utente a OAM/SP tramite un reindirizzamento HTTP 302 in base al parametro di query "return" specificato dal provider di servizi e fornisce i parametri riportati di seguito nella stringa di query.
-
Un parametro di query contenente il valore IdP ProviderID. Il nome di tale parametro di query viene specificato dall'SP nel parametro di query returnIDParam.
-
Configurazione di OAM/SP
È possibile configurare OAM/SP in modo che utilizzi qualsiasi servizio di ricerca automatica IdP remoto. OAM include un semplice servizio di ricerca automatica IdP utilizzato e consente all'utente di scegliere l'elemento IdP con cui eseguire SSO Federation. Per configurare OAM/SP per l'utilizzo di IdP Discovery Service, effettuare le operazioni riportate di seguito.
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh. -
Connettersi al server di amministrazione WLS:
connect(). -
Passare alla diramazione Runtime dominio:
domainRuntime(). -
Abilitare/disabilitare OAM/SP per utilizzare un servizio di ricerca automatica IdP:
putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "true/false").-
Per abilitare:
putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "true") -
Per disabilitare
putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "false")
-
-
Impostare la posizione del servizio di ricerca automatica IdP remoto:
putStringProperty("/spglobal /idpdiscoveryserviceurl", "URL"). -
Sostituire l'URL in base alla posizione del servizio.
-
Per il semplice servizio di ricerca automatica IdP in bundle, sostituire l'URL con
/oamfed/discovery.jsp(questo è il valore OOTB per questa proprietà):putStringProperty("/spglobal /idpdiscoveryserviceurl", "/oamfed/discovery.jsp"). -
Per un servizio remoto, un esempio è
putStringProperty("/spglobal /idpdiscoveryserviceurl", "http://sp.com/discovery").
-
-
Uscire dall'ambiente WLST:
exit().
Per utilizzare il semplice IdP Discovery Service in bundle, effettuare le operazioni riportate di seguito.
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh. -
Connettersi al server di amministrazione WLS:
connect(). -
Passare alla diramazione Runtime dominio:
domainRuntime(). -
Abilita/disabilita il servizio IdP Discovery incorporato:
putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "true/false").-
Per abilitare:
putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "true"). -
Per disabilitare
putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "false").
-
-
Uscire dall'ambiente WLST:
exit().
Test
Nell'ambiente di test si dispone di tre elementi IdPs:
-
AcmeIdP: SAML 2.0 IdP
-
Google: Google OpenID OP
-
Yahoo: l'OP Yahoo OpenID
OAM/SP è configurato per:
-
Usa un servizio di ricerca automatica IdP
-
Reindirizza l'utente al semplice IdP Discovery Service in bundle
-
Abilitare il servizio semplice di ricerca automatica IdP in bundle
Se l'utente richiede l'accesso a una risorsa protetta da FederationScheme, il servizio di ricerca automatica semplice in bundle IdP richiede all'utente di selezionare un IdP per eseguire SSO Federation con:

Descrizione dell'immagine Access_Manager.jpg
Provider di identità SSO predefinito
Se nessuno dei metodi precedenti viene utilizzato per indicare quale IdP utilizzare per SSO Federation, OAM/SP utilizza il partner IdP contrassegnato come provider di identità SSO predefinito.
Console di amministrazione di OAM
Per indicare che un partner IdP specifico deve essere il provider di identità SSO predefinito tramite la console di amministrazione OAM, effettuare le operazioni riportate di seguito.
-
Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole. -
Passare a Identity Federation , Service Provider Administration.
-
Aprire il partner IdP.
-
Selezionare la casella Partner provider di identità predefinito.
-
Fare clic su Applica.

Descrizione dell'immagine Default_Identity_Provider.jpg
Comando WLST
Per indicare un partner IdP specifico come provider di identità SSO predefinito mediante il comando OAM WLST setDefaultSSOIdPPartner(), effettuare le operazioni riportate di seguito.
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh. -
Connettersi al server di amministrazione WLS:
connect(). -
Passare alla diramazione Runtime dominio:
domainRuntime(). -
Eseguire il comando
setDefaultSSOIdPPartner(). -
Specificare il nome partner IdP Un esempio è:
setDefaultSSOIdPPartner("AcmeIdP"). -
Uscire dall'ambiente WLST:
exit().
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o visita altri contenuti di formazione gratuiti sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione sul prodotto, visitare Oracle Help Center.
Determining which IdP to use for Federation
F60233-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.