Configurer SimpleSAMLphp

SimpleSAMLphp est un fournisseur d'identités compatible avec Security Assertion Markup Language SAML. Vous pouvez configurer SimpleSAMLphp 3.2 et versions ultérieures en tant que fournisseur d’identités pour les identifiants de connexion SAML dans ArcGIS Online. Le processus de configuration comporte deux étapes principales : l'enregistrement du fournisseur d'identités SAML auprès de ArcGIS Online et l'enregistrement de ArcGIS Online auprès du fournisseur d'identités SAML.

Remarque :

Pour faire en sorte que vos identifiants de connexion SAML soient configurés en toute sécurité, passez en revue les bonnes pratiques pour la sécurité SAML.

Informations requises

ArcGIS Online 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 avec ArcGIS Online. Puisqu’ArcGIS Online 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 appelé NameID_<url_key_for_org> est créé par ArcGIS Online 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 ArcGIS Online.

ArcGIS Online prend en charge le flux entrant de l’adresse électronique d’un utilisateur, les appartenances aux groupes, le nom et le prénom indiqués par le fournisseur d’identités SAML. Il est conseillé de transmettre l’adresse électronique reçue du fournisseur d’identités d’entreprise SAML afin que l’utilisateur puisse recevoir les notifications. 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.

Enregistrez SimpleSAMLphp en tant que fournisseur d'identités SAML auprès de ArcGIS Online

  1. Configurez une source d’authentification dans le fournisseur d’identités SimpleSAMLphp.
    1. Créer une source d'authentification.

      SimpleSAMLphp prend en charge l’authentification des utilisateurs à partir de diverses sources d’authentification, comme un serveur LDAP, les utilisateurs d’un serveur SQL, un domaine Active Directory, etc. L’exemple suivant montre comment configurer Apache Directory Server en tant que source d’authentification dans le fournisseur d’identités SimpleSAMLphp.

      Il est possible de configurer les sources d'authentification dans le fichier <SimpleSAML_HOME>/config/authsources.php. Pour configurer le serveur LDAP, ouvrez le fichier config/authsources.php et ajoutez une source d'authentification basée sur LDAP au format suivant :

      'example-ldapApacheDS' => array(
      		'ldap:LDAP',
      
      		/* The hostname of the LDAP server. */
      		'hostname' => 'host:port',
      
      		/* Whether TLS should be used when contacting the LDAP server. */
      		'enable_tls' => TRUE,
      
      		/*
      		 * Which attributes should be retrieved from the LDAP server.
      		 * This can be an array of attribute names, or NULL, in which case
      		 * all attributes are fetched.
      		 */
      		'attributes' => NULL,
      
      		/*
      		 * The pattern that should be used to create the users DN given the username.
      		 * %username% in this pattern will be replaced with the user's username.
      		 *
      		 * This option is not used if the search.enable option is set to TRUE.
      		 */
      		'dnpattern' => 'uid=%username%,ou=users,ou=system',
      
      		/*
      		 * As an alternative to specifying a pattern for the users DN, it is possible to
      		 * search for the username in a set of attributes. This is enabled by this option.
      		 */
      		'search.enable' => FALSE,
      
      		/*
      		 * The DN that will be used as a base for the search.
      		 * This can be a single string, in which case only that DN is searched, or an
      		 * array of strings, in which case they will be searched in the order given.
      		 */
      		'search.base' => 'ou=users,ou=system',
      
      		/*
      		 * The attribute(s) the username should match against.
      		 *
      		 * This is an array with one or more attribute names. Any of the attributes in
      		 * the array may match the value the username.
      		 */
      		'search.attributes' => array('uid', 'mail'),
      
      		/*
      		 * The username & password the simpleSAMLphp should bind to before searching. If
      		 * this is left as NULL, no bind will be performed before searching.
      		 */
      		'search.username' => 'uid=admin,ou=system',
      		'search.password' => 'password',
      	),
    2. Configurez la source d’authentification que vous avez créée ci-dessus en tant que module d’authentification dans le fournisseur d’identités SimpleSAMLphp. Ouvrez le fichier metadata/ saml20-idp-hosted.php et ajoutez la source d'authentification à utiliser.
      /*
      	 * Authentication source to use. Must be one that is configured in
      	 * 'config/authsources.php'.
      	 */
      	'auth' => 'example-ldapApacheDS',
  2. Configurez le format d’identifiant de nom pris en charge par le fournisseur d’identités SimpleSAMLphp. Ouvrez le fichier < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php et ajoutez-y l'extrait de code ci-après. Dans l'exemple suivant, uid est transmis en tant que NameID par le fournisseur d'identités SimpleSAMLphp à ArcGIS Online après authentification de l'utilisateur.
    'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
    		'authproc' => array(
    
    			  3 => array(
    
    			  'class' => 'saml:AttributeNameID',
    			  'attribute' => 'uid',
    	              'Format' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
    				  ),
    			),
  3. Enregistrez SimpleSAMLphp en tant que fournisseur d'identités de votre organisation ArcGIS Online.
    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 (Identifiants de connexion), sous SAML login (Connexion SAML), cliquez sur le bouton Set up SAML login (Configurer la 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), tapez le nom de votre organisation (Ville de Redlands, par exemple). Lorsque les utilisateurs accèdent au site Web de l’organisation, ce texte est intégré dans le nom de l’option de connexion SAML (Utilisation de votre compte City of Redlands, par exemple). SAMLSAML
      Remarque :

      Sélectionner l’option One identity provider (Un fournisseur d’identités) vous permet d’inscrire un fournisseur d’identités SAMLpour votre organisation ArcGIS Online. Si vous souhaitez authentifier des utilisateurs ayant des identifiants de connexion SAML issus de plusieurs fournisseurs d’identités, inscrivez une fédération SAML au lieu d’un fournisseur d’identités unique.

    5. Indiquez si les utilisateurs peuvent rejoindre l'organisation automatiquement (Automatically)ou sur invitation d'un administrateur (Upon invitation from an administrator). Si vous choisissez la première option, les utilisateurs peuvent se connecter à l’organisation avec leur identifiant de connexion SAMLsans qu’un administrateur n’intervienne. Leur compte est automatiquement enregistré à l’aide de l’organisation lors de leur première connexion. La seconde option suppose que l'administrateur invite les utilisateurs nécessaires à rejoindre l'organisation. Lorsque l'utilisateur reçoit l'invitation, il peut se connecter à l'organisation.
    6. Indiquez des informations de métadonnées concernant le fournisseur d'identités à l'aide d'une des trois options ci-dessous :

      URL : sélectionnez cette option si l’URL des métadonnées de fédération SimpleSAMLphp est accessible. Il s'agit généralement de https://<simpleSAML-server>/<saml-app-name>/saml2/idp/metadata.php.

      Fichier : sélectionnez cette option si l'URL n'est pas accessible. Enregistrez les métadonnées de l'URL en tant que fichier XML et chargez le fichier dans ArcGIS Online à l'aide de l'option File (Fichier).

      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 SimpleSAMLphp pour les obtenir.

  4. Configurez les paramètres avancés comme il convient :
    • Encrypt Assertion (Chiffrer l’assertion) : activez cette option si SimpleSAMLphp 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 Online signe la demande d’authentification SAML envoyée à SimpleSAMLphp.
    • Entity ID (ID d’entité) : mettez cette valeur à jour pour utiliser un nouvel ID d’entité qui identifie de manière unique votre organisation ArcGIS Onlineauprès de SimpleSAMLphp.
    • Propagate logout to Identity Provider (Propager la déconnexion au fournisseur d’identités) : activez cette option pour que ArcGIS Online utilise une Logout URL (URL de déconnexion) pour déconnecter l’utilisateur du fournisseur d’identités SimpleSAMLphp. Indiquez l'URL à utiliser dans le paramètre URL de déconnexion. Si le fournisseur d’identités exige la signature du paramètre Logout URL (URL de déconnexion), vous devez activer Enable signed request (Activer la demande signée).
    • Update profiles on sign in (Mettre à jour les profils lors de la connexion) : sélectionnez cette option pour synchroniser automatiquement les informations de compte (nom complet et adresse électronique) stockées dans les profils d’utilisateur de ArcGIS Online avec les dernières informations reçues de la part du fournisseur d’identités. L’activation de cette case à cocher permet à votre organisation de vérifier, lorsqu’un utilisateur se connecte avec l’identifiant de connexion SAML, si les informations relatives au fournisseur d’identités ont changé depuis la création du compte et, si tel est le cas, de mettre à jour le profil du compte ArcGIS Online de l’utilisateur en conséquence.
    • Enable SAML based group membership (Activer l’adhésion au groupe SAML) : activez cette option pour autoriser les membres de l’organisation à relier des groupes d’entreprises SAML spécifiés à des groupes ArcGIS Online pendant le processus de création de groupe.
    • URL de déconnexion : l'URL du fournisseur d'identités à utiliser pour déconnecter l'utilisateur actuellement connecté. L'URL de déconnexion est généralement https://idphost.domain.com/simplesaml/saml2/idp/SingleLogoutService.php. Cette URL est définie dans l'élément SingleLogoutService, dans le fichier de métadonnées d'IDP. L'URL du fichier de métadonnées est généralement http://[simpleSAML-server]/simplesaml/saml2/idp/metadata.php.
  5. Cliquez sur Save (Enregistrer).

Enregistrez ArcGIS Online en tant que fournisseur de services approuvé auprès de SimpleSAMLphp

  1. Configurez ArcGIS Online en tant que fournisseur de services approuvé auprès de SimpleSAMLphp en paramétrant le fichier <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php.
    1. Obtenez le fichier XML de métadonnées de votre organisation ArcGIS Online.

      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. Convertissez le fichier XML que vous avez obtenu à l'étape secondaire précédente au format PHP.

      SimpleSAMLphp attend des informations de métadonnées du fournisseur de services au format PHP. SimpleSAMLphp propose un convertisseur de métadonnées XML vers PHP intégré qui, par défaut, est disponible en tant que https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php dans votre installation SimpleSAMLphp. Utilisez le convertisseur pour convertir le XML en PHP.

    3. Ouvrez le fichier metatadata/saml20-sp-remote.php et ajoutez la configuration du fournisseur de services au format PHP créée à l'étape 1.b ci-dessus.

      Vous trouverez ci-dessous un exemple de la configuration du fournisseur de services ajouté dans le fichier de métadonnées.

      /* The following is an ArcGIS Online organization service provider */
      $metadata['citygis.maps.arcgis.com'] = array (
        'entityid' => ' citygis.maps.arcgis.com',
        'name' =>
        array (
          'en' => 'citygis ',
        ),
        'description' =>
        array (
          'en' => 'citygis ',
        ),
        'OrganizationName' =>
        array (
          'en' => 'citygis ',
        ),
        'OrganizationDisplayName' =>
        array (
          'en' => 'citygis ',
        ),
        'url' =>
        array (
          'en' => 'https://citygis.maps.arcgis.com',
        ),
        'OrganizationURL' =>
        array (
          'en' => 'https://citygis.maps.arcgis.com',
        ),
        'contacts' =>
        array (
        ),
        'metadata-set' => 'saml20-sp-remote',
        'AssertionConsumerService' =>
        array (
          0 =>
          array (
            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
            'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin',
            'index' => 1,
          ),
          1 =>
          array (
            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
            'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin',
            'index' => 2,
          ),
        ),
        'SingleLogoutService' =>
        array (
        ),
      );
  2. Configurez l'attribut qui est transmis en tant que NameID à ArcGIS Online par le fournisseur d'identitésSimpleSAMLphp après authentification de l'utilisateur. Pour ce faire, ajoutez l'attribut à la fin de la configuration du fournisseur de services que vous avez ajouté à l'étape précédente.

    Dans l’exemple suivant, uid est transmis en tant que NameID par le fournisseur d’identités SimpleSAMLphp à ArcGIS Online après authentification de l’utilisateur. (Remplacez citygis.maps.arcgis.com par l'URL de votre organisation.)

    'NameIDFormat'               => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
    'simplesaml.nameidattribute' => 'uid',
    
    /* The following indicates whether or not to send all the attributes received from the authentication source to the service provider.
      If true, it will send, otherwise it will not send all the attributes*/
    
      'simplesaml.attributes'      => true,
    );
  3. Si vous choisissez le paramètre avancé Encrypt Assertion (Chiffrer l’assertion) lorsque vous enregistrez SimpleSAMLphp en tant que fournisseur d’identités SAML, ajoutez l’attribut ci-dessous en bas de la configuration du fournisseur de services que vous avez ajouté à l’étape 1.
    /*
      Whether assertions sent to this SP should be encrypted. The default value is FALSE.
      */
      'assertion.encryption' => true,
    );