Skip To Content

Configurar SimpleSAMLphp

Puede configurar SimpleSAMLphp 1.10 y versiones posteriores como su proveedor de identidad (IDP)para los inicios de sesión corporativos en Portal for ArcGIS. El proceso de configuración consta de dos pasos: registrar su proveedor de identidad corporativa en Portal for ArcGIS y registrar Portal for ArcGIS en el proveedor de identidad corporativa.

Si lo desea, puede proporcionar al portal metadatos sobre los grupos corporativos de su almacén de identidad. Esto permite crear grupos en el portal aprovechando los grupos corporativos existentes en el almacén de identidad. Cuando los miembros inician sesión en el portal, el acceso al contenido, los elementos y los datos se controlan por medio de las reglas de pertenencia definidas en el grupo corporativo. Aunque no proporcione los metadatos necesarios para el grupo corporativo, podrá crear grupos. Sin embargo, las reglas de pertenencia se controlarán por medio de Portal for ArcGIS, no del almacén de identidad.

Información requerida

Portal for ArcGIS requiere recibir cierta información sobre atributos desde el proveedor de identidades cuando un usuario inicia sesión con un inicio de sesión corporativo. NameID es un atributo obligatorio que el proveedor de identidades debe enviar en la respuesta SAML para que la federación con Portal for ArcGIS funcione. Cuando un usuario de IDP inicia una sesión, Portal for ArcGIS crea un usuario con el nombre de usuario NameID en su almacén de usuarios. Los caracteres permitidos para el valor enviado por el atributo NameID son alfanuméricos, _ (guión bajo), . (punto) y @ (arroba). Para los demás caracteres del nombre de usuario creado por Portal for ArcGIS, se agregará un carácter de escape con guión bajo.

Portal for ArcGIS admite el flujo de entrada de los atributos givenName y email address del inicio de sesión corporativo del proveedor de identidad corporativo. Cuando un usuario inicia sesión utilizando un inicio de sesión corporativo y si Portal for ArcGIS recibe atributos con los nombres givenname y email o mail (en cualquier caso), Portal for ArcGIS rellena el nombre completo y la dirección de correo electrónico del usuario con los valores recibidos del proveedor de identidad. Se recomienda que proporcione la email address del proveedor de identidad corporativo para que el usuario pueda recibir notificaciones.

Registrar SimpleSAMLphp como proveedor de identidad corporativa en Portal for ArcGIS

  1. Configure un origen de autenticación en el IdP SimpleSAMLphp.
    1. Cree un origen de autenticación.

      SimpleSAMLphp permite la autenticación de usuarios desde diversos orígenes de autenticación como servidor LDAP, usuarios en un servidor SQL y dominio de Active Directory, entre otros. El siguiente ejemplo muestra cómo configurar Apache Directory Server como origen de autenticación en el IdP SimpleSAMLphp.

      Los orígenes de autenticación se pueden configurar en el archivo <SimpleSAML_HOME>/config/authsources.php. Para configurar el servidor LDAP, abra el archivo config/authsources.php y agregue un origen de autenticación basado en LDAP con el siguiente 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',
      	),

      Portal for ArcGIS admite el flujo de entrada de los atributos givenName y email address del inicio de sesión corporativo del proveedor de identidad corporativo. Cuando un usuario inicia sesión utilizando un inicio de sesión corporativo y si Portal for ArcGIS recibe atributos con los nombres givenname y email o mail (en cualquier caso), Portal for ArcGIS rellena el nombre completo y la dirección de correo electrónico del usuario con los valores recibidos del proveedor de identidad.

      Se recomienda que transfiera la dirección de correo electrónico del proveedor de identidad corporativa a Portal for ArcGIS. Esto es de utilidad si el usuario se convierte posteriormente en administrador. Disponer de una dirección de correo electrónico en la cuenta permite al usuario recibir notificaciones sobre cualquier actividad administrativa y enviar invitaciones a otros usuarios para que se unan a la organización.

    2. Configure el origen de autenticación que ha creado anteriormente como módulo de autenticación en el IdP SimpleSAMLphp. Abra el archivo metadata/ saml20-idp-hosted.php y agregue el origen de autenticación que se va a utilizar.
      /*
      	 * Authentication source to use. Must be one that is configured in	 * 'config/authsources.php'.	 */
      	'auth' => 'example-ldapApacheDS',
  2. Configure el formato de identificador de nombre compatible con el IdP SimpleSAMLphp. Abra el archivo < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php y agregue el siguiente fragmento. En el siguiente ejemplo, el IdP SimpleSAMLphp transferirá uid como NameID a Portal for ArcGIS tras la autenticación del usuario.
    '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. Registra SimpleSAMLphp como proveedor de identidad para su organización de Portal for ArcGIS.
    1. Inicia sesión en el sitio web del portal como administrador de tu organización y haz clic en Mi organización > Editar ajustes > Seguridad.
    2. En la sección Inicios de sesión corporativos, haga clic en el botón Definir proveedor de identidad e introduzca el nombre de su organización en la ventana que aparece (por ejemplo, City of Redlands). Cuando los usuarios acceden al sitio web del portal, este texto aparece como parte de la opción de inicio de sesión SAML (por ejemplo, Using your City of Redlands account).
      Nota:

      Solo puede registrar un proveedor de identidad corporativo para su portal.

    3. Elija si los usuarios podrán unirse a la organización Automáticamente o Después de agregar las cuentas al portal. La primera opción permite a los usuarios iniciar sesión en la organización con su inicio de sesión corporativo sin ninguna intervención de un administrador. Su cuenta se registra con la organización automáticamente la primera vez que inician sesión. La segunda opción requiere que el administrador registre las cuentas necesarias con la organización utilizando una utilidad de línea de comandos o una secuencia de comandos de Python de ejemplo. Una vez que las cuentas se hayan registrado, los usuarios podrán iniciar sesión en la organización.
      Sugerencia:

      Se recomienda designar al menos una cuenta corporativa como administrador del portal y degradar o eliminar la cuenta de administrador inicial. También se recomienda deshabilitar el botón Crear una cuenta y la página de registro (signup.html) en el sitio web del portal para que los usuarios no puedan crear sus propias cuentas. Para obtener instrucciones completas, consulte Configurar un proveedor de identidad compatible con SAML con el portal.

    4. Proporcione la información de metadatos del proveedor de identidad con una de las tres opciones siguientes:

      URL: elija esta opción si es posible acceder a la URL de los metadatos de la federación SimpleSAMLphp. Normalmente, es https://<simpleSAML-server>/<saml-app-name>/saml2/idp/metadata.php.

      Nota:

      Si el proveedor de identidad corporativo incluye un certificado autofirmado, puede producirse un error al intentar especificar la dirección URL HTTPS de los metadatos. Este error se produce porque Portal for ArcGIS no puede verificar el certificado autofirmado del proveedor de identidad. Como alternativa, use HTTP en la URL, use una de las otras opciones que aparecen o configure el proveedor de identidad con un certificado de confianza.

      Archivo: elija esta opción si no es posible acceder a la URL. Guarde los metadatos de la URL como archivo XML y cárguelo en Portal for ArcGIS utilizando la opción Archivo.

      Parámetros: elija esta opción si no es posible acceder a la URL ni al archivo. Introduzca manualmente los valores y proporcione los parámetros solicitados: URL de inicio de sesión y certificado. Póngase en contacto con su administrador de SimpleSAMLphp para obtenerlos.

  4. Configure los ajustes avanzados cuando proceda:
    • Cifrar aserción: seleccione esta opción si SimpleSAMLphp se configurará para cifrar las respuestas de la aserción SAML.
    • Habilitar solicitud firmada: seleccione esta opción para que Portal for ArcGIS firme la solicitud de autenticación SAML enviada a SimpleSAMLphp.
    • Id. de entidad: actualice este valor para usar un nuevo Id. de entidad para identificar exclusivamente su portal en SimpleSAMLphp.
    • Propagar cierre de sesión a proveedor de identidad: seleccione esta opción para que Portal for ArcGIS use una URL de cierre de sesión para cerrar la sesión del usuario en SimpleSAMLphp. Introduzca la dirección URL que se debe usar en el ajuste URL de cierre de sesión. Si el proveedor de identidad requiere que URL de cierre de sesión se firme, debe activar Habilitar solicitud firmada.
    • Dirección URL de cierre de sesión: la dirección URL del proveedor de identidad a utilizar para cerrar la sesión del usuario conectado. La dirección URL de cierre de sesión suele ser https://idphost.domain.com/simplesaml/saml2/idp/SingleLogoutService.php. Esta dirección URL se define en el elemento SingleLogoutService del archivo de metadatos del IDP. La dirección URL del archivo de metadatos suele ser http://[simpleSAML-server]/simplesaml/saml2/idp/metadata.php.

    Los ajustes de Cifrar aserción y Habilitar solicitud firmada utilizan el certificado samlcert en el almacén de claves del portal. Para utilizar un certificado nuevo, elimine el certificado samlcert, cree un certificado nuevo con el mismo alias (samlcert) siguiendo los pasos que se indican en Importar un certificado en el portal y reinicie el portal.

  5. Si lo desea, puede proporcionar al portal metadatos sobre los grupos corporativos del almacén de identidad:
    1. Inicie sesión en ArcGIS Portal Directory como administrador de su organización. La dirección URL tiene el formato https://webadaptorhost.domain.com/webadaptorname/portaladmin.
    2. Haga clic en Seguridad > Config > Actualizar almacén de identidades.
    3. Inserte el JSON de configuración del grupo en el cuadro de texto Configuración de almacén de grupo (en formato JSON).
      • Si el almacén de identidades es Windows Active Directory, copie el texto siguiente y modifíquelo para que incluya la información específica de su sitio:

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

        En la mayoría de los casos, solo tendrá que modificar los valores de los parámetros user y userPassword. Aunque escriba la contraseña con texto no cifrado, esta se cifrará cuando se almacene o consulte en el directorio de configuraciones del portal. La cuenta que se utiliza para el parámetro user solo necesita permiso para buscar los nombres de los grupos de Windows en la red. Si es posible, utilice una cuenta cuya contraseña no caduque.

      • Si el almacén de identidades es LDAP, copie el texto siguiente y modifíquelo para que contenga la información específica de su sitio:

        {
          "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"
          }
        }

        En la mayoría de los casos, solo deberá modificar valores para los parámetros user, userPassword, ldapURLForUsers y ldapURLForRoles. Su administrador de LDAP deberá proporcionar la URL a LDAP.

        En el ejemplo anterior, la dirección URL de LDAP hace referencia a los usuarios dentro de un OU específico (ou=usuarios). Si hay usuarios en varios OU, la dirección URL de LDAP puede apuntar a un nivel de OU más alto o incluso al nivel de raíz si es necesario. En ese caso, la dirección URL tendría el siguiente aspecto:

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

        La cuenta que utilice para el parámetro user necesita permisos para consultar los nombres de los grupos de su organización. Aunque escriba la contraseña con texto no cifrado, esta se cifrará cuando se almacene o consulte en el directorio de configuraciones del portal.

        Si su sistema LDAP está configurado para no tener en cuenta los caracteres en mayúsculas y minúsculas, ajuste el parámetro caseSensitive a false.

    4. Cuando termine de introducir el JSON para la configuración del almacén de usuarios, haga clic en Actualizar configuración para guardar los cambios y reiniciar el portal.

Registrar Portal for ArcGIS como proveedor de servicios de confianza en SimpleSAMLphp

  1. Configure Portal for ArcGIS como proveedor de servicios de confianza en SimpleSAMLphp configurando el archivo <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php.
    1. Obtenga el archivo XML de metadatos de su organización Portal for ArcGIS.

      Para obtener el archivo de metadatos, inicia sesión como administrador de tu organización y abre la página de la organización. Haga clic en el botón Editar ajustes, después haga clic en la pestaña Seguridad y, en la sección Inicios de sesión corporativos, haga clic en el botón Obtener proveedor de servicios.

    2. Convierta el archivo XML que ha obtenido en el subpaso anterior al formato PHP.

      SimpleSAMLphp espera que la información de metadatos del proveedor de servicios se proporcione en formato PHP. SimpleSAMLphp proporciona un convertidor integrado de metadatos XML a PHP que, de manera predeterminada, está disponible como https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php en la instalación de simpleSAMLphp. Use el conversor para convertir el XML a PHP.

    3. Abra el archivo metatadata/saml20-sp-remote.php y agregue la configuración del proveedor de servicios en formato PHP que se ha creado en el paso 1.b. anterior.

      A continuación, hay un ejemplo de la configuración del proveedor de servicio agregado en el archivo de metadatos.

      /* 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 el filtro de atributos que se transfiere como NameID a Portal for ArcGIS desde el IdP SimpleSAMLphp tras la autenticación del usuario. Para ello, agregue el atributo al final de la configuración del proveedor de servicios que ha agregado en el paso anterior.

    En el siguiente ejemplo, el IdP SimpleSAMLphp transfiere uid como NameID a Portal for ArcGIS tras la autenticación del usuario. (Reemplace webadaptorhost.domain.com.webadaptorname con la URL de su 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. Si ha elegido la configuración avanzada Cifrar aserción al registrar SimpleSAMLphp como proveedor de identidad corporativo, agregue el atributo siguiente al final de la configuración del proveedor de servicio que ha agregado en el paso 1.
    /*
      Whether assertions sent to this SP should be encrypted. The default value is FALSE.  */
      'assertion.encryption' => true,
    );