Single Sign-On single-sign-on

Single Sign-On (SSO) consente a un utente di accedere a più sistemi dopo aver fornito le credenziali di autenticazione, ad esempio un nome utente e una password. L'autenticazione viene eseguita da un sistema separato, denominato autenticatore attendibile, che fornisce agli Experienci Manager le credenziali utente. Experience Manager verifica e applica le autorizzazioni di accesso per l’utente (ovvero, determina quali risorse l’utente può accedere).

Il servizio Gestore autenticazione SSO ( com.adobe.granite.auth.sso.impl.SsoAuthenticationHandler) elabora i risultati di autenticazione forniti dall'autenticatore attendibile. Il gestore di autenticazione SSO cerca un identificatore SSO (SSID) come valore di un attributo speciale nelle posizioni seguenti in questo ordine:

  1. Intestazioni richiesta
  2. Cookie
  3. Parametri di richiesta

Quando viene trovato un valore, la ricerca viene completata e questo valore viene utilizzato.

Configura i due servizi seguenti per riconoscere il nome dell'attributo che memorizza l'SSID:

  • Il modulo di accesso.
  • Il servizio di autenticazione SSO.

Specificare lo stesso nome di attributo per entrambi i servizi. L'attributo è incluso in SimpleCredentials fornito a Repository.login. Il valore dell’attributo è irrilevante e ignorato, la sua mera presenza è importante e verificata.

Configurazione dell’SSO configuring-sso

Per configurare SSO per un'istanza AEM, configurare il Gestore autenticazione SSO:

  1. Quando si lavora con AEM, esistono diversi metodi per gestire le impostazioni di configurazione per tali servizi; vedere Configurazione di OSGi per ulteriori dettagli e le procedure consigliate.

    Ad esempio, per il set NTLM:

    • Percorso: come richiesto; ad esempio, /

    • Nomi intestazione: LOGON_USER

    • Formato ID: ^<DOMAIN>\\(.+)$

      Dove <*DOMAIN*> è sostituito dal nome del tuo dominio.

    Per CoSign:

    • Percorso: come richiesto; ad esempio, /
    • Nomi intestazioni: remote_user
    • Formato ID: Così Com'È

    Per SiteMinder:

    • Percorso: come richiesto; ad esempio, /
    • Nomi intestazione: SM_USER
    • Formato ID: così com'è
  2. Verificare che Single Sign-On funzioni come richiesto, inclusa l'autorizzazione.

CAUTION
Assicurati che gli utenti non possano accedere direttamente all'AEM se SSO è configurato.
Richiedendo agli utenti di passare attraverso un server web che esegue l'agente del sistema SSO, si garantisce che nessun utente possa inviare direttamente un'intestazione, un cookie o un parametro che porti l'utente ad essere considerato attendibile dall'AEM, in quanto l'agente filtrerà tali informazioni se inviate dall'esterno.
Qualsiasi utente che può accedere direttamente all’istanza AEM senza passare per il server web sarà in grado di agire come qualsiasi altro utente inviando l’intestazione, il cookie o il parametro, se i nomi sono noti.
Inoltre, accertati che tra intestazioni, cookie e nomi di parametri di richiesta sia configurato solo quello necessario per la configurazione SSO.
NOTE
Single Sign-On viene spesso utilizzato con LDAP.
NOTE
Se si utilizza anche Dispatcher con Microsoft® Internet Information Server (IIS), è necessario configurare ulteriormente in:
  • disp_iis.ini
  • IIS
In disp_iis.ini set:
(per informazioni dettagliate, vedere installazione di Dispatcher con Microsoft® Internet Information Server)
  • servervariables=1 (inoltra le variabili del server IIS come intestazioni di richiesta all'istanza remota)
  • replaceauthorization=1 (sostituisce qualsiasi intestazione denominata "Authorization" diversa da "Basic" con il suo equivalente "Basic")
In IIS:
  • disabilita Accesso anonimo

  • abilita autenticazione integrata di Windows

Puoi vedere quale gestore di autenticazione viene applicato a qualsiasi sezione della struttura del contenuto utilizzando l'opzione Autenticatore della console Felix; ad esempio:

http://localhost:4502/system/console/slingauth

Viene eseguita prima una query sul gestore che corrisponde meglio al percorso. Ad esempio, se si configura il gestore A per il percorso / e il gestore B per il percorso /content, una richiesta a /content/mypage.html eseguirà prima la query del gestore B.

schermata_shot_2012-02-15at21006pm

Esempio example

Per una richiesta di cookie (utilizzando l'URL http://localhost:4502/libs/wcm/content/siteadmin.html):

GET /libs/cq/core/content/welcome.html HTTP/1.1
Host: localhost:4502
Cookie: TestCookie=admin

Utilizzando la seguente configurazione:

  • Percorso: /

  • Nomi intestazione: TestHeader

  • Nomi cookie: TestCookie

  • Nomi Parametri: TestParameter

  • Formato ID: AsIs

La risposta sarebbe:

HTTP/1.1 200 OK
Connection: Keep-Alive
Server: Day-Servlet-Engine/4.1.24
Content-Type: text/html;charset=utf-8
Date: Thu, 23 Aug 2012 09:58:39 GMT
Transfer-Encoding: chunked

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Welcome to Adobe&reg; CQ5</title>
....

Questo funziona anche se richiedi:
http://localhost:4502/libs/cq/core/content/welcome.html?TestParameter=admin

Oppure puoi usare il seguente comando curl per inviare l'intestazione TestHeader a admin:
curl -D - -H "TestHeader: admin" http://localhost:4502/libs/cq/core/content/welcome.html

NOTE
Quando utilizzi il parametro di richiesta in un browser, vengono visualizzati solo alcuni dei HTML, senza CSS. Questo perché tutte le richieste del HTML vengono effettuate senza il parametro di richiesta.

Quando si utilizza l’SSO, l’accesso e la disconnessione vengono gestiti esternamente, pertanto i collegamenti di disconnessione propri dell’AEM non sono più applicabili e devono essere rimossi.

Il collegamento di disconnessione nella schermata di benvenuto può essere rimosso seguendo la procedura riportata di seguito.

  1. Sovrapponi /libs/cq/core/components/welcome/welcome.jsp a /apps/cq/core/components/welcome/welcome.jsp

  2. rimuovi la parte seguente da jsp.

    <a href="#" onclick="signout('<%= request.getContextPath() %>');" class="signout"><%= i18n.get("sign out", "welcome screen") %>

Per rimuovere il collegamento di disconnessione disponibile nel menu personale dell'utente nell'angolo in alto a destra, eseguire la procedura seguente:

  1. Sovrapponi /libs/cq/ui/widgets/source/widgets/UserInfo.js a /apps/cq/ui/widgets/source/widgets/UserInfo.js

  2. Rimuovere la parte seguente dal file:

    code language-none
    menu.addMenuItem({
        "text":CQ.I18n.getMessage("Sign out"),
        "cls": "cq-userinfo-logout",
        "handler": this.logout
    });
    menu.addSeparator();
    
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2