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:

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à:

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.

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole.

  2. Passare a Identity Federation , Service Provider Administration.

  3. Aprire il partner IdP per il quale si desidera creare lo schema.

  4. Fare clic sul pulsante Crea schema e modulo di autenticazione.

Descrizione dell'immagine OAM_Admin_Console.jpg

La console di amministrazione di OAM crea:

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.

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

  4. Eseguire il comando createAuthnSchemeAndModule(): specificare il nome partner IdP Un esempio è: createAuthnSchemeAndModule("AcmeIdP").

  5. 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.

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole.

  2. Passare a Access Manager , Dominio applicazione.

  3. Fare clic su Cerca e aprire il dominio dell'applicazione contenente le risorse che si desidera proteggere con il nuovo FederationScheme.

  4. Fare clic sulla scheda Criteri di autenticazione.

  5. Creare un nuovo criterio di autenticazione o modificarne uno esistente.

  6. Selezionare il nuovo FederationScheme.

  7. 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 è:

Il modulo di autenticazione della federazione OOTB, denominato FederationPlugin, è costituito da due plugin:

L'orchestrazione può essere visualizzata da:

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole.

  2. Passare a Access Manager, Moduli di autenticazione.

  3. Aprire FederationScheme.

  4. Fare clic sulla scheda dei passi per visualizzare i plugin.

  5. 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 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:

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:

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.

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

  4. Abilitare/disabilitare OAM/SP per utilizzare un servizio di ricerca automatica IdP: putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "true/false").

    1. Per abilitare: putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "true")

    2. Per disabilitare putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "false")

  5. Impostare la posizione del servizio di ricerca automatica IdP remoto: putStringProperty("/spglobal /idpdiscoveryserviceurl", "URL").

  6. Sostituire l'URL in base alla posizione del servizio.

    1. 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").

    2. Per un servizio remoto, un esempio è putStringProperty("/spglobal /idpdiscoveryserviceurl", "http://sp.com/discovery").

  7. Uscire dall'ambiente WLST: exit().

Per utilizzare il semplice IdP Discovery Service in bundle, effettuare le operazioni riportate di seguito.

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

  4. Abilita/disabilita il servizio IdP Discovery incorporato: putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "true/false").

    1. Per abilitare: putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "true").

    2. Per disabilitare putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "false").

  5. Uscire dall'ambiente WLST: exit().

Test

Nell'ambiente di test si dispone di tre elementi IdPs:

OAM/SP è configurato per:

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.

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole.

  2. Passare a Identity Federation , Service Provider Administration.

  3. Aprire il partner IdP.

  4. Selezionare la casella Partner provider di identità predefinito.

  5. 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.

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

  4. Eseguire il comando setDefaultSSOIdPPartner().

  5. Specificare il nome partner IdP Un esempio è: setDefaultSSOIdPPartner("AcmeIdP").

  6. 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.