Cache d'authentification et de groupe
Un nouveau cache pour l'authentification basée sur un ID utilisateur et un mot de passe et des plug-ins de groupe ont été introduits pour réduire la pression exercée sur les mécanismes d'authentification dorsale.
Ce cache sera appliqué uniquement aux demandes d'authentification associées aux demandes CONNECT qui fournissent des mots de passe pour l'authentification. Un cache existe pour chaque membre de la base de données qui reçoit des demandes CONNECT et son contenu est indépendant de celui des autres membres.
La partie groupe du cache comporte une liste des groupes externes associés à un ID utilisateur donné. Cette liste est normalement renvoyée dans le cadre du processus d'authentification. Si une correspondance est trouvée pour un ID utilisateur dans le cache du groupe, la liste des groupes en cache est renvoyée et la recherche d'un groupe externe est ignorée.
Avantages du cache
L'activation du cache est particulièrement utile lorsque le service d'authentification pour une instance Db2 se trouve sur un hôte distant et qu'il n'y a pas de mise en cache locale sur le serveur. Le temps système de la communication réseau et la surcharge du service d'authentification peuvent entraîner des retards importants lors de l'authentification auprès du serveur Db2 , ce qui entraîne des connexions plus lentes. L'utilisation du plug-in de sécurité ldap appartient à cette catégorie.
Configuration
Les deux paramètres de configuration de la base de données pour le cache d'authentification peuvent être configurés en ligne et ne nécessitent pas la désactivation et la réactivation de la base de données.
Le nombre d'entrées à mettre en cache est déterminé par l'utilisateur et indiqué par un nouveau paramètre de configuration de la base de données. Lorsque le nombre d'entrées en mémoire cache atteint la valeur maximale configurée, toute nouvelle entrée en cache force l'éviction d'une entrée de cache existante.
Pour plus d'informations, voir le paramètre AUTHN_CACHE_USERS .
La durée pendant laquelle une entrée en cache est considérée comme valide pour la comparaison est déterminée par l'utilisateur et indiquée par un nouveau paramètre de configuration de la base de données. Cette période commence lors de la mise en cache initiale de l'entrée. A l'issue de ce délai, l'entrée n'est plus considérée comme valide pour la comparaison avec de nouvelles demandes et elle peut être évincée.
Pour plus d'informations, voir le paramètre AUTHN_CACHE_DURATION .
Surveillance du cache et des performances
La fonction de table MON_GET_CONNECTION contient plusieurs mesures associées aux connexions actives d'une base de données donnée. L'une de ces mesures, total_connect_authentication_time, mesure la durée d'authentification pour une connexion donnée. Si la valeur de total_connect_authentication_time baisse une fois que le cache est activé, cela implique que le cache fonctionne.
La fonction de table MON_GET_DATABASE contient plusieurs mesures associées au cache d'authentification lui-même.
AUTHN_CACHE_LOOKUPS mesure le nombre de fois où le cache est recherché pour une entrée. AUTHN_CACHE_HITS Il mesure également le nombre de fois où le serveur Db2 a pu trouver une entrée valide correspondant à un utilisateur donné. L'efficacité du cache peut être jugée selon la fréquence à laquelle le serveur trouve des informations d'authentification valides dans le cache à chaque fois qu'il y accède au cours de l'authentification. L'efficacité du cache ou le taux d'accès peut être calculé par (AUTHN_CACHE_HITS / AUTHN_CACHE_LOOKUPS).
Un faible taux de réussite du cache peut avoir deux causes :
- Si la taille du cache est insuffisante, des entrées valides sont constamment évincées. Cela réduit les chances de trouver les informations d'authentification mises en cache pour un utilisateur donné.
- La durée pendant laquelle une entrée est valide dans le cache avant que l'utilisateur ne doive être réauthentifié est trop courte. Cela signifie que les entrées expirent trop vite. Dans ce cas, si des informations d'authentification concordantes sont trouvées pour un utilisateur au moment où il se connecte, celles-ci ne pourront pas être utilisées car elles ont expiré.
La mesure de surveillance AUTHN_CACHE_EXPIRED_EVICTIONS compte le nombre de fois que le système a expulsé une entrée expiré du cache. La mesure AUTHN_CACHE_VALID_EVICTIONS compte le nombre d'expulsions d'entrées qui étaient toujours valides au moment de l'expulsion. Si la valeur de AUTHN_CACHE_EXPIRED_EVICTIONS augmente plus rapidement que celle de AUTHN_CACHE_VALID_EVICTIONS, cela implique que la durée maximale d'une entrée valide dans le cache est trop courte et qu'elle doit être augmentée. Si l'inverse se produit, le cache est trop petit et son efficacité sera accrue en augmentant sa taille.
Changement du mot de passe et de l'appartenance au groupe
Db2 ne sait pas quand le mot de passe ou l'appartenance à un groupe d'un utilisateur donné est modifié. Par conséquent, toutes les entrées du cache contenant des informations périmées sont toujours considérées comme valides jusqu'à leur expiration. Dans un cas comme celui-ci, une liste de groupes périmée ou une authentification avec un ancien mot de passe peut être renvoyée.
Si le mot de passe d'un utilisateur a changé et qu'une tentative d'authentification avec le nouveau mot de passe est effectuée, une entrée périmée présente dans le cache est mise à jour et les authentifications ultérieures effectuées à l'aide de ce nouveau mot de passe seront traitées par le cache.
Si l'appartenance d'un utilisateur à un groupe a changé, l'entrée doit expirer et être évincée ou vidée pour que le cache puisse stocker les informations mises à jour concernant le groupe.
Pour invalider immédiatement toutes les entrées et vider le cache, l'instruction FLUSH AUTHENTICATION CACHE peut être exécutée. Pour plus d'informations, voir FLUSH AUTHENTICATION CACHE .