Les plats clés
- La connexion unique (SSO) est un processus qui permet à un utilisateur d'accéder à plusieurs services après l'authentification de son identité qu'une seule fois, ce qui élimine la nécessité de confirmer à plusieurs reprises l'identité via des mots de passe ou d'autres systèmes.
- La mise en ?uvre de SSO peut être bénéfique lors du développement d'un produit qui interagit avec d'autres services ou lors de l'utilisation de services tiers, car il garantit que les utilisateurs n'ont pas besoin de se connecter séparément à chaque service.
- Bien que le processus SSO varie légèrement entre différents services, l'idée de base reste la même: générer un jeton et la valider. Des mesures de sécurité solides, telles que l'authentification multi-facteurs et les mises à jour régulières de mot de passe, devraient être implémentées pour atténuer les risques associés à SSO.
Lorsque vous développez un produit pour les masses, il est très rare que vous proposiez un produit totalement autonome qui n'interagit avec aucun autre service. Lorsque vous utilisez un service tiers, l'authentification des utilisateurs est une tache relativement difficile, car différentes applications ont des mécanismes différents en place pour authentifier les utilisateurs. Une fa?on de résoudre ce problème est par le biais d'une seule connexion, ou SSO.
Le signe unique (SSO) est un processus qui permet à un utilisateur d'accéder à plusieurs services après avoir suivi l'authentification de l'utilisateur (c'est-à-dire la connexion) qu'une seule fois. Cela implique l'authentification dans tous les services auxquels l'utilisateur a donné l'autorisation, après s'être connecté à un service principal. Parmi d'autres avantages, SSO évite la tache monotone de confirmer l'identité encore et encore via des mots de passe ou d'autres systèmes d'authentification.
Regardons plus en détail SSO et nous utiliserons un service très connu pour démontrer ses utilisations et avantages.
Le processus d'authentification
Le processus de base du SSO est le suivant:
- La première étape consiste à se connecter au service principal (Facebook ou Google, par exemple).
- Lorsque vous visitez un nouveau service, il vous redirige vers le service d'origine (ou parent) pour vérifier si vous êtes connecté à celui-ci.
- Un jeton OTP (mot de passe ponctuel) est renvoyé.
- Le jeton OTP est ensuite vérifié par le nouveau service des serveurs du parent, et ce n'est qu'après une vérification réussie, l'entrée accordée par l'utilisateur.
Bien que la fabrication de l'API pour SSO soit une tache fastidieuse, en particulier dans la gestion de la sécurité, la mise en ?uvre est une tache relativement plus facile!
Un bon exemple de l'utilisation de SSO est dans les services de Google. Vous n'avez qu'à être connecté à un seul compte Google principal pour accéder à différents services comme YouTube, Gmail, Google, Google Analytics, et plus encore.
SSO pour vos propres produits
Lorsque vous construisez votre propre produit, vous devez vous assurer que tous ses composants utilisent la même authentification. C'est facile à faire lorsque tous vos services sont confinés à votre propre base de code. Cependant, avec des services populaires comme le système de commentaires Disqus et Freshdesk pour la gestion de la relation client, c'est une bonne idée de les utiliser au lieu de créer le v?tre à partir de zéro.
mais un problème se pose avec l'utilisation de ces services tiers. Comme leur code est hébergé sur ses serveurs respectifs, l'utilisateur doit se connecter explicitement sur ses services même s'ils sont connectés à votre site Web. La solution, comme mentionné, est la mise en ?uvre de SSO.
Idéalement, vous avez une paire de clés - publique et privée. Vous générez un jeton pour un utilisateur connecté et l'envoyez au service avec votre clé publique pour la vérification. Après vérification, l'utilisateur est automatiquement connecté au service. Pour mieux comprendre cela, utilisons un vrai exemple.
le disqus sso
Disqus est un service d'hébergement de commentaires populaire pour les sites Web, qui offre une charge de fonctionnalités telles que l'intégration des réseaux sociaux, les outils de modération, l'analyse et même la possibilité d'exporter des commentaires. Il a commencé comme une startup YCombinator et est devenu l'un des sites Web les plus populaires au monde!
Comme le système de commentaires Disqus est intégré dans vos pages, il est important que l'utilisateur n'ait pas besoin de se connecter pour une deuxième fois dans Disqus s'il est déjà connecté sur votre site Web. Disqus a une API avec une documentation approfondie sur la fa?on d'intégrer SSO.
Vous générez d'abord une clé appelée Remote_auth_S3 pour un utilisateur connecté à l'aide de vos clés API privées et publiques Disquus. Vous êtes fourni les clés publiques et privées lorsque vous enregistrez SSO en tant qu'add-on gratuit dans Disqus.
Vous transmettez les informations de l'utilisateur (ID, nom d'utilisateur et e-mail) à Disqus pour l'authentification en tant que JSON. Vous générez un message que vous devez utiliser tout en rendant le système Disqus sur votre page. Pour mieux le comprendre, jetons un coup d'?il à un exemple écrit en python.
Les exemples de code dans quelques langages populaires comme PHP, Ruby et Python sont fournis par Disqus sur Github.
Génération du message
Exemple de code Python (trouvé sur GitHub pour connecter un utilisateur sur votre site Web est le suivant.
<span>import base64 </span><span>import hashlib </span><span>import hmac </span><span>import simplejson </span><span>import time </span> DISQUS_SECRET_KEY <span>= '123456' </span>DISQUS_PUBLIC_KEY <span>= 'abcdef' </span> <span>def get_disqus_sso(user): </span> <span># create a JSON packet of our data attributes </span> data <span>= simplejson.dumps({ </span> <span>'id': user['id'], </span> <span>'username': user['username'], </span> <span>'email': user['email'], </span> <span>}) </span> <span># encode the data to base64 </span> message <span>= base64.b64encode(data) </span> <span># generate a timestamp for signing the message </span> timestamp <span>= int(time.time()) </span> <span># generate our hmac signature </span> sig <span>= hmac.HMAC(DISQUS_SECRET_KEY, '%s %s' % (message, timestamp), hashlib.sha1).hexdigest() </span> <span># return a script tag to insert the sso message </span> <span>return """<script type="text/javascript"> </span><span> var disqus_config = function() { </span><span> this.page.remote_auth_s3 = "%(message)s %(sig)s %(timestamp)s"; </span><span> this.page.api_key = "%(pub_key)s"; </span><span> } </span><span> </script>""" % dict( </span> message<span>=message, </span> timestamp<span>=timestamp, </span> sig<span>=sig, </span> pub_key<span>=DISQUS_PUBLIC_KEY, </span> <span>)</span>
Initialisation des commentaires Disqus
Vous envoyez ensuite ce jeton généré, ainsi que votre clé publique à Disqus dans une demande JavaScript. Si l'authentification est vérifiée, le système de commentaires généré a déjà connecté l'utilisateur. Si vous avez des problèmes, vous pouvez demander de l'aide dans les développeurs Disqus Google Group.
Nous pouvons voir la mise en ?uvre de SSO sur le Blog Bowl, qui est un répertoire de blogs développé dans Python / Django. Si vous êtes connecté au site Web, vous devez être connecté lorsque le système de commentaires Disqus est rendu. Dans cet exemple, l'objet de la personne stocke l'ID (qui est unique pour chaque personne sur le site), le courrier électronique et le nom de Pen_name. Le message est généré comme indiqué ci-dessous.
<span>import base64 </span><span>import hashlib </span><span>import hmac </span><span>import simplejson </span><span>import time </span> DISQUS_SECRET_KEY <span>= '123456' </span>DISQUS_PUBLIC_KEY <span>= 'abcdef' </span> <span>def get_disqus_sso(user): </span> <span># create a JSON packet of our data attributes </span> data <span>= simplejson.dumps({ </span> <span>'id': user['id'], </span> <span>'username': user['username'], </span> <span>'email': user['email'], </span> <span>}) </span> <span># encode the data to base64 </span> message <span>= base64.b64encode(data) </span> <span># generate a timestamp for signing the message </span> timestamp <span>= int(time.time()) </span> <span># generate our hmac signature </span> sig <span>= hmac.HMAC(DISQUS_SECRET_KEY, '%s %s' % (message, timestamp), hashlib.sha1).hexdigest() </span> <span># return a script tag to insert the sso message </span> <span>return """<script type="text/javascript"> </span><span> var disqus_config = function() { </span><span> this.page.remote_auth_s3 = "%(message)s %(sig)s %(timestamp)s"; </span><span> this.page.api_key = "%(pub_key)s"; </span><span> } </span><span> </script>""" % dict( </span> message<span>=message, </span> timestamp<span>=timestamp, </span> sig<span>=sig, </span> pub_key<span>=DISQUS_PUBLIC_KEY, </span> <span>)</span>
à l'avant, vous imprimez simplement cette variable pour exécuter le script. Pour une démo en direct, vous pouvez visiter cet article sur le Blog Bowl et vérifier les commentaires rendus en bas. Naturellement, vous ne seriez pas connecté.
Ensuite, connectez-vous au blog, visitez à nouveau le même article (vous devez vous connecter pour voir l'effet). Notez que vous êtes connecté au système de commentaires ci-dessous.
Une autre fonctionnalité intéressante que le Blog Bowl fournit est l'anonymat lors de la publication de contenu (comme cet article). Pensez à une situation où vous souhaitez qu'un utilisateur publie des réponses aux commentaires sur Disqus en tant qu'utilisateur anonyme (comme sur Quora). Nous avons pris le moyen facile de sortir et a ajouté un grand nombre à l'identifiant. Pour associer un e-mail unique pour l'utilisateur (afin qu'il n'appara?t pas avec d'autres commentaires de l'utilisateur), nous générons également un e-mail unique. Cela maintient vos commentaires anonymes, mais ne le combine pas avec votre profil d'origine ou vos commentaires anonymes par d'autres utilisateurs.
et voici le code:
sso <span>= get_disqus_sso({ </span> <span>'id': person.id, </span> <span>'email': person.user.email, </span> <span>'username': person.pen_name </span><span>})</span>
Conclusion
Bien que les processus SSO pour différents services varient légèrement, l'idée de base derrière elles est la même - générer un jeton et la valider! J'espère que ce post vous a aidé à comprendre comment les applications intègrent SSO et peut-être que cela vous aidera à implémenter SSO vous-même.
Si vous avez des corrections, des questions ou avez vos propres expériences à partager avec SSO, n'hésitez pas à commenter.
Les questions fréquemment posées sur la connexion unique (SSO)
Quel est l'objectif principal de la connexion unique (SSO)?
L'objectif principal de la connexion unique (SSO) est de simplifier le processus d'authentification de l'utilisateur en permettant aux utilisateurs d'accéder à plusieurs applications ou sites Web avec un seul ensemble d'identification de connexion. Cela élimine le besoin de se souvenir de plusieurs noms d'utilisateur et mots de passe, améliorant ainsi la commodité et la productivité des utilisateurs. SSO améliore également la sécurité en réduisant les chances de mauvaise gestion du mot de passe et d'accès non autorisé.
Comment fonctionne la connexion unique (SSO)?
SSO fonctionne-t-il en établissant une relation de confiance entre plusieurs applications ou sites Web. Lorsqu'un utilisateur se connecte à une application, le système SSO authentifie les informations d'identification de l'utilisateur et émet un jeton de sécurité. Ce jeton est ensuite utilisé pour authentifier l'utilisateur pour d'autres applications dans le système SSO, éliminant le besoin de connexions multiples.
Quels sont les avantages de l'utilisation d'une connexion unique (SSO)?
SSO offre plusieurs avantages. Il simplifie l'expérience utilisateur en réduisant le besoin de connexions multiples, en gagnant ainsi du temps et en réduisant la frustration. Il améliore également la sécurité en minimisant le risque de violations liées au mot de passe. De plus, il peut réduire les co?ts informatiques en diminuant le nombre de demandes de réinitialisation de mot de passe.
Y a-t-il des risques associés à la connexion unique (SSO)?
Bien que SSO offre de nombreux avantages, il également Livré avec des risques potentiels. Si les informations d'identification SSO d'un utilisateur sont compromises, un attaquant peut accéder à toutes les applications liées à ces informations d'identification. Par conséquent, il est crucial de mettre en ?uvre de solides mesures de sécurité, telles que l'authentification multi-facteurs et les mises à jour régulières de mot de passe, pour atténuer ces risques.
Quelle est la différence entre l'authentification unique (SSO) et l'authentification multi-facteurs ( MFA)?
SSO et MFA sont tous deux des méthodes d'authentification, mais elles servent des objectifs différents. SSO simplifie le processus de connexion en permettant aux utilisateurs d'accéder à plusieurs applications avec un seul ensemble d'identification. D'un autre c?té, MFA améliore la sécurité en obligeant les utilisateurs à fournir deux ou plusieurs formes d'identification avant d'accorder l'accès.
peut être utilisé (SSO) unique avec des applications mobiles?
Oui , SSO peut être utilisé avec des applications mobiles. De nombreuses solutions SSO offrent une prise en charge mobile, permettant aux utilisateurs d'accéder à plusieurs applications sur leurs appareils mobiles avec un seul ensemble d'identification.
Comment la connexion unique (SSO) améliore-t-elle l'expérience utilisateur?
SSO Améliore l'expérience utilisateur en simplifiant le processus de connexion. Les utilisateurs n'ont qu'à se souvenir uniquement d'un ensemble d'identification, réduisant la frustration des mots de passe oubliés. Cela fait également gagner du temps, car les utilisateurs n'ont pas besoin de saisir à plusieurs reprises leurs informations d'identification lors de l'accès à différentes applications.
Quelles industries peuvent bénéficier d'une connexion unique (SSO)?
pratiquement n'importe quelle industrie peut bénéficier de SSO. Les industries qui reposent fortement sur plusieurs applications, telles que les soins de santé, l'éducation, la finance et la technologie, peuvent particulièrement bénéficier de la commodité et de la sécurité fournit.
Comment la connexion unique (SSO) améliore-t-elle la sécurité?
SSO améliore la sécurité en réduisant le nombre de mots de passe dont les utilisateurs doivent se souvenir et gérer. Cela diminue la probabilité de mots de passe faibles ou réutilisés, qui sont des cibles communes pour les cyberattaques. De plus, de nombreuses solutions SSO intègrent des mesures de sécurité supplémentaires, telles que l'authentification et le cryptage multi-facteurs, pour protéger davantage les données des utilisateurs.
La connexion unique (SSO) peut-elle être intégrée aux systèmes existants?
Oui, la plupart des solutions SSO peuvent être intégrées aux systèmes existants. Cependant, le processus d'intégration peut varier en fonction de la solution SSO spécifique et des systèmes en place. Il est important de travailler avec une équipe informatique expérimentée ou un fournisseur SSO pour assurer une intégration fluide et sécurisée.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le polymorphisme est un concept de base dans la programmation orientée objet Python, se référant à "une interface, plusieurs implémentations", permettant le traitement unifié de différents types d'objets. 1. Le polymorphisme est implémenté par la réécriture de la méthode. Les sous-classes peuvent redéfinir les méthodes de classe parent. Par exemple, la méthode Spoke () de classe animale a des implémentations différentes dans les sous-classes de chiens et de chats. 2. Les utilisations pratiques du polymorphisme comprennent la simplification de la structure du code et l'amélioration de l'évolutivité, tels que l'appel de la méthode Draw () uniformément dans le programme de dessin graphique, ou la gestion du comportement commun des différents personnages dans le développement de jeux. 3. Le polymorphisme de l'implémentation de Python doit satisfaire: la classe parent définit une méthode, et la classe enfant remplace la méthode, mais ne nécessite pas l'héritage de la même classe parent. Tant que l'objet implémente la même méthode, c'est ce qu'on appelle le "type de canard". 4. Les choses à noter incluent la maintenance

Les itérateurs sont des objets qui implémentent __iter __ () et __Next __ (). Le générateur est une version simplifiée des itérateurs, qui implémentent automatiquement ces méthodes via le mot clé de rendement. 1. L'ITERATOR renvoie un élément chaque fois qu'il appelle Next () et lance une exception d'arrêt lorsqu'il n'y a plus d'éléments. 2. Le générateur utilise la définition de la fonction pour générer des données à la demande, enregistrer la mémoire et prendre en charge les séquences infinies. 3. Utilisez des itérateurs lors du traitement des ensembles existants, utilisez un générateur lors de la génération de Big Data ou de l'évaluation paresseuse, telles que le chargement ligne par ligne lors de la lecture de fichiers volumineux. Remarque: les objets itérables tels que les listes ne sont pas des itérateurs. Ils doivent être recréés après que l'itérateur a atteint sa fin, et le générateur ne peut le traverser qu'une seule fois.

La clé pour gérer l'authentification de l'API est de comprendre et d'utiliser correctement la méthode d'authentification. 1. Apikey est la méthode d'authentification la plus simple, généralement placée dans l'en-tête de demande ou les paramètres d'URL; 2. BasicAuth utilise le nom d'utilisateur et le mot de passe pour la transmission de codage Base64, qui convient aux systèmes internes; 3. OAuth2 doit d'abord obtenir le jeton via client_id et client_secret, puis apporter le Bearertoken dans l'en-tête de demande; 4. Afin de gérer l'expiration des jetons, la classe de gestion des jetons peut être encapsulée et rafra?chie automatiquement le jeton; En bref, la sélection de la méthode appropriée en fonction du document et le stockage en toute sécurité des informations clés sont la clé.

Assert est un outil d'affirmation utilisé dans Python pour le débogage et lance une affirmation d'établissement lorsque la condition n'est pas remplie. Sa syntaxe est affirmer la condition plus les informations d'erreur facultatives, qui conviennent à la vérification de la logique interne telle que la vérification des paramètres, la confirmation d'état, etc., mais ne peuvent pas être utilisées pour la sécurité ou la vérification des entrées des utilisateurs, et doit être utilisée en conjonction avec des informations d'invite claires. Il n'est disponible que pour le débogage auxiliaire au stade de développement plut?t que pour remplacer la manipulation des exceptions.

Une méthode courante pour parcourir deux listes simultanément dans Python consiste à utiliser la fonction zip (), qui appariera plusieurs listes dans l'ordre et sera la plus courte; Si la longueur de liste est incohérente, vous pouvez utiliser itertools.zip_langest () pour être le plus long et remplir les valeurs manquantes; Combiné avec enumerate (), vous pouvez obtenir l'index en même temps. 1.zip () est concis et pratique, adapté à l'itération des données appariées; 2.zip_langest () peut remplir la valeur par défaut lorsqu'il s'agit de longueurs incohérentes; 3. L'énumération (zip ()) peut obtenir des indices pendant la traversée, en répondant aux besoins d'une variété de scénarios complexes.

Inpython, itérateurslawjectsThatallowloopingthroughCollectionsbyImpleting __iter __ () et__Next __ (). 1) iteratorsworkVeatheitorat

TypeHintsInpythonsolvetheproblebandofambigu?té et opposant à un montant de type de type parallèlement au développement de l'aménagement en fonction des types de type.

Pour créer des API modernes et efficaces à l'aide de Python, FastAPI est recommandé; Il est basé sur des invites de type Python standard et peut générer automatiquement des documents, avec d'excellentes performances. Après avoir installé FastAPI et ASGI Server Uvicorn, vous pouvez écrire du code d'interface. En définissant les itinéraires, en écrivant des fonctions de traitement et en renvoyant des données, les API peuvent être rapidement construites. Fastapi prend en charge une variété de méthodes HTTP et fournit des systèmes de documentation SwaggerUI et Redoc générés automatiquement. Les paramètres d'URL peuvent être capturés via la définition du chemin, tandis que les paramètres de requête peuvent être implémentés en définissant des valeurs par défaut pour les paramètres de fonction. L'utilisation rationnelle des modèles pydantiques peut aider à améliorer l'efficacité du développement et la précision.
