Maison >développement back-end >Problème PHP >Quel est le principe de mise en œuvre de l'authentification unique en php
Le principe de la mise en œuvre de l'authentification unique par PHP est le suivant : stockez d'abord la confiance dans le cookie du client, puis vérifiez davantage le cookie ; Afin de stocker efficacement une grande quantité de données de confiance temporaires, une solution de cache distribué similaire à Memcached peut être utilisée.
Single Sign On SSO (Single Sign On) signifie simplement que dans un environnement où plusieurs systèmes coexistent, une fois que l'utilisateur s'est connecté à un seul endroit, il n'y a pas La nécessité de se connecter à d'autres systèmes signifie que la connexion de l'utilisateur peut être approuvée par tous les autres systèmes.
(Recommandations associées : formation php )
L'authentification unique est très fréquemment utilisée dans les grands sites Web, tels que des sites Web comme Alibaba. Derrière le site Web se cache des centaines. ou des milliers de sous-systèmes, et l'opération ou la transaction d'un utilisateur peut impliquer la coopération de dizaines de sous-systèmes
Si chaque sous-système nécessite une authentification de l'utilisateur, non seulement l'utilisateur deviendra fou, mais chaque sous-système le fera également. l'authentification et l'autorisation sont folles.
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
Les points clés sont donc ; comme suit :
1. Confiance de stockage
2. Confiance de vérification
Tant que les problèmes ci-dessus sont résolus et que les effets mentionnés au début sont obtenus, cela peut être dit être 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 :
Il n'est pas difficile de constater que la solution ci-dessus stocke. faites confiance au client. Dans Cookie, bien que cette méthode soit facile à mettre en œuvre, elle amènera immédiatement les gens à s'interroger sur deux problèmes :
1. Les cookies ne sont pas sûrs
2. non autorisé
Pour Le premier problème est généralement résolu en cryptant les cookies. Le deuxième problème est une faille en fait, l'idée decette solution est de stocker la relation de confiance sur le client. Pour cela, les cookies ne sont pas nécessairement le seul moyen. Flash peut également être utilisé pour résoudre ce problème. L'API d'objet partagé de Flash offre 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 stocker efficacement un grand nombre de données temporaires sur la confiance sexuelle
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 le système de connexion
Pour la première question, généralement, une solution de cache distribué similaire à Memcached peut être utilisée, qui peut non seulement fournir un mécanisme pour un volume de données évolutif, mais également fournir 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 exécute md5 sur les paramètres qui doivent être vérifiés lors du retour du. URL de connexion. Cryptez et renvoyez avec le jeton ;
Lorsque le système qui doit être connecté vérifie enfin la relation de confiance, le jeton doit être transmis au système SSO. a été vérifié en vérifiant le jeton modifié.
Pour le dernier problème, il peut être résolu via la liste blanche. Pour faire simple, seuls les systèmes de la liste blanche peuvent demander la relation de confiance de production. De même, seuls les systèmes de la liste blanche peuvent être exemptés de connexion. .
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!