Logon único single-sign-on

CAUTION
AEM 6.4 chegou ao fim do suporte estendido e esta documentação não é mais atualizada. Para obter mais detalhes, consulte nossa períodos de assistência técnica. Encontre as versões compatíveis here.

O Logon único (SSO) permite que um usuário acesse vários sistemas após fornecer credenciais de autenticação (como nome de usuário e senha) uma vez. Um sistema separado (conhecido como autenticador confiável) executa a autenticação e fornece ao Experience Manager as credenciais do usuário. O Experience Manager verifica e aplica as permissões de acesso do usuário (ou seja, determina quais recursos o usuário tem permissão para acessar).

O serviço Manipulador de Autenticação SSO ( com.adobe.granite.auth.sso.impl.SsoAuthenticationHandler) processa os resultados de autenticação fornecidos pelo autenticador confiável. O Manipulador de Autenticação SSO procura um ssid (Identificador SSO) como o valor de um atributo especial nos seguintes locais nesta ordem:

  1. Cabeçalhos de solicitação
  2. Cookies
  3. Parâmetros da solicitação

Quando um valor é encontrado, a pesquisa é concluída e esse valor é usado.

Configure os dois serviços a seguir para reconhecer o nome do atributo que armazena o ssid:

  • O módulo de logon.
  • O serviço de Autenticação SSO.

Você deve especificar o mesmo nome de atributo para ambos os serviços. O atributo está incluído na variável SimpleCredentials que seja Repository.login. O valor do atributo é irrelevante e ignorado, sua mera presença é importante e verificada.

Configuração de SSO configuring-sso

Para configurar o SSO para uma instância do AEM, é necessário configurar o Manipulador de Autenticação SSO:

  1. Ao trabalhar com AEM, existem vários métodos de gestão das definições de configuração para esses serviços; see Configuração do OSGi para obter mais detalhes e as práticas recomendadas.

    Por exemplo, para o conjunto NTLM:

    • Caminho: conforme necessário; por exemplo, /

    • Nomes de Cabeçalho: LOGON_USER

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

      Onde <*DOMAIN*> é substituído pelo seu próprio nome de domínio.
      Para CoSign:

    • Caminho: conforme necessário; por exemplo, /

    • Nomes de Cabeçalho: remote_user

    • Formato de ID: AsIs

    Para o SiteMinder:

    • Caminho: conforme necessário; por exemplo, /
    • Nomes de Cabeçalho: SM_USER
    • Formato de ID: AsIs
  2. Confirme se o Logon único está funcionando conforme necessário; incluindo a autorização.

CAUTION
Certifique-se de que os usuários não possam acessar AEM diretamente se o SSO estiver configurado.
Ao exigir que os usuários passem por um servidor da Web que executa o agente do sistema SSO, é garantido que nenhum usuário possa enviar diretamente um cabeçalho, cookie ou parâmetro que fará com que o usuário seja confiável pelo AEM, pois o agente filtrará essas informações se forem enviadas de fora.
Qualquer usuário que possa acessar diretamente sua instância do AEM sem passar pelo servidor da Web poderá agir como qualquer usuário enviando o cabeçalho, o cookie ou o parâmetro se os nomes forem conhecidos.
Certifique-se também de que, dos cabeçalhos, cookies e nomes de parâmetros da solicitação, você configure apenas o que é necessário para a configuração do SSO.
NOTE
O Logon único geralmente é usado junto com LDAP.
NOTE
Se também estiver usando a variável Dispatcher com o Microsoft Internet Information Server (IIS), será necessária uma configuração adicional em:
  • disp_iis.ini
  • IIS
Em disp_iis.ini definido:
(consulte instalando o Dispatcher com o Microsoft Internet Information Server para obter detalhes completos)
  • servervariables=1 (encaminha variáveis do servidor IIS como cabeçalhos de solicitação para a instância remota)
  • replaceauthorization=1 (substitui qualquer cabeçalho chamado "Autorização", exceto "Básica" pelo seu equivalente "Básico")
No IIS:
  • disable Acesso anônimo

  • habilitar Autenticação integrada do Windows

Você pode ver qual manipulador de autenticação está sendo aplicado a qualquer seção da árvore de conteúdo usando o Autenticador opção do Felix Console; por exemplo:

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

O manipulador que melhor corresponde ao caminho é consultado primeiro. Por exemplo, se você configurar o manipulador-A para o caminho / e handler-B para o caminho /content, em seguida, uma solicitação para /content/mypage.html primeiro consultará o manipulador-B.

screen_shot_2012-02-15at21006pm

Exemplo example

Para uma solicitação de cookie (usando o 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

Usando a seguinte configuração:

  • Caminho: /

  • Nomes de Cabeçalho: TestHeader

  • Nomes de cookies: TestCookie

  • Nomes de Parâmetros: TestParameter

  • Formato de ID: AsIs

A resposta seria:

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

Isso também funciona se você solicitar:
http://localhost:4502/libs/cq/core/content/welcome.html?TestParameter=admin

Ou você pode usar o seguinte comando curl para enviar a variável TestHeader cabeçalho para admin:
curl -D - -H "TestHeader: admin" http://localhost:4502/libs/cq/core/content/welcome.html

NOTE
Ao usar o parâmetro de solicitação em um navegador, você verá apenas alguns dos HTML - sem CSS. Isso ocorre porque todas as solicitações do HTML são feitas sem o parâmetro de solicitação.

Ao usar o SSO, o logon e o logout são tratados externamente, de modo que os próprios links de logout AEM não são mais aplicáveis e devem ser removidos.

O link para sair na tela de boas-vindas pode ser removido usando as etapas a seguir.

  1. Sobreposição /libs/cq/core/components/welcome/welcome.jsp para /apps/cq/core/components/welcome/welcome.jsp

  2. remova a seguinte parte do jsp.

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

Para remover o link de logoff disponível no menu pessoal do usuário no canto superior direito, siga estas etapas:

  1. Sobreposição /libs/cq/ui/widgets/source/widgets/UserInfo.js para /apps/cq/ui/widgets/source/widgets/UserInfo.js

  2. Remova a seguinte parte do arquivo :

    code language-none
    menu.addMenuItem({
        "text":CQ.I18n.getMessage("Sign out"),
        "cls": "cq-userinfo-logout",
        "handler": this.logout
    });
    menu.addSeparator();
    
recommendation-more-help
6a71a83d-c2e0-4ce7-a6aa-899aa3885b56