Jetons et services de jetons

Un jeton est utilisé lorsque la sécurité d'ArcGIS Server est configurée sur l'option d'authentification gérée d'ArcGIS. Un jeton représente l'identité d'un utilisateur sur un service Web ArcGIS. Un jeton est envoyé à une application cliente par un service de jetons, qui est un service Web. Une application cliente doit fournir un jeton valide à un service Web ArcGIS sécurisé pour y accéder.

Authentification gérée par ArcGIS et basée sur l'utilisation de jetons

La séquence d'événements suivante se produit lorsqu'une application cliente tente d'accéder à un service Web ArcGIS sécurisé :

  1. le client adresse une demande à un service Web ArcGIS sécurisé ;
  2. le service Web ArcGIS indique au client qu'un jeton est nécessaire et lui fournit l'URL du service de jetons ;
  3. le client demande un jeton auprès du service de jetons en fournissant un nom d'utilisateur et un mot de passe valides ;
  4. le service de jetons vérifie le nom d'utilisateur et le mot de passe et, s'ils sont valides, envoie un jeton au client ;
  5. le client adresse une demande au service Web ArcGIS sécurisé à laquelle il inclut le jeton ;
  6. le service ArcGIS valide le jeton et renvoie au client la réponse à la demande de service.

Utilisation de services SIG sécurisés avec des jetons

Lorsque le service de jetons est activé et requis pour l'accès à des services Web ArcGIS, le logiciel client doit être en mesure d'obtenir et d'utiliser le jeton, comme dans le processus décrit ci-dessus. Les applications clientes ESRI, telles qu'ArcGIS Desktop, gèrent automatiquement le processus d'acquisition des jetons à partir du service de jetons et de présentation des jetons au service Web ArcGIS sécurisé. Le comportement des clients ArcGIS lorsqu'ils se connectent à un service Internet ArcGIS Server qui nécessite une authentification à base de jetons est décrit ci-dessous.

RemarqueRemarque :

Dans des applications Web, l'utilisateur final de l'application n'entre pas d'informations d'identification pour accéder au service ArcGIS dans le navigateur. Les informations d'identification permettant d'accéder au service Web ArcGIS sont spécifiées lors de la création de l'application Web dans le gestionnaire ArcGIS Server ou l'IDE Eclipse/NetBeans. Ces informations d'identification sont utilisées pour tous les utilisateurs de l'application Web. L'application Web peut elle-même être sécurisée pour demander des informations de connexion, mais ces dernières sont validées séparément. La sécurité au niveau de l'application Web peut être configurée à l'aide du gestionnaire ArcGIS Server. Grâce à la programmation personnalisée, il est possible de transmettre les informations d'identification de l'utilisateur final au service Web ArcGIS. Pour plus d'informations, reportez-vous à l'aide pour les développeurs d'ArcGIS Server.

Configuration d'un service de jetons

Un service de jetons est un service Web installé en même temps qu'ArcGIS Server. Il communique avec les magasins principaux et les magasins de sécurité qui conservent les informations sur l'utilisateur et le rôle pour authentifier les demandes entrantes de jetons. Après l'authentification des informations de l'utilisateur, un jeton est émis pour permettre à l'utilisateur d'utiliser un service Web ArcGIS sécurisé.

Avant de lancer un service de jetons sur votre instance ArcGIS Server, vous devez le configurer. Pour configurer un service de jetons, ouvrez la page Paramètres dans le volet Sécurité du gestionnaire et cliquez sur l'onglet Sécurité des services SIG. Sélectionnez l'option Authentification du service de jetons ArcGIS et cliquez sur Configurer pour configurer et lancer un service de jetons sur votre instance ArcGIS Server.

Pour obtenir plus d'informations sur les valeurs des délais d'expiration des jetons et les clés partagées, consultez les sections "Délai d'expiration des jetons" et "Clé partagée pour le service de jetons" ci-dessous.

Connexion sécurisée (HTTPS/SSL) requise pour le service de jetons

Une connexion sécurisée utilisant HTTPS (SSL ou Secure Sockets Layer) est requise par défaut pour demander un jeton auprès du service de jetons. HTTPS chiffre le nom d'utilisateur et le mot de passe pendant la transmission. Le client doit utiliser HTTPS pour demander un jeton, soit à travers la méthode standard pour laquelle le nom d'utilisateur et le mot de passe sont inclus dans la chaîne de requête (utilisée par ArcGIS Desktop, les contrôles Web ADF et d'autres clients), soit à travers la page Web GetToken.html.

Uniquement à des fins de tests internes, vous pouvez désactiver le protocole HTTPS pour que les jetons puissent être obtenus via un protocole HTTP non sécurisé. Soyez conscient que les mots de passe envoyés à l'aide du protocole HTTP peuvent être interceptés par quiconque est connecté au réseau.

Délai d'expiration des jetons

Une fois le service de jetons activé, vous pouvez configurer la valeur du délai d'expiration du jeton dans le gestionnaire en ouvrant la page Paramètres du volet Sécurité et en cliquant sur Configurer dans l'onglet Sécurité des services SIG. Chaque jeton est associé à un délai d'expiration pour garantir sa sécurité. Si l'utilisateur final utilise un jeton périmé, un message d'expiration ou un autre message d'erreur peut s'afficher.

Les jetons avec un délai d'expiration plus court sont plus sûrs, car ils ne sont valables que pendant une fenêtre horaire réduite. Cependant, si le délai d'expiration est court, les applications doivent recycler les jetons plus souvent, ce qui entraîne une diminution des performances.

Lors de la configuration du service de jetons installé avec ArcGIS Server, vous êtes invité à entrer deux délais d'expiration :

Les développeurs JavaScript qui souhaitent utiliser des services sécurisés peuvent demander un jeton avec un délai d'expiration spécifique sur la page Web GetToken.

Pour obtenir plus d'informations sur la demande de jetons, consultez la section "Demande de jetons" ci-dessous.

Clé partagée pour le service de jetons

La clé partagée pour le service de jetons permet de chiffrer le jeton. Le jeton est chiffré à l'aide du nom d'utilisateur et d'autres informations, puis envoyé au client. La demande envoyée par le client pour accéder à un service Web ArcGIS inclut le jeton. Le serveur utilise alors la clé partagée pour déchiffrer le jeton. Le serveur vérifie l'identité du client avant d'autoriser l'accès au service Web ArcGIS. La clé partagée garantit que le serveur a créé le jeton.

Comme la clé partagée est essentielle pour garantir l'identité et l'autorisation du client, une valeur unique d'une longueur appropriée doit être attribuée à la clé. Pour configurer la clé partagée, ouvrez la page Paramètres dans le volet Sécurité et cliquez sur Configurer dans l'onglet Sécurité des services SIG. Dans la boîte de dialogue Configurer le service de jetons local, définissez la valeur de la propriété Clé partagée pour le jeton de chiffrement. La clé doit être de 16 caractères (les caractères spécifiés après les 16 premiers ne sont pas utilisés). Il est recommandé d'utiliser un ensemble de caractères aléatoires pour la clé. Tous les caractères peuvent être utilisés, y compris les caractères non alphanumériques. La valeur de la clé ne doit pas pouvoir être devinée facilement par quiconque intercepterait le jeton. Comme les utilisateurs ne doivent ni utiliser ni se souvenir de la clé, la complexité de cette dernière n'est pas problématique, alors qu'elle peut l'être avec les mots de passe.

Le jeton est chiffré avec la clé à l'aide de la méthode de chiffrement AES (Advanced Encryption Standard), également connue sous le nom de Rijndael. Les 16 caractères de la clé correspondent aux 128 bits utilisés pour le chiffrement.

Pour obtenir plus d'informations sur le chiffrement et la norme AES, consultez les références sur la sécurité ou adressez-vous à une personne compétente de votre organisation dans les domaines de la sécurité et du chiffrement.

Page Web GetToken

Une page HTML est fournie avec le service de jetons pour permettre les demandes manuelles de jetons. En règle générale, cela est uniquement nécessaire lors de la création d'applications Web à l'aide de l'API ArcGIS Server pour JavaScript ou à des fins de test ou de dépannage. Les clients tels que les applications Web ADF et ArcGIS Desktop récupèrent automatiquement des jetons et ne requièrent pas cette page. La page GetToken se trouve sur l'instance d'ArcGIS Server à l'adresse https://<serveur_web>:<port>/arcgis/tokens/gettoken.html (ou si vous avez exporté le service de jetons et que vous l'avez déployé sur un serveur Web, remplacez <serveur_web> par le nom de domaine du serveur Web et remplacez arcgis/tokens par le chemin d'accès contextuel de l'application déployée).

Pour utiliser la page GetToken, entrez les informations suivantes :

Format de demande de jeton

Pour obtenir un jeton du serveur, vous effectuez une demande d'URL. Les clients qui utilisent des jetons, tels qu'ArcGIS Desktop, l'infrastructure Web ADF, l'API Web et les clients mobiles utilisent cette approche, de même que la page GetToken décrite dans la section précédente.

Demande de jeton à l'aide de l'extrémité tokens

Vous pouvez demander un jeton à l'aide de l'extrémité tokens. Par exemple, l'URL suivante peut être utilisée pour obtenir un jeton d'un serveur :

https://myserver.example.com/arcgis/tokens?request=gettoken&username=myuser&password=secret1&clientid=ref.myserver.example.com&expiration=1440&f=json&callback=myfunction

Cette demande obtiendra un jeton pour l'utilisateur utilisateur1 pour une application Web qui s'exécute sur le même serveur (myserver.example.com) avec une période de validation d'un jour (1 440 minutes).

Les paramètres suivants peuvent être spécifiés dans la chaîne de requête :

  • request : la valeur de ce paramètre est toujours gettoken (request=gettoken). (obligatoire).

  • username : nom d'un utilisateur dans le système. (obligatoire).

  • password : mot de passe de l'utilisateur dans le système. (obligatoire).

    RemarqueRemarque :

    HTTPS/SSL chiffre le nom d'utilisateur et le mot de passe pendant la transmission du jeton. Pour plus d'informations, reportez-vous à la section Connexion sécurisée (HTTPS/SSL) ci-dessus.

  • clientid : paramètre facultatif qui identifie le client. Utilisez un caractère "." entre le type et la valeur. Si ce paramètre n'est pas spécifié, le jeton utilisera un paramètre de délai d'expiration des jetons éphémères.

    Valeurs :

    • ip : adresse IP du client.

      Exemple : clientid=ip.10.14.102.85

    • ref : URL de base de l'application Web dans laquelle ce jeton sera utilisé. Ce paramètre doit être spécifié si la valeur du paramètre client est referrer.

      Exemple : clientid=ref.http://monserveur/monapplicationweb

    • requestip : si la valeur est spécifiée en tant que requestip (IP de la requête), le jeton est créé pour l'IP à partir de laquelle la demande a été émise.

      Exemple : clientid=requestip

  • expiration : paramètre facultatif spécifiant combien de temps le jeton sera valide à partir de sa publication. La valeur est exprimée en minutes. Si ce paramètre n'est pas inclus, l'expiration utilisera le paramètre de délai d'expiration des jetons éphémères.

  • f : nouveauté d'ArcGIS Server 10.0 Service Pack 1 (SP1), ce paramètre facultatif précise le format en sortie. Il accepte la valeur "json" pour renvoyer le résultat au format json. Si ce paramètre n'est pas précisé, le jeton est créé au format texte.

    Exemple : {"token":"hjSXkAQl2uczsyE9T3NDvhcso6WVYWSAqBcn1GFB-L8.","expires":"1289513369381"}

    Le délai d'expiration est exprimé en millisecondes depuis le 1er janvier 1970.

  • callback : paramètre facultatif précisant le nom de la fonction de rappel. Lorsque le rappel est inclus, la sortie est toujours renvoyée au format json.

Demande de jeton à l'aide de l'extrémité generateToken

Nouveauté d'ArcGIS Server 10.0 Service Pack 1 (SP1), vous pouvez également demander un jeton à l'aide de l'extrémité generateToken. Par exemple, l'URL suivante peut être utilisée pour obtenir un jeton d'un serveur :

https://myserver.example.com/arcgis/tokens/generateToken?username=myuser&password=mypass&client=referer|ip|requestip&referer=referer&ip=ipaddress&expiration=expiration&f=json&callback=myfunction

Les paramètres suivants peuvent être spécifiés dans la chaîne de requête :

  • username : nom d'utilisateur pour lequel le jeton est créé. (obligatoire).

  • password : mot de passe correspondant au nom d'utilisateur. (obligatoire).

    RemarqueRemarque :

    HTTPS/SSL chiffre le nom d'utilisateur et le mot de passe pendant la transmission du jeton. Pour plus d'informations, reportez-vous à la section Connexion sécurisée (HTTPS/SSL) ci-dessus.

  • client : paramètre facultatif qui identifie le client. Si ce paramètre n'est pas spécifié, le jeton utilisera un paramètre de délai d'expiration des jetons éphémères.

    Valeurs :

    • referer : URL de base de l'application Web dans laquelle ce jeton sera utilisé. Ce paramètre doit être spécifié si la valeur du paramètre client est referrer.

      Exemple : referer=http://monserveur/monapplicationweb

    • ip : adresse IP de la machine à partir de laquelle le jeton sera utilisé. Ce paramètre doit être spécifié si la valeur du paramètre client est ip.

      Exemple : ip=10.14.102.85

    • requestip : si la valeur est spécifiée en tant que requestip (IP de la requête), le jeton est créé pour l'IP à partir de laquelle la demande a été émise.

  • expiration : paramètre facultatif spécifiant combien de temps le jeton sera valide à partir de sa publication. La valeur est exprimée en minutes. Ce délai ne peut pas être supérieur au délai maximal autorisé pour un jeton persistant.

    Exemple : expiration=60

    RemarqueRemarque :

    Si les paramètres client et expiration ne sont pas inclus, un jeton éphémère est créé et l'expiration utilise le paramètre de délai d'expiration de jeton éphémère.

  • f : paramètre facultatif précisant le format en sortie. Il accepte la valeur "json" pour renvoyer le résultat au format json. Si ce paramètre n'est pas précisé, le jeton est créé au format texte.

    Exemple : {"token":"hjSXkAQl2uczsyE9T3NDvhcso6WVYWSAqBcn1GFB-L8.","expires":"1289513369381"}

    Le délai d'expiration est exprimé en millisecondes depuis le 1er janvier 1970.

  • callback : paramètre facultatif précisant le nom de la fonction de rappel. Lorsque le paramètre de rappel est inclus, la sortie est toujours renvoyée au format json.


2/28/2012