Skip To Content

Configurer Shibboleth

Vous pouvez configurer Shibboleth 2.x en tant que fournisseur d'identités pour les identifiants de connexion d'entreprise dans Portal for ArcGIS. Le processus de configuration se compose de 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.

Vous pouvez également transmettre au portail des métadonnées concernant les groupes d'entreprise de votre magasin d'identités. Cela vous permet de créer des groupes sur le portail qui se basent sur les groupes d'entreprise de votre magasin d'identités. Lorsque les membres se connectent au portail, l'accès au contenu, aux éléments et aux données est déterminé par les règles d'appartenance définies dans le groupe d'entreprise. Si vous ne communiquez pas les métadonnées requises concernant les groupes d'entreprise, vous pourrez toutefois créer des groupes. Cependant, les règles d'appartenance seront contrôlées par Portal for ArcGIS et non par le magasin d'identités.

Informations requises

Portal for ArcGIS doit recevoir certaines informations attributaires de la part du fournisseur d'identités lorsqu'un utilisateur se connecte à l'aide d'identifiants de connexion d'entreprise. NameID est un attribut obligatoire qui doit être envoyé par votre fournisseur d'identités dans la réponse SAML, afin que la fédération avec Portal for ArcGIS fonctionne. 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 et 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 d'un identifiant 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 indique le nom complet et l'adresse électronique du compte de l'utilisateur avec les valeurs reçues par le 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.

Enregistrer Shibboleth en tant que fournisseur d'identités d'entreprise auprès de Portal for ArcGIS

  1. Connectez-vous au site Web du portail en tant qu'administrateur de votre organisation et cliquez sur Mon organisation > Modifier les paramètres > Sécurité.
  2. Dans la section Connexions d'entreprise, cliquez sur le bouton Définir le fournisseur d'identités et saisissez le nom de votre organisation dans la fenêtre qui s'ouvre (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).
  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 à l'organisation avec leur identifiant de connexion d'entreprise 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 enregistre les comptes nécessaires auprès de l'organisation à 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 à l'organisation.
    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. 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.
    • URL de déconnexion : mettez cette valeur à jour si vous avez configuré Shibboleth pour qu'il utilise une URL de déconnexion personnalisée.
    • 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.

    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.

  5. 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.
    • Paramètres : sélectionnez cette option si le fichier n'est pas accessible. Entrez les valeurs manuellement et fournissez les paramètres demandés : URL de connexion et certificat. Contactez votre administrateur Shibboleth pour les connaître.
  6. Vous pouvez également transmettre au portail les métadonnées concernant les groupes d'entreprise du magasin d'identités :
    1. Connectez-vous au répertoire de Portal for ArcGIS en tant qu'administrateur de votre organisation. L'URL est au format suivant : https://webadaptor.domain.com/arcgis/portaladmin.
    2. Cliquez sur Sécurité > Config > Mettre à jour le magasin d'identités.
    3. Indiquez la configuration de groupe JSON dans la zone de texte Configuration du magasin de groupes (au format JSON).
      • Si votre magasin d'identités est de type Windows Active Directory, copiez le texte suivant et modifiez-le pour l'adapter à votre site :

        {
          "type": "WINDOWS",
          "properties": {
            "isPasswordEncrypted": "false",
            "userPassword": "secret",
            "user": "mydomain\\winaccount"
          }
        }

        Dans la plupart des cas, vous ne devrez modifier que les valeurs des paramètres user et userPassword. Même si vous entrez le mot de passe en texte clair, il sera chiffré lorsqu'il sera affiché ou stocké dans le répertoire de configuration du portail. Le compte que vous utilisez pour le paramètre user doit disposer d'autorisations uniquement pour consulter les noms des groupes Windows sur le réseau. Si cela est possible, utilisez un compte dont le mot de passe n'expire pas.

      • Si votre magasin d'identités est de type LDAP, copiez le texte suivant et modifiez-le pour l'adapter à votre site :

        {
          "type": "LDAP",  "properties": {
            "userPassword": "secret",    "isPasswordEncrypted": "false",    "user": "uid=admin\,ou=system",    "ldapURLForUsers": "ldap://bar2:10389/ou=users\,ou=ags\,dc=example\,dc=com",    "ldapURLForRoles": "ldap://bar2:10389/dc=example,dc=com",    "usernameAttribute": "cn",    "caseSensitive": "false",    "userSearchAttribute": "cn",    "memberAttributeInRoles": "member",    "rolenameAttribute":"cn"
          }
        }

        Dans la plupart des cas, vous ne devez modifier que les valeurs des paramètres user, userPassword, ldapURLForUsers et ldapURLForUsers. L'URL de votre annuaire LDAP doit être fournie par votre administrateur LDAP. Le compte que vous utilisez pour le paramètre user doit disposer d'autorisations pour rechercher les noms des groupes dans votre organisation. Même si vous entrez le mot de passe en texte clair, il sera chiffré lorsqu'il sera affiché ou stocké dans le répertoire de configuration du portail.

        Si votre annuaire LDAP est configuré pour ne pas respecter la casse, définissez le paramètre caseSensitive sur false.

    4. Lorsque vous avez entré, au format JSON, les informations concernant la configuration du magasin d'utilisateurs, cliquez sur Mettre à jour la configuration pour enregistrer vos modifications et redémarrer le portail.

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 et sur l'onglet Sécurité puis, dans la section Identifiants de connexion d'entreprise, cliquez sur le bouton Obtenir un fournisseur de services.

    2. Ajoutez Portal for ArcGIS comme fournisseur de services approuvé dans Shibboleth en définissant un nouvel élément RelyingParty dans le fichier SHIBBOLETH_HOME/conf/relying-party.xml.

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

      Remarque :

      (Remplacez webadaptor.domain.com.arcgis par entityid provenant des métadonnées SAML de votre portail.)

      <!-- Load metadata -->
      	    <MetadataProvider xsi:type="FilesystemMetadataProvider"
      	                      xmlns="urn:mace:shibboleth:2.0:metadata"
      	                      id="webadaptor.domain.com.arcgis"
      	                      metadataFile="<PATH_TO_THE_SAVED_METADATA>/citygismetadata.xml">
      	    </MetadataProvider>
  2. Configurez le résolveur d'attributs.

    Portal for ArcGIS attend de l'IdP un identifiant de nom SAML pour l'utilisateur qui tente de se connecter à Portal for ArcGIS. Pour rendre ces données disponibles, vous devez configurer le résolveur d'attributs Shibboleth en modifiant le fichier SHIBBOLETH_HOME/conf/attribute-resolver.xml.

    La définition d'attribut suivante envoie le nom principal de l'utilisateur qui a été authentifié auprès de Portal for ArcGIS par l'IdP Shibboleth, dans l'identifiant de nom.

    <!-- Name identifier for passing principal name to Portal for ArcGIS -->
        <resolver:AttributeDefinition id="principal" xsi:type="PrincipalName" xmlns="urn:mace:shibboleth:2.0:resolver:ad">
            <resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
                nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" />
        </resolver:AttributeDefinition>
  3. Configurez le filtre d'attributs.

    Configurez le filtre attributaire de Shibboleth pour libérer le nom principal de l'utilisateur chiffré en tant qu'attribut NameID auprès de Portal for ArcGIS après avoir authentifié l'utilisateur. La valeur du paramètre NameID sera utilisée comme nom d'utilisateur dans l'organisation.

    Pour ajouter ce filtre, ouvrez le fichier SHIBBOLETH_HOME/conf/attribute-filter.xml et ajoutez la stratégie de filtre d'attributs suivante dans l'élément XML AttributeFilterPolicyGroup.

    Remarque :

    (Remplacez webadaptor.domain.com.arcgis par entityid provenant des métadonnées SAML de votre portail.)

    <!-- release the NameID to webadaptor.domain.com.arcgis -->
        <afp:AttributeFilterPolicy>
                <afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="webadaptor.domain.com.arcgis" />
                    <afp:AttributeRule attributeID="principal">
                    <afp:PermitValueRule xsi:type="basic:ANY" />
                </afp:AttributeRule>
        </afp:AttributeFilterPolicy>

    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 d'un identifiant 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 indique le nom complet et l'adresse électronique du compte de l'utilisateur avec les valeurs reçues par le fournisseur d'identités.

    Nous vous recommandons de transmettre l'adresse électronique communiquée par le fournisseur d'identités d'entreprise à Portal for ArcGIS. Cela peut s'avérer utile si l'utilisateur devient plus tard administrateur. Le fait d'avoir une adresse électronique dans le compte autorise l'utilisateur à recevoir des notifications concernant les activités administratives et à envoyer des invitations à d'autres utilisateurs pour rejoindre l'organisation.

  4. Configurez la source d'authentification.

    Configurez la source d'authentification utilisée par l'IdP de Shibboleth. L'exemple suivant montre comment configurer Apache Directory Server en tant que magasin d'utilisateurs avec Shibboleth dans le fichier SHIBBOLETH_HOME/conf/login.config.

    ShibUserPassAuth {   edu.vt.middleware.ldap.jaas.LdapLoginModule required      ldapUrl="ldap://host:port"
          baseDn="ou=users,ou=system"
          ssl="true"
          serviceUser="uid=admin,ou=system"
          serviceCredential="secret"
          subtreeSearch="true"
          userField="uid"
          userFilter="uid={0}";
    };

  5. Configurez le gestionnaire d'identifiants de connexion.

    Activez le gestionnaire d'identifiants de connexion UsernamePassword dans Shibboleth. Le gestionnaire d'identifiants de connexion permet aux utilisateurs de se connecter grâce à un nom d'utilisateur et à un mot de passe à partir de la source d'authentification configurée à l'étape précédente.

    Pour configurer le gestionnaire d'identifiants de connexion, ouvrez le fichier SHIBBOLETH_HOME/conf/handler.xml et annulez les commentaires du gestionnaire de noms d'utilisateurs et de mots de passe. (Remplacez <SHIBBOLETH_HOME> par votre chemin d'installation Shibboleth.)

    <!--  Username/password login handler -->
             <ph:LoginHandler xsi:type="ph:UsernamePassword" 
                      jaasConfigurationLocation="file://<SHIBBOLETH_HOME>/conf/login.config">
            <ph:AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</ph:AuthenticationMethod>
        </ph:LoginHandler>

  6. Désactivez le chiffrement des assertions dans l'IdP de Shibboleth. Ouvrez le fichier SHIBBOLETH_HOME/conf/relying-party.xml et recherchez la section saml: SAML2SSOProfile dans l'élément. Dans cette section, modifiez la valeur de encryptAssertions en never.
    Remarque :

    Ignorez cette étape si vous sélectionnez le paramètre avancé Chiffrer l'assertion en enregistrant Shibboleth en tant que fournisseur d'identités d'entreprise.

    <rp:DefaultRelyingParty provider="https://grid3.esri.com/idp/shibboleth"
    defaultSigningCredentialRef="IdPCredential">
    ...     <rp:ProfileConfiguration xsi:type="saml:SAML2SSOProfile" includeAttributeStatement="true"
              assertionLifetime="PT5M" assertionProxyCount="0"
              signResponses="never" signAssertions="always"
              encryptAssertions="never" encryptNameIds="never"
              includeConditionsNotBefore="true"/>
    ...
    </rp:DefaultRelyingParty>
  7. Redémarrez le serveur Web qui héberge l'application Web Shibboleth.