Skip To Content

Configurer Shibboleth

Vous pouvez configurer Shibboleth 3.2x et 3.3x en tant que fournisseur d'identités (IDP) pour les identifiants de connexion d'entreprise dans Portal for ArcGIS. Le processus de configuration comporte deux étapes principales : l'enregistrement du fournisseur d'identités d'entreprise auprès de Portal for ArcGIS et l'enregistrement de Portal for ArcGIS auprès du fournisseur d'identités d'entreprise.

Informations requises

Portal for ArcGIS 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 d'entreprise. 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 avec Portal for ArcGIS. Puisqu’Portal for ArcGIS utilise la valeur de NameID pour identifier de manière unique un utilisateur nommé, il est recommandé d’utiliser une valeur constante qui identifie l’utilisateur de manière unique. Lorsqu'un utilisateur IDP se connecte, un nouvel utilisateur nommé NameID est créé par Portal for ArcGIS dans son magasin d'utilisateurs. Les caractères autorisés pour la valeur envoyée par l’attribut NameID sont les caractères alphanumériques, le trait de soulignement (_), (le point) et @ (le symbole arobase). Tous les autres caractères seront désactivés pour contenir des traits de soulignement dans le nom d'utilisateur créé par Portal for ArcGIS.

Portal for ArcGIS prend en charge le flux des attributs givenName et email address de l'identifiant de connexion d'entreprise provenant du fournisseur d'identités d'entreprise. Lorsqu'un utilisateur se connecte à l'aide des informations de connexion d'entreprise et si Portal for ArcGIS reçoit des attributs avec les noms givenname et email ou mail (quelle que soit la casse), Portal for ArcGIS renseigne le nom complet et l'adresse électronique du compte de l'utilisateur avec les valeurs reçues de la part du fournisseur d'identités. Il est conseillé de transmettre l'adresse électronique (email address) reçue du fournisseur d'identités d'entreprise afin que l'utilisateur puisse recevoir les notifications.

Enregistrez Shibboleth comme fournisseur d’identités d’entreprise auprès d'Portal for ArcGIS

  1. Connectez-vous au site web du portail en tant qu'administrateur de votre organisation et cliquez sur Organisation > Modifier les paramètres > Sécurité.
  2. Dans la section Enterprise Logins (Identifiants de connexion d'entreprise), sélectionnez l’option One Identity Provider (Un fournisseur d’identités), cliquez sur le bouton Set Enterprise Login (Définir les identifiants de connexion d'entreprise), puis entrez le nom de votre organisation dans la fenêtre qui s’affiche (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 (par exemple, Utilisation de votre compte Ville de Redlands).
    Remarque :

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

  3. Indiquez si vos utilisateurs peuvent rejoindre l'organisation automatiquement ou après l'ajout des comptes au portail. Sélectionnez la première option pour permettre aux utilisateurs de se connecter au portail avec leur identifiant de connexion d'entreprise sans intervention de l'administrateur. Leur compte est automatiquement enregistré auprès du portail lors de leur première connexion. La deuxième option suppose que l'administrateur enregistre les comptes nécessaires auprès du portail à l'aide d'un utilitaire de ligne de commande ou d'un exemple de script Python. Une fois les comptes enregistrés, les utilisateurs peuvent se connecter au portail.
    Astuce:

    Nous vous recommandons de désigner au moins un compte d'entreprise pour administrer votre portail et de rétrograder ou de supprimer le compte d'administrateur initial. Nous vous conseillons également de désactiver le bouton Créer un compte et la page de connexion (signup.html) 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 Configuration d'un fournisseur d'identités compatible avec SAML avec votre portail.

  4. Indiquez des informations de métadonnées concernant le fournisseur d'identités à l'aide d'une des deux options ci-dessous :
    • Fichier : par défaut, Shibboleth fournit le fichier de métadonnées IdP dans SHIBBOLETH_HOME/metadata. Si le fichier de métadonnées est accessible, sélectionnez l'option Fichier pour les métadonnées du fournisseur d'entités d'entreprise et recherchez le fichier SHIBBOLETH_HOME/metadata/idp-metadata.xml. Portal for ArcGIS valide la signature des réponses d'assertion SAML de Shibboleth à l'aide du premier certificat de signature du fichier de métadonnées IDP. Toutefois, par défaut, la première signature répertoriée dans le fichier de métadonnées IDP de Shibboleth est pour la communication TLS avec voie de retour, alors que la deuxième permet de signer les réponses d'assertion. Vous devrez mettre en commentaire la première signature ou la placer après la deuxième et utiliser le fichier de métadonnées à jour pour enregistrer Shibboleth auprès d'Portal for ArcGIS. Les signatures sont définies à l'aide de l'élément <KeyDescriptor use="signing"> du fichier de métadonnées.
    • Paramètres : 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 connaître.
  5. Configurez les paramètres avancés comme il convient :
    • Chiffrer l'assertion : sélectionnez cette option si Shibboleth doit être configuré pour chiffrer les réponses d'assertion SAML.
    • Activer la demande signée : sélectionnez cette option pour que Portal for ArcGIS 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) : sélectionnez cette option our que Portal for ArcGIS mette à jour les attributs givenName et email address si ces attributs ont changé depuis la dernière fois que les utilisateurs se sont connectés.
    • Enable SAML based group membership (Activer l’adhésion au groupe SAML) : sélectionnez cette option pour autoriser les membres de l’organisation à relier des groupes d’entreprises SAML spécifiés à des groupes Portal for ArcGIS pendant le processus de création de groupe.

    Les paramètres Chiffrer l'assertion et 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 nouveau 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.

Enregistrer Portal for ArcGIS en tant que fournisseur de services approuvé auprès de Shibboleth

  1. Configurez Portal for ArcGIS 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 le bouton Modifier les paramètres, puis sur l'onglet Sécurité puis, dans la section Identifiants de connexion d'entreprise, cliquez sur le bouton Obtenir un fournisseur de services.

    2. Configurez Portal for ArcGIS comme 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="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" />
  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 et givenName 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:2.0: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 Portal for ArcGIS.

    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:2.0: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:2.0:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />

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