Puede configurar Shibboleth 3.2x y 3.3.x como proveedores de identidad (IDP) para los inicios de sesión corporativos en Portal for ArcGIS. El proceso de configuración consta de dos pasos principales: registrar su IDP corporativo con Portal for ArcGIS y registrar Portal for ArcGIS con su IDP corporativo.
Información requerida
Portal for ArcGIS exige recibir cierta información sobre atributos desde el IDP cuando un usuario se conecta con un inicio de sesión corporativo. NameID es un atributo obligatorio que el IDP debe enviar en la respuesta SAML para que la federación con Portal for ArcGIS funcione. Dado que Portal for ArcGIS utiliza el valor de NameID para identificar de forma única a un usuario nominal, se recomienda utilizar un valor constante que identifique al usuario de forma única. 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 NameID son alfanuméricos, _ (guion 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 guion bajo.
Portal for ArcGIS admite el flujo de entrada de los atributos givenName y email address del inicio de sesión corporativo desde el IDP 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 de la cuenta del usuario con los valores recibidos del IDP. Es recomendable proporcionar la email address del IDP corporativo para que el usuario pueda recibir notificaciones.
Registrar Shibboleth como IDP corporativo con Portal for ArcGIS
- Inicie sesión en el sitio web del portal como administrador de su organización y haga clic en Organización > Editar ajustes > Seguridad.
- En la sección Inicios de sesión corporativos, seleccione la opción Un proveedor de identidad, haga clic en el botón Establecer inicio de sesión corporativo 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 IDP corporativo o una federación de varios IDP para su portal.
- 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 el portal con su inicio de sesión corporativo sin ninguna intervención de un administrador. Su cuenta se registra con el portal automáticamente la primera vez que inician sesión. La segunda opción requiere que el administrador registre las cuentas necesarias con el portal usando una utilidad de línea de comandos o un script de Python de ejemplo. Una vez que las cuentas se hayan registrado, los usuarios podrán iniciar sesión en el portal.
Sugerencia:
Se recomienda designar al menos una cuenta corporativa como administrador del portal y degradar o eliminar la cuenta de administrador inicial. También le recomendamos que deshabilite 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.
- Proporcione la información de metadatos del IDP con una de las dos opciones siguientes:
- Archivo: por defecto, Shibboleth proporciona el archivo de metadatos IdP en SHIBBOLETH_HOME/metadata. Si el archivo de metadatos está disponible, elija la opción Archivo para los metadatos del IDP corporativo y busque el archivo SHIBBOLETH_HOME/metadata/idp-metadata.xml. Portal for ArcGIS valida la firma en las respuestas de las aserciones SAML desde Shibboleth usando el primer certificado de firma del archivo de metadatos del IDP. Sin embargo, de manera predeterminada, la primera firma que aparece en el archivo de metadatos del IDP de Shibboleth corresponde a la comunicación TLS backchannel, mientras que la segunda se usa para firmar las respuestas de aserción. Tendrá que desactivar la primera firma convirtiéndola en un comentario o moverla debajo de la segunda y usar el archivo de metadatos actualizado para registrar Shibboleth con Portal for ArcGIS. Las firmas se definen usando el elemento <KeyDescriptor use="signing"> del archivo de metadatos.
- Parámetros: elija esta opción si no se puede acceder a la URL o al archivo de metadatos de federación. Introduzca manualmente los valores y proporcione los parámetros solicitados: URL de inicio de sesión y certificado, con codificación en formato BASE 64. Póngase en contacto con el administrador de Shibboleth para obtenerlos.
- Configure los ajustes avanzados cuando proceda:
- Cifrar aserción: seleccione esta opción si Shibboleth 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 Shibboleth.
- Id. de entidad: actualice este valor para usar un nuevo Id. de entidad para identificar exclusivamente su portal en Shibboleth.
- Actualizar perfiles al iniciar sesión: seleccione esta opción para que Portal for ArcGIS actualice los atributos givenName y email address de los usuarios si se modificaron desde la última vez que iniciaron sesión.
- Habilitar pertenencia a grupos basada en SAML: seleccione esta opción para permitir a los miembros de la organización vincular grupos corporativos basados en SAML especificados con grupos de Portal for ArcGIS durante el proceso de creación de grupos.
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.
Nota:
Actualmente, las opciones Propagar cierre de sesión a proveedor de identidad y Dirección URL de cierre de sesión no son compatibles.
Registrar Portal for ArcGIS como proveedor de servicios de confianza en Shibboleth
- Configure Portal for ArcGIS como la parte que confía en Shibboleth.
- Obtenga el archivo de metadatos del portal y guárdelo como un archivo XML.
Para obtener el archivo de metadatos, inicie sesión como administrador de su organización y abra 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.
- Configure Portal for ArcGIS como el proveedor de servicios de confianza en Shibboleth mediante la definición de un nuevo elemento MetadataProvider en el archivo SHIBBOLETH_HOME/conf/metadata-providers.xml .
Agregue el siguiente fragmento en el elemento MetadataProvider raíz. Proporcione la ruta al archivo XML de metadatos de la organización (guardado en el paso 1.a anterior).
<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" />
- Obtenga el archivo de metadatos del portal y guárdelo como un archivo XML.
- Configure la autenticación de usuario. En el siguiente ejemplo, se configura un servidor de directorio LDAP como almacén de usuarios actualizando las propiedades necesarias en el archivo SHIBBOLETH_HOME/conf/ldap.properties:.
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
- Configure los atributos de usuario que debe devolver Shibboleth.
- Edite SHIBBOLETH_HOME/conf/attribute-resolver.xml. Comente o elimine todas las definiciones de atributos de ejemplo y los conectores de datos.
- Copie las definiciones de mail y givenName del archivo SHIBBOLETH_HOME/conf/attribute-resolver-full.xml en el archivo SHIBBOLETH_HOME/conf/attribute-resolver.xml.
- Copie la sección LDAP Data Connector de SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml en SHIBBOLETH_HOME/conf/attribute-resolver.xml. Copie la definición de uid o de cualquier otro atributo que desee devolver como atributo NAMEID.
- Configure los atributos que se deben enviar al proveedor de servicios. Edite el archivo SHIBBOLETH_HOME/conf/attribute-filter.xml y agregue lo siguiente:
<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>
- Edite el archivo SHIBBOLETH_HOME/conf/relying-party.xml.
- Copie el código XML siguiente y péguelo dentro de los elementos shibboleth.RelyingPartyOverrides para sobrescribir la configuración predeterminada del proveedor de identidad 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>
El parámetro nameIDFormatPrecedence da instrucciones al IDP para que envíe el atributo de Id. de nombre SAML en el formato unspecified requerido por ArcGIS Online y Portal for ArcGIS.
- Desactive el cifrado de aserción en el proveedor de identidad Shibboleth configurando el parámetro encryptAssertions como 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>
- Copie el código XML siguiente y péguelo dentro de los elementos shibboleth.RelyingPartyOverrides para sobrescribir la configuración predeterminada del proveedor de identidad Shibboleth:
- Edite el archivo SHIBBOLETH_HOME/conf/saml-nameid.xml y reemplace esta sección:
<!-- <bean parent="shibboleth.SAML2AttributeSourcedGenerator" p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" p:attributeSourceIds="#{ {'mail'} }" /> -->
con lo siguiente:
<bean parent="shibboleth.SAML2AttributeSourcedGenerator" p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />
- Reinicie el servicio (Windows) o el demonio de Shibboleth (Linux).