Configurar SimpleSAMLphp 1.10
Puedes configurar SimpleSAMLphp 1.10 como tu proveedor de identidad para inicios de sesión corporativos en ArcGIS Online. El proceso de configuración consta de dos pasos: registrar tu proveedor de identidad corporativa en ArcGIS Online y registrar ArcGIS Online en el proveedor de identidad corporativa.
Paso 1: registrar SimpleSAMLphp como el proveedor de identidad corporativa en ArcGIS Online
- Configura un origen de autenticación en el IdP SimpleSAMLphp.
- Crea 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, abre el archivo config/authsources.php y agrega 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 which should be used to create the users DN given the username. * %username% in this pattern will be replaced with the users 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 which 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', ),ArcGIS Online admite flujo de entrada de los atributos givenName y email address del inicio de sesión corporativo del proveedor de identidad corporativa a ArcGIS Online. Cuando un usuario inicia sesión mediante un inicio de sesión corporativo y si ArcGIS Online recibe atributos con los nombres givenname y emailo mail (en cualquier caso), ArcGIS Online 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 transfieras la dirección de correo electrónico del proveedor de identidad corporativa a ArcGIS Online. 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.
- Configura el origen de autenticación que has creado anteriormente como módulo de autenticación en el IdP SimpleSAMLphp.
Abre el archivo metadata/ saml20-idp-hosted.php y agrega 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',
- Crea un origen de autenticación.
- Configura el formato de identificador de nombre compatible con el IdP SimpleSAMLphp.
Abre el archivo < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php y agrega el siguiente fragmento. En el siguiente ejemplo, el IdP SimpleSAMLphp transferirá el UID NameID a ArcGIS Online 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', ), ), - Registra el proveedor de identidad SimpleSAMLphp para la organización ArcGIS Online.
- Verifica que has iniciado sesión y que eres administrador de tu organización.
- Haz clic en el botón Mi organización en la parte superior del sitio. De este modo se abrirá la página de tu organización.
- Haz clic en el botón Editar configuración.
- Haz clic en el vínculo Seguridad en el lado izquierdo de la página.
- En la sección Inicios de sesión corporativos, haz clic en el botón Definir proveedor de identidades.
- Introduce un nombre para el proveedor de identidad en la ventana que se abre.
- Proporciona la información de metadatos del proveedor de identidad con una de las tres opciones siguientes:
URL: elige 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.
Archivo: elige esta opción si no es posible acceder a la URL. Guarda los metadatos de la URL como archivo XML y cárgalo en ArcGIS Online utilizando la opción Archivo.
Parámetros: elige esta opción si no es posible acceder a la URL ni al archivo. Introduce manualmente los valores y proporciona los parámetros solicitados: URL de inicio de sesión, tipo de vinculación y certificado. Ponte en contacto con tu administrador de SimpleSAMLphp para obtenerlos.
Paso 2: registrar ArcGIS Online como el proveedor de servicios de confianza en SimpleSAMLphp
- Configura ArcGIS Online como proveedor de servicios de confianza en SimpleSAML configurando el archivo <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php.
- Obtén el archivo XML de metadatos de la organización ArcGIS Online.
Para obtener el archivo de metadatos, inicia sesión en la organización como administrador y abre la página de la organización. Haz clic en el botón Editar ajustes, pestaña Seguridad y, en la sección Inicios de sesión corporativos, haz clic en el botón Obtener proveedor de servicios.
- Convierte el archivo XML que has obtenido en el paso anterior a formato PHP.
SimpleSAMLphp espera que la información de metadatos del proveedor de servicios se proporcione en formato PHP. SimpleSAMLPHP proporciona un XML incorporado al conversor de metadatos PHP que, por defecto, está disponible como https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php en la instalación de simpleSAMLphp. Usa el conversor para convertir el XML a PHP.
- Abre el archivo metatadata/saml20-sp-remote.php y agrega la configuración del proveedor de servicios en formato PHP creado en el paso 2.1.b.
A continuación, hay un ejemplo de la configuración del proveedor de servicio agregado en el archivo de metadatos.
/* The following is an AGOL organization service provider */ $metadata['citygis.maps.arcgis.com'] = array ( 'entityid' => ' citygis.maps.arcgis.com', 'name' => array ( 'en' => 'citygis ', ), 'description' => array ( 'en' => 'citygis ', ), 'OrganizationName' => array ( 'en' => 'citygis ', ), 'OrganizationDisplayName' => array ( 'en' => 'citygis ', ), 'url' => array ( 'en' => 'https://citygis.maps.arcgis.com', ), 'OrganizationURL' => array ( 'en' => 'https://citygis.maps.arcgis.com', ), 'contacts' => array ( ), 'metadata-set' => 'saml20-sp-remote', 'AssertionConsumerService' => array ( 0 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', 'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin', 'index' => 1, ), 1 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin', 'index' => 2, ), ), 'SingleLogoutService' => array ( ), );
- Obtén el archivo XML de metadatos de la organización ArcGIS Online.
- Configura el filtro de atributos que se transfiere como NameID a ArcGIS Online desde el IdP SimpleSAMLphp tras la autenticación del usuario.
Agrega el atributo al final de la configuración del proveedor de servicio que has agregado en el paso anterior.
En el siguiente ejemplo, el IdP SimpleSAMLphp transfiere el UID como NameID a ArcGIS Online tras la autenticación del usuario. (Reemplaza citygis.maps.arcgis.com con la URL de la organización).
/* The following is a remote AGOL organization service provider */ $metadata['citygis.maps.arcgis.com'] = array ( 'entityid' => ' citygis.maps.arcgis.com', 'name' => array ( 'en' => 'citygis ', ), 'description' => array ( 'en' => 'citygis ', ), 'OrganizationName' => array ( 'en' => 'citygis ', ), 'OrganizationDisplayName' => array ( 'en' => 'citygis ', ), 'url' => array ( 'en' => 'https://citygis.maps.arcgis.com', ), 'OrganizationURL' => array ( 'en' => 'https://citygis.maps.arcgis.com', ), 'contacts' => array ( ), 'metadata-set' => 'saml20-sp-remote', 'AssertionConsumerService' => array ( 0 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', 'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin', 'index' => 1, ), 1 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin', 'index' => 2, ), ), 'SingleLogoutService' => array ( ), 'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'simplesaml.nameidattribute' => 'uid', ); /* The following indicates whether to send all the attributes received from the authentication source to the service provider or not. If true, it will send, otherwise it will not send all the attributes*/ 'simplesaml.attributes' => true,