Skip To Content

Configurar Shibboleth

Você pode configurar o Shibboleth 3.2x como seu provedor de identidade (IDP) para logins enterprise no Portal for ArcGIS. O processo de configuração envolve duas principais etapas: registrar seu provedor de identidade enterprise com Portal for ArcGIS e registrar Portal for ArcGIS com o provedor de identidade enteprise.

Opcionalmente, você pode fornecer metadados para o portal sobre os grupos enterprise no armazenamento de identidade. Isto permite a você criar grupos no portal que alavancam os grupos enterprise existentes no seu armazenamento de identidade. Quando membros entram no portal, o acesso ao conteúdo, itens e dados são controlados pelas regras de associação definidas no grupo enterprise. Se você não fornecer ao grupo enterprise os metadados necessários, você ainda poderá criar grupos. Porém, as regras de associação serão controladas pelo Portal for ArcGIS, não pelo armazenamento de identidade.

Informações exigidas

O Portal for ArcGIS exige determinadas informações de atributo a serem recebidas do provedor de identidade quando um usuário entra utilizando logins enterprise. NameID é um atributo obrigatório que deve ser enviado por seu provedor de identidade na resposta de SAML para criar a federação com trabalho do Portal for ArcGIS. Quando um usuário IDP entrar, um novo usuário com o nome de usuário NameID será criado pelo Portal for ArcGIS no seu armazenamento de usuário. Os caracteres permitidos para o valor enviado pelo atributo NameID são alfanuméricos, _ (underscore), . (ponto) e @ (arroba). Quaisquer outros caracteres serão liberados para conter underscores no nome de usuário criado pelo Portal for ArcGIS.

O Portal for ArcGIS suporta a entrada dos atributos givenName e email address do login enterprise a partir do provedor de identidade enterprise. Quando um usuário entra utilizando um login enterprise e se o Portal for ArcGIS receber atributos com os nomes givenname e email ou mail (em qualquer caso), o Portal for ArcGIS preenche o nome completo e o endereço de e-mail da conta de usuário com os valores recebidos do provedor de identidade. É recomendado que você passe o email address do provedor de identidade enterprise de forma que o usuário possa receber notificações.

Registrar o Shibboleth como o provedor de identidade enterprise com Portal for ArcGIS

  1. Entre no site da web do portal como um administrador da sua organização e clique em Minha Organização > Editar Configurações > Segurança.
  2. Dentro da seção Logins Enterprise, clique no botão Configurar Provedor de Identidade e insira o nome da sua organização na janela que aparece (por exemplo, Cidade de Redlands). Quando usuários acessam o site da web do portal, este texto aparece como parte da opção de registro do SAML (por exemplo, Utilizando sua conta da Cidade de Redlands).
    Anotação:

    Você pode registar somente um fornecedor de identidade enterprise para seu portal.

  3. Escolha se os seus usuários poderão participar da organização Automaticamente ou Após você adicionar as contas no portal. A seleção da primeira opção permite aos usuários entrarem na organização com seu login enterprise sem qualquer intervenção de um administrador. Sua conta é registrada com a organização automaticamente na primeira vez que eles entram. A segunda opção exige que o administrador registre as contas necessárias com a organização utilizando um utilitário da linha de comando ou script de Python de amostra. Após as contas serem registradas, os usuários poderão entrar na organização.
    Dica:

    É recomendado que você designe pelo menos uma conta enterprise como um administrador do seu portal e degrade ou exclua a conta inicial de administrador. Também é recomendado que você desabilite o botão Criar uma conta e a página de registro (signup.html) no site da web do portal, de forma que as pessoas não possam criar suas próprias contas. Para instruções completas, consulte Configurando um provedor de identidade compatível ao SAML com seu portal.

  4. Forneça informações de metadados para o provedor de identidade utilizando uma das duas opções abaixo:
    • Arquivo—Por padrão, o Shibboleth fornece o arquivo de metadados IdP em SHIBBOLETH_HOME/metadata. Se o arquivo de metadados estiver acessível, escolha a opção Arquivo para os metadados do provedor de identidade enterprise e procure o arquivo SHIBBOLETH_HOME/metadata/idp-metadata.xml
    • Parâmetros—Escolha esta opção se o arquivo não estiver acessível. Digite os valores manualmente e forneça os parâmetros solicitados: URL de login e certificado. Entre em contato com seu administrador Shibboleth para obtê-los.
  5. Defina as configurações avançadas conforme aplicáveis:
    • Codificar Asserção—Selecione esta opção se Shibboleth for configurado para codificar respostas da asserção de SAML.
    • Habilitar Pedido Registrado—Selecione esta opção para o Portal for ArcGIS registrar o pedido de autenticação de SAML enviado para Shibboleth.
    • ID de Identidade—Atualize este valor para utilizar um novo ID de identidade exclusivamente para identificar seu portal para Shibboleth.

    As configurações Codificar Asserção e Habilitar Pedido Registrado utilizam o certificado samlcert no keystore do portal. Para utilizar um novo certificado, exclua o certificado samlcert, crie um novo certificado com o mesmo nome alternativo (samlcert) seguindo as etapas em Importar um certificado no portal e reinicie o portal.

    Anotação:

    Atualmente, Propagar saída para Provedor de Identidade e URL de Saída não são suportados.

  6. Opcionalmente forneça metadados para o portal sobre os grupos enterprise no armazenamento de identidade:
    1. Entre no ArcGIS Portal Directory como um Administrador da sua organização. A URL está no formato https://webadaptorhost.domain.com/webadaptorname/portaladmin.
    2. Clique em Segurança > Configuração > Atualizar Armazenamento de Identidade.
    3. Posicione o JSON de configuração do grupo na caixa de texto Configuração do armazenamento de grupo (no formato JSON).
      • Se o seu armazenamento de identidade for Windows Active Directory, copie o seguinte texto, e altere para conter as informações específicas para seu site:

        {
          "type": "WINDOWS",
          "properties": {
            "isPasswordEncrypted": "false",
            "userPassword": "secret",
            "user": "mydomain\\winaccount"
          }
        }

        Na maioria dos casos, você precisará somente alterar os valores dos parâmentros user e userPassword. Embora você digite a senha em texto claro, ela será codificada quando armazenada no diretório de configuração do portal ou visualizada. A conta que você utiliza para o parâmetro user precisa de permissões somente para visualizar os nomes de grupos do Windows na rede. Se possível, utilize uma conta cuja senha não expire.

      • Se o seu armazenamento de identidade for LDAP, copie o seguinte texto, e altere para conter as informações específicas para seu site:

        {
          "type": "LDAP",  "properties": {
            "userPassword": "secret",    "isPasswordEncrypted": "false",    "user": "uid=admin,ou=system",    "ldapURLForUsers": "ldaps://bar2:10636/ou=users,ou=ags,dc=example,dc=com",    "ldapURLForRoles": "ldaps://bar2:10636/dc=example,dc=com",    "usernameAttribute": "cn",    "caseSensitive": "false",    "userSearchAttribute": "cn",    "memberAttributeInRoles": "member",    "rolenameAttribute":"cn"
          }
        }

        Na maioria dos casos, você somente precisará alterar os valores dos parâmetros user, userPassword, ldapURLForUsers e ldapURLForRoles. A URL para seu LDAP precisará ser fornecida pelo seu administrador de LDAP.

        No exemplo acima, a URL LDAP se refere aos usuários dentro de uma OU (ou=users) específico. Se os usuários existem em OUs múltiplos, a URL LDAP pode apontar para um nível mais alto OU ou até o nível de raiz se necessário. Neste caso, a URL seria com esta ao invés:

        "ldapURLForUsers": "ldaps://bar2:10636/dc=example,dc=com",

        A conta que você utiliza para o parâmetro do usuário precisa de permissões para procurar os nomes de grupos na sua organização. Embora você digite a senha em texto claro, ela será codificada quando armazenada no diretório de configuração do portal ou visualizada.

        Se o seu LDAP estiver configurado para diferenciar letra maiúscula e letra minúscula, configure o parâmetro caseSensitive para false.

    4. Ao finalizar a inserção de JSON para a configuração do armazenamento de usuário, clique em Atualizar Configuração para salvar suas alterações e reiniciar o portal.

Registrar o Portal for ArcGIS como o provedor de serviço confiável com Shibboleth

  1. Configure o Portal for ArcGIS como uma parte confiável no Shibboleth.
    1. Obtenha o arquivo de metadados do seu portal e salve como um arquivo XML.

      Para obter o arquivo de metadados, entre na sua organização como um administrador e abra a página da sua organização. Clique no botão Editar Configurações, clique na guia Segurança e na seção Logins Enterprise, clique no botão Obter Provedor de Serviço.

    2. Configure o Portal for ArcGIS como o provedor de serviço confiável no Shibboleth definindo um novo elemento MetadataProvider no arquivo SHIBBOLETH_HOME/conf/metadata-providers.xml .

      Adicione o snippet abaixo dentro do elemento raiz MetadataProvider. Forneça o caminho para o arquivo XML de metadados da sua organização (salvo na etapa 1.a acima).

      <MetadataProvider id="EsriSP" xsi:type="FilesystemMetadataProvider"
      xmlns="urn:mace:shibboleth:2.0:metadata" 
      	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd"
      	failFastInitialization="true"
      	metadataFile=" <PATH_TO_THE_SAVED_METADATA>/esri-sp-metadata.xml" />
  2. Configure a autenticação de usuário. No seguinte exemplo, um Servidor do Diretório LDAP é configurado como o armazenamento de usuário, atualizando as propriedades necessárias no arquivo SHIBBOLETH_HOME/conf/ldap.properties: file.

    idp.authn.LDAP.authenticator = bindSearchAuthenticator

    idp.authn.LDAP.ldapURL = ldaps://myldap.example.org:port

    idp.authn.LDAP.baseDN = ou=People,dc=example,dc=org

    idp.authn.LDAP.userFilter= (uid={user})

    idp.authn.LDAP.bindDN = cn=readonlyuser,dc=example,dc=org

    idp.authn.LDAP.bindDNCredential = userpassword

  3. Configure os atributos de usuário para serem retornados pelo Shibboleth.
    1. Edite SHIBBOLETH_HOME/conf/attribute-resolver.xml. Comente ou exclua todas as definições de atributo do exemplo e conectores de dados existentes.
    2. Copie as definições para mail e givenName do arquivo SHIBBOLETH_HOME/conf/attribute-resolver-full.xml no arquivo SHIBBOLETH_HOME/conf/attribute-resolver.xml. Então adicione a seguinte entrada do atributo que será utilizada como o ID de Nome:

      <resolver:AttributeDefinition xsi:type="ad:Simple" id="<NameID attribute>" sourceAttributeID ="<NameID attribute>">
      			<resolver:Dependency ref="myLDAP" />
      			<resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
      					nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" />
      		</resolver:AttributeDefinition>

    3. Copie a seção Conector de Dados LDAP de SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml em SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    4. Configure os atributos para liberar no provedor de serviço. Edite o arquivo SHIBBOLETH_HOME/conf/attribute-filter.xml e adicione o seguinte:
    Anotação:

    Substitua mygis.maps.arcgis.com pelo ID de Identidade da sua organização.

    <AttributeFilterPolicy id="ArcGIS">
            <PolicyRequirementRule xsi:type="Requester" value="mygis.maps.arcgis.com" />
    			<AttributeRule attributeID="<NameID Attribute>">
    				<PermitValueRule xsi:type="ANY" />
    			</AttributeRule>
    			<AttributeRule attributeID="givenName">
    				<PermitValueRule xsi:type="ANY" />
    			</AttributeRule>
    			<AttributeRule attributeID="mail">
    				<PermitValueRule xsi:type="ANY" />
    			</AttributeRule>
    		</AttributeFilterPolicy>
  4. Edite o arquivo SHIBBOLETH_HOME/conf/relying-party.xml.
    1. Copie o código xml abaixo e cole dentro dos elementos shibboleth.RelyingPartyOverrides para substituir a configuração padrão do Provedor de Identidade de Shibboleth:
      <util:list id="shibboleth.RelyingPartyOverrides">
      <bean parent="RelyingPartyByName" c:relyingPartyIds="mygis.maps.arcgis.com">
      <property name="profileConfigurations">
       <list>
        <bean parent="SAML2.SSO"    p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" />
       </list>
      </property>
      </bean>
          </util:list>
      Anotação:

      Substitua mygis.maps.arcgis.com pelo ID de Identidade da sua organização.

      O parâmetro nameIDFormatPrecedence instrui o provedor de identidade para enviar o atributo do ID de nome do SAML no formato unspecified, que é exigido pelo ArcGIS Online e Portal for ArcGIS.

    2. Desabilite a codificação de asserção no Provedor de Identidade do Shibboleth, configurando o parâmetro encryptAssertions em false.
      <bean parent="RelyingPartyByName" c:relyingPartyIds="mygis.maps.arcgis.com">
      		<property name="profileConfigurations">
      			<list>
      				<bean parent="SAML2.SSO" 					p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" 
      					p:encryptAssertions="false" />
      			</list>
      		</property>
      		</bean>
  5. Edite o arquivo SHIBBOLETH_HOME/conf/saml-nameid.xml e substitua a seção:
    <!--
    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
       p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
       p:attributeSourceIds="#{ {'mail'} }" />
    -->

    com o seguinte:

    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
                p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />

  6. Reinicie o daemon de Shibboleth (Linux) ou serviço (Windows).