Mapping dei metodi di autenticazione federale ai livelli di autenticazione in OAM e SP

In questo articolo, esaminiamo OAM/SP e come può essere impostato per richiedere un metodo di autenticazione federativo specifico da utilizzare dal partner remoto IdP in fase di esecuzione per sfidare l'utente.

Livello di autenticazione

OAM definisce il concetto di livello di autenticazione nello schema di autenticazione. Indica a OAM il livello di efficacia di un particolare schema sotto forma di numero (1, 2, 3...) e viene utilizzato in runtime quando un utente già autenticato tenta di accedere a una risorsa protetta.

Quando un utente viene autenticato da OAM tramite uno schema di autenticazione, OAM crea una sessione per tale utente e memorizza nella sessione:

Quando l'utente tenta di accedere a una risorsa protetta, OAM esegue le operazioni riportate di seguito.

Metodi di autenticazione federazione

I messaggi di risposta SSO Federation emessi da un IdP/OP per SAML 2.0/SAML 1.1/OpenID 2.0 contengono un metodo di autenticazione Federation che indica la modalità di richiesta di verifica dell'utente in IdP.

Per impostazione predefinita, quando OAM/SP utilizza una risposta SSO, viene creata una sessione OAM con il livello di autenticazione della sessione impostato sul livello di autenticazione dello schema di autenticazione. Questa operazione è piuttosto statica e ignora la modalità di richiesta di verifica dell'utente in IdP.

Il metodo di autenticazione federativo contenuto nella risposta SSO indica come l'utente è stato identificato in IdP ed è talvolta preferibile basare il livello di autenticazione della sessione OAM su tali informazioni invece di basarsi sul livello contenuto nello schema di autenticazione federativo.

Quando si utilizzano le risposte SSO Federation, OAM/SP consente il mapping dinamico dei metodi di autenticazione Federation contenuti nella risposta ai livelli di autenticazione personalizzati, con conseguente creazione di una sessione OAM con un livello che riflette la modalità di richiesta di verifica dell'utente in IdP.

Comandi WLST

È possibile configurare OAM/SP per mappare un metodo di autenticazione federativo specifico a un livello di autenticazione tramite

I comandi WLST OAM che possono essere utilizzati sono:

Test

Impostazione

In questa impostazione, OAM funge da SP ed è integrato con un partner SAML 2.0 IdP remoto identificato da AcmeIdP:

Nei test riportati di seguito, eseguire SSO Federation con OAM/SP configurato per accedere a entrambe le risorse e accedervi.

SSO con nome utente/password

IdP sfida l'utente con il suo meccanismo di autenticazione predefinito (in questo caso con un meccanismo mappato a urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport). La risposta SSO SAML 2.0 è simile a:

  <samlp:Response ...>
      <saml:Issuer ...>hTps://acmeidp.com</saml:Issuer>
      <samlp:Status>
          <samlp:StatusCode
  Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
      </samlp:Status>
      <saml:Assertion ...>
          <saml:Issuer
  ...>hTps://acmeidp.com</saml:Issuer>
          <dsig:Signature>
              ...
          </dsig:Signature>
          <saml:Subject>
              <saml:NameID
  ...>bob@oracle.com</saml:NameID>
              <saml:SubjectCon=rmation
  Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                  <saml:SubjectCon=rmationData .../>
              </saml:SubjectCon=rmation>
          </saml:Subject>
          <saml:Conditions ...>
              <saml:AudienceRestriction>

  <saml:Audience>hTps://sp.com</saml:Audience>
              </saml:AudienceRestriction>
          </saml:Conditions>
          <saml:AuthnStatement
  AuthnInstant="2014-03-21T20:53:55Z"
  SessionIndex="id-6i-Dm0yBHekG6cejktwcKIFMzYE8Yrmqwfd0azz"
  SessionNotOnOrAfter="2014-03-21T21:53:55Z">
              <saml:AuthnContext>
                  <saml:AuthnContextClassRef>

  urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
                  </saml:AuthnContextClassRef>
              </saml:AuthnContext>
          </saml:AuthnStatement>
      </saml:Assertion>
  </samlp:Response>

Dopo che OAM/SP ha utilizzato l'asserzione SAML 2.0 e creato una sessione OAM con il livello di autenticazione impostato sul livello di autenticazione (2) di FederationScheme, poiché non esiste alcun mapping per urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:

SSO con certificato X.509

Il file IdP richiede il certificato X.509 dell'utente (mappato a urn:oasis:names:tc:SAML:2.0:ac:classes:X509)

La risposta SSO SAML 2.0 è simile alla seguente:

 <samlp:Response ...>
     <saml:Issuer ...>hTps://acmeidp.com</saml:Issuer>
     <samlp:Status>
         <samlp:StatusCode
 Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
     </samlp:Status>
     <saml:Assertion ...>
         <saml:Issuer
 ...>hTps://acmeidp.com</saml:Issuer>
         <dsig:Signature>
             ...
         </dsig:Signature>
         <saml:Subject>
             <saml:NameID
 ...>bob@oracle.com</saml:NameID>
             <saml:SubjectCon=rmation
 Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                 <saml:SubjectCon=rmationData .../>
             </saml:SubjectCon=rmation>
         </saml:Subject>
         <saml:Conditions ...>
             <saml:AudienceRestriction>

 <saml:Audience>hTps://sp.com</saml:Audience>
             </saml:AudienceRestriction>
         </saml:Conditions>
         <saml:AuthnStatement
 AuthnInstant="2014-03-21T20:53:55Z"
 SessionIndex="id-6i-Dm0yBHekG6cejktwcKIFMzYE8Yrmqwfd0azz"
 SessionNotOnOrAfter="2014-03-21T21:53:55Z">             <saml:AuthnContext>
                 <saml:AuthnContextClassRef>

 urn:oasis:names:tc:SAML:2.0:ac:classes:X509
                 </saml:AuthnContextClassRef>
             </saml:AuthnContext>
         </saml:AuthnStatement>
     </saml:Assertion>
 </samlp:Response>

Dopo che OAM/SP ha utilizzato l'asserzione SAML 2.0 e creato una sessione OAM con il livello di autenticazione impostato sul livello di autenticazione (2) di FederationScheme, poiché non esiste alcun mapping per urn:oasis:names:tc:SAML:2.0:ac:classes:X509:

Mapping del metodo di autenticazione federale X.509 al livello 3

Per configurare OAM/SP per mappare urn:oasis:names:tc:SAML:2.0:ac:classes:X509 al livello di autenticazione 3, utilizzare addIdPPartnerAuthnMethod() per configurare il partner IdP:

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

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

  3. Passare alla diramazione Runtime dominio: domainRuntime()

  4. Eseguire il comando addIdPPartnerAuthnMethod(): addIdPPartnerAuthnMethod("AcmeIdP", "3")

  5. Uscire dall'ambiente WLST: exit()

SSO con nome utente/password

IdP sfida l'utente con il meccanismo di autenticazione predefinito (in questo caso con un meccanismo mappato a urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport)

Dopo che OAM/SP ha utilizzato l'asserzione SAML 2.0 e creato una sessione OAM con il livello di autenticazione impostato sul livello di autenticazione (2) di FederationScheme, poiché non esiste alcun mapping per urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:

  1. Quando si accede a Resource1, l'accesso verrà concesso perché il livello della sessione OAM è 2, che equivale al livello dello schema che protegge tale risorsa (2)

  2. Quando si accede a Resource2, OAM sfida l'utente tramite LDAPScheme, perché il livello della sessione OAM è 2, che è inferiore al livello dello schema che protegge tale risorsa (3)

SSO con certificato X.509

Il file IdP richiede il certificato X.509 dell'utente (mappato a urn:oasis:names:tc:SAML:2.0:ac:classes:X509)

Dopo che OAM/SP ha utilizzato l'asserzione SAML 2.0 e creato una sessione OAM con il livello di autenticazione impostato su 3, poiché esiste un mapping per urn:oasis:names:tc:SAML:2.0:ac:classes:X509:

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.