Configurer Shibboleth

Vous pouvez configurer Shibboleth 3.2x and 3.3.x en tant que fournisseur d'identités pour les identifiants de connexion SAML dans ArcGIS Enterprise. Le processus de configuration comporte deux étapes principales : l’inscription de votre fournisseur d’identités SAML auprès de ArcGIS Enterprise et l’inscription de ArcGIS Enterprise auprès du fournisseur d’identités SAML.

Remarque :

Pour vous assurer que les identifiants de connexion SAML de votre organisation sont configurés de manière sécurisée, examinez les meilleures pratiques de la sécurité SAML.

Informations requises

ArcGIS Enterprise requiert la réception de certaines informations attributaires de la part du fournisseur d’identités lorsqu’un utilisateur se connecte à l’aide d’identifiants SAML. L’attribut NameID est obligatoire. Il doit être envoyé par votre fournisseur d’identités dans la réponse SAML afin que la fédération fonctionne. Puisque ArcGIS Enterprise utilise la valeur de NameID pour identifier de manière unique un utilisateur nommé, il est recommandé d’utiliser une valeur constante qui identifie sans équivoque l’utilisateur. Lorsqu’un utilisateur du fournisseur d’identités se connecte, un nouvel utilisateur doté du nom d’utilisateur NameID est créé par l’organisation ArcGIS Enterprise dans son magasin d’utilisateurs. Les caractères autorisés pour la valeur envoyée par NameID sont les caractères alphanumériques, _ (trait de soulignement), . (point) et @ (symbole arobase). Tous les autres caractères sont désactivés pour contenir des traits de soulignement dans le nom d’utilisateur créé par ArcGIS Enterprise.

ArcGIS Enterprise prend en charge le flux de l’adresse électronique, de l’adhésion à des groupes, du nom donné et du prénom d’un utilisateur provenant du fournisseur d’identités SAML.

Enregistrez Shibboleth en tant que fournisseur d'identités SAML auprès de ArcGIS Enterprise

  1. Vérifiez que vous êtes connecté en tant qu'administrateur de votre organisation.
  2. En haut du site, cliquez sur Organization (Organisation), puis sur l’onglet Settings (Paramètres).
  3. Cliquez sur Sécurité dans la partie gauche de la page.
  4. Dans la section Logins (Connexions), cliquez sur le bouton New SAML login (Nouvelle connexion SAML) et sélectionnez l’option One identity provider (Un fournisseur d’identités). Sur la page Specify properties (Spécifier les propriétés), saisissez le nom de votre organisation (par exemple Ville de Redlands). Lorsque les utilisateurs accèdent au site Web du portail, ce texte est intégré dans le nom de l’option de connexion SAML (Utilisation de votre compte City of Redlands, par exemple).
    Remarque :

    Vous ne pouvez enregistrer qu’un seul fournisseur d’identités SAML ou une seule fédération de fournisseurs d’identités pour votre portail.

  5. Sélectionnez Automatically (Automatiquement) ou Upon invitation from an administrator (À l’invitation d’un administrateur) pour préciser comment les utilisateurs peuvent rejoindre l’organisation. Sélectionnez la première option pour permettre aux utilisateurs de se connecter à l’organisation avec leur identifiant de connexion SAML sans intervention de l’administrateur. Leur compte est automatiquement enregistré auprès de l'organisation lors de leur première connexion. La seconde option suppose que l’administrateur inscrive les comptes nécessaires auprès de l’organisation à l’aide d’un utilitaire de ligne de commande. Une fois les comptes enregistrés, les utilisateurs peuvent se connecter à l’organisation.
    Conseil :

    Nous vous recommandons de désigner au moins un compte SAML pour administrer votre portail et de rétrograder ou supprimer le compte d’administrateur initial. Nous vous conseillons également de désactiver le bouton Create an account (Créer un compte) sur le site web du portail pour empêcher les utilisateurs de créer leurs propres comptes. Pour obtenir des instructions complètes, reportez-vous à la rubrique Configurer un fournisseur d’identités compatible avec SAML avec un portail.

  6. Indiquez des informations de métadonnées concernant le fournisseur d'identités à l'aide d'une des deux options ci-dessous :
    • File (Fichier) : par défaut, Shibboleth fournit le fichier de métadonnées du fournisseur d’identités dans SHIBBOLETH_HOME/metadata. Si le fichier de métadonnées est accessible, sélectionnez l’option File (Fichier) pour les métadonnées du fournisseur d’entités SAML et recherchez le fichier SHIBBOLETH_HOME/metadata/idp-metadata.xml. ArcGIS Enterprise valide la signature des réponses d’assertion SAML de Shibboleth à l’aide du premier certificat de signature du fichier de métadonnées du fournisseur d’identités. Toutefois, par défaut, la première signature répertoriée dans le fichier de métadonnées du fournisseur d’identités Shibboleth est pour la communication TLS avec voie de retour, alors que la seconde permet de signer les réponses d’assertion. Vous devrez mettre en commentaire la première signature ou la placer après la seconde et utiliser le fichier de métadonnées à jour pour enregistrer Shibboleth auprès de ArcGIS Enterprise. Les signatures sont définies à l’aide de l’élément <KeyDescriptor use="signing"> du fichier de métadonnées.
    • Parameters specified here (Paramètres spécifiés ici) : sélectionnez cette option si l’URL ou le fichier de métadonnées de la fédération n’est pas accessible. Entrez les valeurs manuellement et fournissez les paramètres demandés : l’URL de connexion et le certificat, chiffrés au format BASE 64. Contactez votre administrateur Shibboleth pour les obtenir.
  7. Configurez les paramètres avancés comme il convient :
    • Encrypt Assertion (Chiffrer l’assertion) : activez cette option si Shibboleth doit être configuré pour chiffrer les réponses d’assertion SAML.
    • Enable Signed Request (Activer la demande signée) : activez cette option pour que ArcGIS Enterprise signe la demande d’authentification SAML envoyée à Shibboleth.
    • ID d'entité : mettez cette valeur à jour pour utiliser un nouvel ID d'entité qui identifie de manière unique votre portail auprès de Shibboleth.
    • Update profiles on sign in (Mettre à jour les profils lors de la connexion) : activez cette option pour qu’ArcGIS Enterprise mette à jour les attributs givenName et email address des utilisateurs s’ils ont changé depuis leur dernière connexion.
    • Enable SAML based group membership (Activer l’appartenance à un groupe de type SAML) : activez cette option pour autoriser les membres de l’organisation à lier des groupes SAML spécifiés à des groupes ArcGIS Enterprise pendant le processus de création de groupe.

    Les paramètres Encrypt Assertion (Chiffrer l’assertion) et Enable signed request (Activer la demande signée) utilisent le certificat samlcert dans le KeyStore du portail. Pour utiliser un nouveau certificat, supprimez le certificat samlcert, créez un certificat avec le même alias (samlcert) en suivant la procédure indiquée dans la rubrique Importer un certificat dans le portail, puis redémarrez le portail.

    Remarque :

    Actuellement, les options Propager la déconnexion au fournisseur d'identités et URL de déconnexion ne sont pas prises en charge.

  8. Cliquez sur Enregistrer.

Inscrire Inscrire ArcGIS Enterprise en tant que fournisseur de services approuvé auprès de Shibboleth

  1. Configurez ArcGIS Enterprise comme partie de confiance dans Shibboleth.
    1. Obtenez le fichier de métadonnées de votre portail et enregistrez-le en tant que fichier XML.

      Pour obtenir le fichier de métadonnées, connectez-vous en tant qu’administrateur de votre organisation et ouvrez la page de votre organisation. Cliquez sur l’onglet Settings (Paramètres) et sur Security (Sécurité) à gauche de la page. Dans la section Logins (Identifiants de connexion), sous SAML Login (Connexion SAML), cliquez sur le bouton Download service provider metadata (Télécharger les métadonnées du fournisseur de services).

    2. Configurez ArcGIS Enterprise en tant que fournisseur de services approuvé dans Shibboleth en définissant un nouvel élément MetadataProvider dans le fichier SHIBBOLETH_HOME/conf/metadata-providers.xml .

      Ajoutez l’extrait de code ci-après dans l’élément racine MetadataProvider. Saisissez le chemin d'accès du fichier XML de métadonnées de votre organisation (enregistré à l'étape 1.a ci-dessus).

      <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. Configurez l'authentification d'utilisateur. Dans l’exemple suivant, un serveur de répertoires LDAP est configuré en tant que magasin d’utilisateurs en mettant à jour les propriétés nécessaires dans le fichier 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. Configurez les attributs d'utilisateur que Shibboleth doit renvoyer.
    1. Éditez SHIBBOLETH_HOME/conf/attribute-resolver.xml. Commentez ou supprimez tous les exemples de définitions d'attributs et de connecteurs de données existants.
    2. Copiez les définitions de mail, givenName et surname du fichier SHIBBOLETH_HOME/conf/attribute-resolver-full.xml vers le fichier SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    3. Copiez la section du connecteur de données LDAP de SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml vers SHIBBOLETH_HOME/conf/attribute-resolver.xml. Copiez la définition d'uid ou tout autre attribut que vous souhaitez renvoyer en tant qu'attribut NAMEID.
    4. Configurez les attributs à fournir au fournisseur de services. Modifiez le fichier SHIBBOLETH_HOME/conf/attribute-filter.xml et ajoutez ce qui suit :
    <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>
    
  4. Modifiez le fichier SHIBBOLETH_HOME/conf/relying-party.xml.
    1. Copiez le code XML ci-après et collez-le dans les éléments shibboleth.RelyingPartyOverrides pour remplacer la configuration par défaut du fournisseur d’identités 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:1.1:nameid-format:unspecified" />
       </list>
      </property>
      </bean>
      

      Le paramètre nameIDFormatPrecedence indique au fournisseur d’identités qu’il doit envoyer l’attribut d’ID de nom SAML au format unspecified, requis par ArcGIS Online et ArcGIS Enterprise.

    2. Désactivez le chiffrement d’assertions dans le fournisseur d’identités Shibboleth en définissant le paramètre encryptAssertions sur 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:1.1:nameid-format:unspecified" 
      					p:encryptAssertions="false" />
      			</list>
      		</property>
      		</bean>
      
  5. Modifiez le fichier SHIBBOLETH_HOME/conf/saml-nameid.xml et remplacez cette section :
    <!--
    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
       p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
       p:attributeSourceIds="#{ {'mail'} }" />
    -->
    

    par la suivante :

    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
                p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />
    

  6. Redémarrez le démon (Linux) Shibboleth ou le service (Windows) .