Skip To Content

Configurar SimpleSAMLphp

Você pode configurar o SimpleSAMLphp 1.10 ou versões posteriores 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 SimpleSAMLphp como o IDP enterprise com Portal for ArcGIS

  1. Configure uma fonte de autenticação no SimpleSAMLphp IdP.
    1. Crie uma fonte de autenticação.

      O SimpleSAMLphp suporta a autenticação de usuários a partir de várias fontes de autenticação como servidor LDAP, usuários em um servidor SQL, domínio do Active Directory, e assim por diante. O exemplo abaixo mostra como configurar um Apache Directory Server como uma fonte de autenticação no IdP do SimpleSAMLphp.

      As fontes de autenticação podem ser configuradas no arquivo <SimpleSAML_HOME>/config/authsources.php. Para configurar um servidor LDAP, abra o arquivo config/authsources.php e adicione uma fonte de autenticação baseada em LDAP no seguinte formato:

      'example-ldapApacheDS' => array(
      		'ldap:LDAP',
      		/* The hostname of the LDAP server. */
      		'hostname' => 'host:port',
      		/* Whether SSL/TLS should be used when contacting the LDAP server. */
      		'enable_tls' => TRUE,
      		/*
      		 * Which attributes should be retrieved from the LDAP server.
      		 * This can be an array of attribute names, or NULL, in which case
      		 * all attributes are fetched.
      		 */
      		'attributes' => NULL,
      		/*
      		 * The pattern that should be used to create the users DN given the username.
      		 * %username% in this pattern will be replaced with the user's username.
      		 *
      		 * This option is not used if the search.enable option is set to TRUE.
      		 */
      		'dnpattern' => 'uid=%username%,ou=users,ou=system',
      		/*
      		 * As an alternative to specifying a pattern for the users DN, it is possible to
      		 * search for the username in a set of attributes. This is enabled by this option.
      		 */
      		'search.enable' => FALSE,
      		/*
      		 * The DN that will be used as a base for the search.
      		 * This can be a single string, in which case only that DN is searched, or an
      		 * array of strings, in which case they will be searched in the order given.
      		 */
      		'search.base' => 'ou=users,ou=system',
      		/*
      		 * The attribute(s) the username should match against.
      		 *
      		 * This is an array with one or more attribute names. Any of the attributes in
      		 * the array may match the value the username.
      		 */
      		'search.attributes' => array('uid', 'mail'),
      		/*
      		 * The username & password the simpleSAMLphp should bind to before searching. If
      		 * this is left as NULL, no bind will be performed before searching.
      		 */
      		'search.username' => 'uid=admin,ou=system',
      		'search.password' => 'password',
      	),

      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 endereço de e-mail do IDP enterprise para Portal for ArcGIS. Isto ajuda se o usuário se tornar posteriormente um administrador. Ter um endereço de e-mail na conta intitula o usuário para receber notificações relacionadas com qualquer atividade administrativa e enviar convites para outros usuários participarem da organização.

    2. Configure a fonte de autenticação que você criou acima como um modelo de autenticação no IdP do SimpleSAMLphp. Abra o arquivo metadata/ saml20-idp-hosted.php e adicione a fonte de autenticação para utilizar.
      /*
      	 * Authentication source to use. Must be one that is configured in	 * 'config/authsources.php'.	 */
      	'auth' => 'example-ldapApacheDS',
  2. Configure o formato do identificador de nome suportado pelo IDP do SimpleSAMLphp. Abra o arquivo < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php e adicione o snippet abaixo. No seguinte exemplo, uid será validado como NameID pelo IDP do SimpleSAMLphp no Portal for ArcGIS após a autenticação do usuário.
    'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',		'authproc' => array(
    			  3 => array(
    			  'class' => 'saml:AttributeNameID',			  'attribute' => 'uid',	              'Format' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',				  ),
    			),
  3. Registre o SimpleSAMLphp como o IDP para sua organização do 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 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 IDP utilizando uma das opções abaixo:

      URL—Escolha esta opção se a URL dos metadados de federação do SimpleSAMLphp estiver acessível. Isto é normalmente https://<simpleSAML-server>/<saml-app-name>/saml2/idp/metadata.php.

      Anotação:

      Se o seu IDP enterprise incluir um certificado auto assinado, você poderá encontrar um erro ao tentar especificar a URL de HTTPS dos metadados. Este erro ocorre, pois o Portal for ArcGIS não pode verificar o certificado auto assinado do IDP. Alternativamente, utilize HTTP na URL, uma das outras opções abaixo ou configure seu IDP com um certificado confiável.

      Arquivo—Escolha esta opção se a URL não estiver acessível. Salve os metadados da URL como um arquivo XML e transfira o arquivo no Portal for ArcGIS utilizando a opção Arquivo.

      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 SimpleSAMLphp para obtê-los.

  4. Defina as configurações avançadas conforme aplicáveis:
    • Codificar Asserção—Selecione esta opção se SimpleSAMLphp 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 do SAML enviado para SimpleSAMLphp.
    • ID de Identidade—Atualize este valor para utilizar um novo ID de identidade exclusivamente para identificar seu portal para SimpleSAMLphp.
    • Propagar saída para Provedor de Identidade—Selecione esta opção para o Portal for ArcGIS utilizar uma URL de Saída para o usuário sair do SimpleSAMLphp. Insira a URL para utilizar na configuração da URL de Saída. Se o provedor de identidade exigir que a URL de Saída esteja registrada, Habilitar Pedido Registrado precisa estar selecionado.
    • Atualizar perfis ao registrar—Selecione esta opção para atualizar os atributos dos usuários do Portal for ArcGIS givenName e atributos do email address se eles alteraram desde o último login.
    • 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 .
    • URL de Saída—A URL do IDP ao utilizar para sair do usuário atualmente registrado. A URL de saída é normalmente https://idphost.domain.com/simplesaml/saml2/idp/SingleLogoutService.php. Esta URL é definida dentro do elemento SingleLogoutService no arquivo de metadados do IDP. A URL do arquivo de metadados é normalmente http://[simpleSAML-server]/simplesaml/saml2/idp/metadata.php.

    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.

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

  1. Configure Portal for ArcGIS como um provedor de serviço confiável com SimpleSAML configurando o arquivo <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php file.
    1. Obtenha o arquivo XML de metadados da sua organização do Portal for ArcGIS.

      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. Converta o arquivo XML obtido no subetapa anterior para o formato PHP.

      O SimpleSAMLphp espera que as informações de metadados do provedor de serviço sejam fornecidas no formato PHP. O SimpleSAMLPHP fornece um XML embutido no conversor de metadados PHP que por padrão está disponível como https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php na sua instalação do simpleSAMLphp. Utilize o conversor para converter o XML para PHP.

    3. Abra o arquivo metatadata/saml20-sp-remote.php e adicione a configuração do provedor de serviço no formato PHP criado na etapa 1.b.

      Abaixo está um exemplo da configuração do provedor de serviço adicionada no arquivo de metadados.

      /* The following is a Portal for ArcGIS organization service provider */
      $metadata['webadaptorhost.domain.com.webadaptorname'] = array (  'entityid' => ' webadaptorhost.domain.com.webadaptorname',  'name' =>
        array (    'en' => 'portal ',  ),  'description' =>
        array (    'en' => 'portal ',  ),  'OrganizationName' =>
        array (    'en' => 'portal ',  ),  'OrganizationDisplayName' =>
        array (    'en' => 'portal ',  ),  'url' =>
        array (    'en' => 'https://webadaptorhost.domain.com/webadaptorname',  ),  'OrganizationURL' =>
        array (    'en' => 'https://webadaptorhost.domain.com/webadaptorname',  ),  'contacts' =>
        array (  ),  'metadata-set' => 'saml20-sp-remote',  'AssertionConsumerService' =>
        array (    0 =>
          array (      'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',      'Location' => 'https://webadaptorhost.domain.com/webadaptorname/sharing/rest/oauth2/saml/signin',      'index' => 1,    ),    1 =>
          array (      'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',      'Location' => 'https://webadaptorhost.domain.com/webadaptorname/sharing/rest/oauth2/saml/signin',      'index' => 2,    ),  ),  'SingleLogoutService' =>
        array (  ),
      );
  2. Configure o atributo que foi validado como NameID no Portal for ArcGIS a partir do IdP do SimpleSAMLphp após a autenticação do usuário. Para fazer isto, adicione o atributo no final da configuração do provedor de serviço que você adicionou na etapa anterior.

    No seguinte exemplo, uid foi validado como NameID pelo IdP do SimpleSAMLphp no Portal for ArcGIS após a autenticação do usuário. (Substitua webadaptorhost.domain.com.webadaptorname pela URL do seu portal.)

    'NameIDFormat'               => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'simplesaml.nameidattribute' => 'uid',
    /* The following indicates whether or not to send all the attributes received from the authentication source to the service provider.  If true, it will send, otherwise it will not send all the attributes*/
      'simplesaml.attributes'      => true,
    );
  3. Se você escolheu a configuração avançada Codificar Asserção ao registrar o SimpleSAMLphp como o IDP enterprise, adicione o atributo abaixo no final da configuração do provedor de serviço que você adicionou na etapa 1.
    /*
      Whether assertions sent to this SP should be encrypted. The default value is FALSE.  */
      'assertion.encryption' => true,
    );