Authentification du client d'application

L'authentification du client d'application consiste à activer la sécurité client-serveur et l'authentification des données d'identification et à configurer un authentificateur et un générateur de données d'identification.

Activation de la sécurité client-serveur

Vous devez activer la sécurité sur le client et sur le serveur pour pouvoir vous authentifier auprès de la grille d'objets.

Activation de la sécurité du client

WebSphere eXtreme Scale fournit un exemple de fichier de propriétés client, le fichier sampleClient.properties, dans le répertoire racine_was/optionalLibraries/ObjectGrid/properties pour une installation WebSphere Application Server ou le répertoire /ObjectGrid/properties dans une installation de serveurs mixtes. Vous pouvez modifier ce fichier en y entrant les valeurs de votre choix. Associez la propriété securityEnabled du fichier objectgridClient.properties à la valeur true. La propriété securityEnabled indique si la sécurité est activée. Lorsqu'un client se connecte à un serveur, les valeurs du côté client et du côté serveur doivent toutes deux être égales à true ou à false. Par exemple, si la sécurité du serveur connecté est activée, la valeur de la propriété doit être associée à true du côté client pour que le client puisse se connecter au serveur.

L'interface com.ibm.websphere.objectgrid.security.config.ClientSecurityConfiguration représente le fichier security.ogclient.props. Vous pouvez utiliser l'API publique com.ibm.websphere.objectgrid.security.config.ClientSecurityConfigurationFactory pour créer une instance de cette interface avec les valeurs par défaut ou vous pouvez créer une instance en transmettant le fichier des propriétés de sécurité du client ObjectGrid. Le fichier security.ogclient.props contient d'autres propriétés. Pour plus de détails, voir la documentation de l'API ClientSecurityConfiguration et celle de l'API ClientSecurityConfigurationFactory.

Activation de la sécurité du serveur

Pour activer la sécurité côté serveur, vous pouvez donner la valeur true à la propriété securityEnabled dans le fichier security.xml. Un fichier XML de descripteur de sécurité vous permettra de spécifier la configuration de la sécurité de la grille en isolant celle-ci de tous les éléments de configuration n'ayant pas trait à la sécurité.

Activation de l'authentification des données d'identification

Une fois que le client eXtreme Scale a extrait l'objet Credential en utilisant l'objet CredentialGenerator, l'objet Credential est envoyé avec la demande du client au serveur eXtreme Scale. Le serveur authentifie l'objet Credential avant de traiter la demande. Si l'authentification de l'objet Credential réussit, un objet Subject est renvoyé pour représenter cet objet Credential. Cet objet Subject est alors utilisé pour autoriser la demande.

Définissez la propriété credentialAuthentication dans les fichiers de propriétés du client et du serveur afin d'activer l'authentification des données d'identification. Pour plus d'informations, voir Fichier de propriétés du client et Fichier de propriétés du serveur.

Le tableau suivant présente les mécanismes d'authentification à utiliser selon les paramètres.

Tableau 1. Authentification des données d'identification dans les paramètres du client et du serveur
Authentification des données d'identification du client Authentification des données d'identification du serveur Résultat
Non Jamais Désactivée
Non Prise en charge Désactivée
Non Obligatoire Cas d'erreur
Prise en charge Jamais Désactivée
Prise en charge Prise en charge Activé
Prise en charge Obligatoire Activé
Obligatoire Jamais Cas d'erreur
Obligatoire Prise en charge Activé
Obligatoire Obligatoire Activé

Configuration d'un authentificateur

Le serveur eXtreme Scale utilise le plug-in Authenticator pour authentifier l'objet Credential. Une implémentation de l'interface Authenticator obtient l'objet Credential qu'elle authentifie ensuite auprès d'un registre d'utilisateurs, un serveur LDAP, par exemple, et ainsi de suite. eXtreme Scale ne fournit aucune configuration de registre. La connexion à un registre d'utilisateurs et l'authentification auprès de celui-ci doivent être implémentées dans ce plug-in.

Par exemple, une implémentation d'Authenticator extrait l'ID utilisateur et le mot de passe des données d'identification, les utilise pour la connexion et la validation auprès d'un serveur LDAP et crée un objet Subject résultant de l'authentification. L'implémentation peut utiliser les modules de connexion JAAS (Java Authentication and Authorization Service). Un objet Subject est retourné comme résultat de l'authentification.

Vous pouvez configurer l'authentificateur dans le fichier XML descripteur de sécurité, comme dans l'exemple qui suit :
<?xml version="1.0" encoding="UTF-8"?>
<securityConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://ibm.com/ws/objectgrid/config/security ../objectGridSecurity.xsd"
	xmlns="http://ibm.com/ws/objectgrid/config/security">

	<security securityEnabled="true" 
        loginSessionExpirationTime="300">
	
		<authenticator className ="com.ibm.websphere.objectgrid.security.plugins.builtins.KeyStoreLoginAuthenticator">
        </authenticator>

	</security>
	
</securityConfig>

L'option -clusterSecurityFile lors du démarrage d'un serveur sécurisé permet de définir le fichier XML de sécurité. Voir Tutoriel sur la sécurité Java SE - Etape 2 pour des exemples de démarrage d'un serveur sécurisé.

Configuration d'un générateur de données d'identification système

Le générateur de données d'identification système permet de représenter la fabrique des données d'identification système. Les données d'identification système sont identiques aux données d'identification de l'administrateur. Vous pouvez configurer l'élément SystemCredentialGenerator dans le fichier XML de sécurité du catalogue, comme indiqué dans cet exemple :
<systemCredentialGenerator className ="com.ibm.websphere.objectgrid.security.plugins.
	builtins.UserPasswordCredentialGenerator">
          <property name="properties" type="java.lang.String" value="manager manager1" 
						description="username password" />
 </systemCredentialGenerator>
Pour que cet exemple soit parlant, le nom d'utilisateur et le mot de passe sont indiqués en clair. Dans un environnement de production, ne stockez pas ces informations en clair.

WebSphere eXtreme Scale fournit un générateur de données d'identification système par défaut qui utilise les données d'identification du serveur. Si vous n'indiquez pas ce générateur de façon explicite, le générateur par défaut est utilisé.