Maison >développement back-end >tutoriel php >Explication détaillée des exemples de principes de mise en œuvre de l'authentification unique PHP

Explication détaillée des exemples de principes de mise en œuvre de l'authentification unique PHP

王林
王林original
2019-09-03 11:58:544393parcourir

Explication détaillée des exemples de principes de mise en œuvre de l'authentification unique PHP

SSO d'authentification unique (Single Sign On) pour faire simple, dans un environnement où plusieurs systèmes coexistent, une fois que les utilisateurs se sont connectés au même endroit, ils n'ont pas besoin de se connecter dans d'autres systèmes, c'est-à-dire que la connexion unique d'un utilisateur peut être approuvée par tous les autres systèmes. L'authentification unique est utilisée très fréquemment dans les grands sites Web, tels que des sites Web comme Alibaba. Derrière le site Web se trouvent des centaines ou des milliers de sous-systèmes. L'opération ou la transaction d'un utilisateur peut impliquer la collaboration de dizaines de sous-systèmes si chaque opération nécessite une authentification de l'utilisateur. . Non seulement l'utilisateur deviendra fou, mais chaque sous-système deviendra également fou en raison de la logique d'authentification et d'autorisation répétées. En dernière analyse, la mise en œuvre de l'authentification unique consiste à déterminer comment générer et stocker cette confiance, puis comment d'autres systèmes vérifient la validité de cette confiance. Par conséquent, les points clés sont les suivants :

1. Confiance du magasin

2. Vérifier la confiance

Tant que les problèmes ci-dessus sont résolus et que l'effet mentionné au début est obtenu, cela peut être considéré comme étant SSO. Le moyen le plus simple de mettre en œuvre le SSO est d'utiliser des cookies. Le processus de mise en œuvre est le suivant :

Explication détaillée des exemples de principes de mise en œuvre de lauthentification unique PHP

Il n'est pas difficile de constater que la solution ci-dessus consiste à stocker la confiance dans le cookie. du client. Cette méthode Bien qu'elle soit facile à mettre en œuvre, les gens se poseront immédiatement deux questions :

1. -la connexion au domaine n'est pas autorisée

Le premier problème est généralement résolu grâce aux cookies cryptés. Le deuxième problème est une faille. En fait, l'idée de cette solution est de stocker la relation de confiance. sur le client. Pour y parvenir, ce n'est pas possible. Vous devez uniquement utiliser des cookies, et vous pouvez également utiliser Flash. L'API Shared Object de Flash fournit des capacités de stockage.

De manière générale, les grands systèmes adopteront la méthode de stockage des relations de confiance côté serveur. Le processus de mise en œuvre est le suivant :

La solution ci-dessus est la suivante. pour stocker les relations de confiance La relation est stockée dans un système SSO distinct (appelons-le ainsi pour le moment). Elle est simplement déplacée du client vers le serveur, mais plusieurs problèmes doivent être résolus :

<.>1. Comment être efficace Stocker une grande quantité de données de confiance temporaires Explication détaillée des exemples de principes de mise en œuvre de lauthentification unique PHP

2 Comment empêcher la falsification du processus de transfert d'informations

3. Comment faire en sorte que le système SSO fasse confiance au système de connexion et au système Bintang

Pour le premier problème, vous pouvez généralement utiliser une solution de cache distribué similaire à Memcached, qui peut non seulement fournir un mécanisme pour un volume de données évolutif, mais fournit également un accès efficace. Pour la deuxième question, la méthode de signature numérique est généralement adoptée, soit via la signature de certificat numérique, soit via une méthode comme md5. Cela nécessite que le système SSO crypte les paramètres qui doivent être vérifiés avec md5 lors du renvoi de l'URL de connexion, et apporte l'URL de connexion. Jeton.Renvoyer ensemble.Lorsque le système qui doit être connecté vérifie enfin la relation de confiance, le jeton doit être transmis au système SSO. Le système SSO peut identifier si les informations ont été modifiées en vérifiant le jeton. Le dernier problème peut être résolu via une liste blanche. Pour faire simple, seuls les systèmes figurant sur la liste blanche peuvent demander des relations de confiance en production. De même, seuls les systèmes figurant sur la liste blanche peuvent être exemptés de connexion.

Pour plus de questions connexes, veuillez visiter le site Web PHP chinois : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn