Configurar Shibboleth

Shibboleth es un proveedor de identidad (IDP) compatible con Security Assertion Markup Language (SAML). Es posible configurar Shibboleth 3.2x y 3.3.x como su IDP para inicios de sesión SAML en ArcGIS Online. El proceso de configuración consta de dos pasos principales: registrar su IDP SAML con ArcGIS Online y registrar ArcGIS Online con el IDP SAML.

Nota:

Para asegurarse de que los inicios de sesión SAML estén configurados de forma segura, revise las prácticas recomendadas de seguridad para SAML.

Información requerida

ArcGIS Online requiere recibir cierta información sobre atributos desde el IDP cuando un usuario se conecta con inicios de sesión SAML. El atributo NameID es obligatorio y su IDP debe enviarlo en la respuesta SAML para que la federación con ArcGIS Online funcione. Dado que ArcGIS Online utiliza el valor de NameID para identificar de forma única un usuario nominal, se recomienda utilizar un valor constante que identifique al usuario de forma única. Cuando un usuario de IDP inicia sesión, ArcGIS Online crea un nuevo usuario con el nombre de usuario NameID_<url_key_for_org> 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 ArcGIS Online, se agregará un carácter de escape con guion bajo.

ArcGIS Online admite el flujo de entrada de una dirección de correo electrónico, pertenencias a grupos y un nombre y apellidos determinados de un usuario desde el proveedor de identidad SAML. Se recomienda que proporcione la dirección de correo electrónico del IDP SAML para que el usuario pueda recibir notificaciones. 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.

Registrar Shibboleth como IDP SAML con ArcGIS Online

  1. Compruebe que haya iniciado sesión como administrador de su organización.
  2. En la parte superior del sitio, haga clic en Organización y haga clic en la pestaña Configuración.
  3. Haga clic en Seguridad en el lado izquierdo de la página.
  4. En la sección Inicios de sesión, haga clic en el botón Nuevo inicio de sesión de SAML y seleccione la opción Un proveedor de identidad. En la página Especificar propiedades, introduzca el nombre de su organización (por ejemplo, City of Redlands). Cuando los usuarios acceden al sitio web de la organización, este texto se muestra como parte de la opción de inicio de sesión SAML (por ejemplo, Usar su cuenta de City of Redlands).
    Nota:

    Seleccionar la opción Un proveedor de entidad le permite registrar un IDP SAML para su organización ArcGIS Online. Para autentificar usuarios con inicios de sesión SAML para varios IDP, registre una federación basada enSAML en lugar de un solo IDP.

  5. Elija Automáticamente o Si reciben una invitación de un administrador para especificar cómo pueden unirse los usuarios a la organización. Al seleccionar la primera opción, los usuarios pueden iniciar sesión en la organización con su inicio de sesión SAML sin que intervenga ningún 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 invite a los usuarios necesarios a la organización. Cuando el usuario reciba la invitación, puede iniciar sesión en la organización.
  6. Proporcione la información de metadatos del IDP con una de las dos opciones siguientes:
    • Archivo: de manera predeterminada, 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 SAML y busque el archivo SHIBBOLETH_HOME/metadata/idp-metadata.xml.ArcGIS Online 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 de canal posterior, 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 ArcGIS Online. Las firmas se definen usando el elemento <KeyDescriptor use="signing"> del archivo de metadatos.
    • Parámetros especificados aquí: 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 su administrador de Shibboleth para obtenerlos.
  7. Configure los ajustes avanzados cuando proceda:
    • Cifrar aserción: habilite esta opción si Shibboleth se configurará para cifrar las respuestas de la aserción SAML.
    • Habilitar solicitud firmada: habilite esta opción para que ArcGIS Online 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 de forma única su organización de ArcGIS Online en Shibboleth.
    • Actualizar perfiles en el inicio de sesión: habilite esta opción para sincronizar automáticamente la información de la cuenta (nombre completo y dirección de correo electrónico) almacenada en los perfiles de usuario de ArcGIS Online con la información de cuenta más reciente recibida desde el IDP. Al habilitar esta opción, cuando un usuario inicia sesión con credenciales SAML su organización puede verificar si la información del IDP ha cambiado desde que la cuenta se creó y, si es así, actualizar el perfil de la cuenta de ArcGIS Online del usuario en consecuencia.
    • Habilitar pertenencia a grupos basada en SAML: habilite esta opción para permitir a los miembros de la organización vincular grupos basados en SAML especificados con grupos de ArcGIS Online durante el proceso de creación de grupos.
    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.

  8. Haga clic en Guardar.

Registrar ArcGIS Online como proveedor de servicios de confianza en Shibboleth

  1. Configure ArcGIS Online como parte que confía en Shibboleth.
    1. Obtén el archivo de metadatos de tu organización de ArcGIS Online y guárdalo 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 la pestaña Configuración y haga clic en Seguridad en el lado izquierdo de la página. En la sección Inicios de sesión, en Inicio de sesión SAML, haga clic en el botón Descargar metadatos de proveedores de servicios.

    2. Agrega ArcGIS Online como proveedor de servicios de confianza en Shibboleth definiendo 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="https://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata https://shibboleth.net/schema/idp/shibboleth-metadata.xsd"
      	failFastInitialization="true"
      	metadataFile=" <PATH_TO_THE_SAVED_METADATA>/esri-sp-metadata.xml" />
  2. 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

  3. Configure los atributos de usuario que debe devolver Shibboleth.
    1. Edite SHIBBOLETH_HOME/conf/attribute-resolver.xml. Comente o elimine todas las definiciones de atributos de ejemplo y los conectores de datos.
    2. Copie las definiciones de mail, givenName y surname del archivo SHIBBOLETH_HOME/conf/attribute-resolver-full.xml en el archivo SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    3. 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.
    4. 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 ArcGIS Online organization]" />
    			<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 el archivo SHIBBOLETH_HOME/conf/relying-party.xml.
    1. Copie el siguiente código XML y péguelo dentro de los elementos shibboleth.RelyingPartyOverrides para invalidar la configuración predeterminada del proveedor de identidad Shibboleth:
      <bean parent="RelyingPartyByName" c:relyingPartyIds="[The Entity ID of your ArcGIS Online organization]">
      <property name="profileConfigurations">
       <list>
        <bean parent="SAML2.SSO" 
         p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:1.1: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.

    2. 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 ArcGIS Online organization]">
      		<property name="profileConfigurations">
      			<list>
      				<bean parent="SAML2.SSO" 
      					p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" 
      					p:encryptAssertions="false" />
      			</list>
      		</property>
      		</bean>
  5. 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:1.1:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />

  6. Reinicie el servicio (Windows) o el demonio de Shibboleth (Linux).