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: registrando seu IDP enterprise com Portal for ArcGIS e registrando Portal for ArcGIS com IDP enterprise.

Informações exigidas

O Portal for ArcGIS exige determinadas informações de atributo a serem recebidas do IDP quando um usuário entra utilizando logins enterprise. O atributo NameID é obrigatório e deve ser enviado pelo seu IDP na resposta de SAML para criar a federação com o trabalho do Portal for ArcGIS. Já que o Portal for ArcGIS utiliza o valor de NameID para identificar de forma exclusiva um usuário nomeado, é recomendável utilizar um valor constante que identifica de forma exclusiva o usuário. 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 por 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 IDP 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 preencherá o nome completo e o endereço de e-mail da conta de usuário com os valores recebidos do IDP. É recomendado que você passe o email address do IDP enterprise de forma que o usuário possa receber notificações.

Registrar Shibboleth como o IDP enterprise com Portal for ArcGIS

  1. Entre no site da web do portal como um administrador da sua organização e clique em Organização > Editar Configurações > Segurança.
  2. Na seção Logins Enterprise , selecione a opção Abrir Provedor de Identidade , clique no botão Configurar Login Enterprise 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 registrar somente um IDP enterprise ou uma federação de IDPs, 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 que usuários entrem na organização com seu login enterprise sem qualquer intervenção de um administrador. Sua conta é registrada com o portal 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 no portal.
    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 IDP utilizando uma das 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 IDP enterprise e procure o arquivo SHIBBOLETH_HOME/metadata/idp-metadata.xml. O Portal for ArcGIS valida a assinatura nas respostas de asserção do SAML a partir do Shibboleth utilizando o primeiro certificado de assinatura no arquivo de metadados do IDP. No entanto, por padrão, a primeira assinatura listada no arquivo de metadados do IDP de Shibboleth é para comunicação TLS do canal de retorno, enquanto a segunda é para assinar as respostas de asserção. Você precisará comentar a primeira assinatura ou movê-la abaixo da segunda e utilizar o arquivo de metadados atualizado para registrar Shibboleth com Portal for ArcGIS. As assinaturas são definidas utilizando o elemento <KeyDescriptor use="signing"> no arquivo de metadados.
    • Parâmetros—Escolha esta opção se a URL ou arquivo do metadados de federação não estiver acessível. Digite os valores manualmente e forneça os parâmetros solicitados: URL de login e certificado, codificados no formato BASE 64. 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 estiver 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.
    • Atualizar perfis ao entrar—Selecione esta opção para ter Portal for ArcGIS givenNamee email address dos usuários atualizados, se tiverem mudado desde a última vez que registraram.
    • Habilitar associação de grupo baseado em SAML—Selecione esta opção para permitir que os membros da organização vinculem-se a grupos enterprise específicos baseados em SAML para grupos do Portal for ArcGIS durante o processo de criação do grupo .

    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.

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.
    3. Copie a seção Conector de Dados LDAP de SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml em SHIBBOLETH_HOME/conf/attribute-resolver.xml. Copie a definição para uid ou qualquer outro atributo que você deseja retornar como o atributo NAMEID.
    4. Configure os atributos para liberar no provedor de serviço. Edite o arquivo SHIBBOLETH_HOME/conf/attribute-filter.xml e adicione o seguinte:
    <AttributeFilterPolicy id="ArcGIS">
            <PolicyRequirementRule xsi:type="Requester" value="[The Entity ID of your Portal instance]" />
    			<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:
      <bean parent="RelyingPartyByName" c:relyingPartyIds="[The Entity ID of your Portal instance]">
      <property name="profileConfigurations">
       <list>
        <bean parent="SAML2.SSO"    p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" />
       </list>
      </property>
      </bean>

      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="[The Entity ID of your Portal instance]">
      		<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).