2017-09-19 2 views
1

Nous avons un système à trois couches comprenant le serveur API (Backend), le site Web client et l'utilisateur final. Maintenant, l'authentification se produit sur API Server, ce qui se fait dans deux cas. Dans un cas, Client Web Site appelle directement l'API en utilisant un token (Client Token) qui provient d'un service basé sur user/pass et dans un autre cas, en plus de l'utilisateur final se connecte au serveur API en utilisant Client Web Site. autre que le site Web client. Le site client reçoit un autre jeton nommé Auth Token (pour l'utilisateur final), puis appelle l'API que l'utilisateur final a demandé en envoyant deux jetons mentionnés. En utilisant des jetons Client et Auth, API Server vérifie si le client et l'utilisateur final sont connectés respectivement. Les entités et leurs relations sont illustrées in hereAuthentification avec WSO2 API Manager

Je souhaite utiliser API Manager comme passerelle entre le serveur API et le site client et gérer le processus d'authentification avec celui-ci. Comment puis-je implémenter ce scénario en utilisant WSO2 API Manger? merci pour votre réponse!

+0

Il est légèrement difficile de lire le message (certains éléments de formatage et de verbiage pourraient aider car certaines parties ne sont pas vraiment claires). Que voulez-vous dire par «l'authentification s'est produite sur API Server autre que le site Web client»? 'En utilisant Client et Auth Tokens ', un seul jeton est utilisé, cependant le jeton demandé (en utilisant le profil OAuth de code ou de mot de passe) est lié à l'application et à l'utilisateur (les deux doivent être valides). – gusto2

+0

le site Web du client est une application tierce placée entre notre serveur API et l'utilisateur final et qui n'a pas implémenté le processus d'authentification lui-même (vérification de l'utilisateur et de la réussite des utilisateurs finaux). Dans un scénario, lorsqu'un utilisateur se connecte au site Web du client, il passe l'utilisateur et le transmet au serveur API. par conséquent, le serveur API vérifie la validité de U & P et crée un jeton d'authentification et crée une session pour l'utilisateur. après ce délai, à chaque requête de l'utilisateur final, le serveur API vérifie la carte de session, que le site Web client et l'utilisateur final soient ou non connectés. le processus de vérification effectué par deux jetons. – DavidbIR

+0

et dans un autre scénario, appelez l'API du site Web directement sans aucune demande de l'utilisateur final. Dans ce scénario, le jeton d'authentification n'existe pas! – DavidbIR

Répondre

0

L'extension de la réponse précédente ..

Si le backend est derrière le gestionnaire de l'API (conseillé), l'API maanger peut passer le client/informations utilisateur/application au backend en tant que jeton JWT. Donc, en effet, c'est un bon cas d'utilisation pour utiliser l'API Gestionnaire

Edit: extension réponse basée sur les commentaires

dans un scénario lorsqu'un login utilisateur sur le site du client, il passe à l'utilisateur & passe à l'API serveur. Par conséquent, le serveur API vérifie la validité de U & P

En effet, en utilisant OAuth par défaut (code ou profil de mot de passe) fonctionnera.

et crée un jeton d'authentification et crée une session pour l'utilisateur.

Presque bon. Un jeton est renvoyé, il n'y a pas de session utilisateur dans le gestionnaire d'API. Toutes les autorisations sont basées sur le jeton fourni.

de session, que si le site Web client et l'utilisateur final sont connectés ou non. le processus de vérification effectué par deux jetons

Non. L'APIM ne vérifie aucune session. Il vérifie uniquement le jeton OAuth (porteur).

et dans un autre site web client de scénario appel API directement sans demande de fin user.in ce jeton auth scénario existe pas

Le site (permet de l'appeler Application) peut authentifier à l'aide ses propres informations d'identification (ce que l'on appelle le profil client_credentials). Il peut recevoir son propre jeton d'application OAuth.

+0

Merci, s'il vous plaît se référer à ma réponse à M. Bhathiya qui montre mon exigence! – DavidbIR

+0

@DavidbIR garder l'homme simple. L'APIM fonctionne d'une certaine façon et vous assumez certaines choses qui peuvent ne pas être vraies :) voir le edit – gusto2

+0

ce n'est pas mon hypothèse, c'est un vrai système qui marche maintenant et je dois le suivre à cause de la résistance .. :) . en effet, je suis d'accord avec cette complication, donc je veux la simplifier en utilisant API Manager! – DavidbIR

0

La même fonctionnalité est prise en charge dans APIM. Vous pouvez simplement vous débarrasser de la connexion d'authentification de votre backend (ou la remplacer par une connexion simple) et utiliser l'authentification APIM.

APIM utilise OAuth2. Pour répondre à vos besoins, vous pouvez utiliser différents types de subventions. Pour le site Web du client, vous pouvez utiliser le type de subvention des informations d'identification du client, et pour les utilisateurs finaux, vous pouvez utiliser d'autres types de subvention, tels que le mot de passe ou le code d'autorisation.

Pour plus de détails lire:

https://docs.wso2.com/display/AM210/Quick+Start+Guide https://docs.wso2.com/display/AM210/Token+API

+0

Merci pour vos réponses. Mais je veux générer et gérer le second jeton (Auth Token) en utilisant APIM plutôt que de le passer à API Server et de le gérer. Puis-je le faire ou est-il préférable de passer le jeton d'authentification à backend? Aussi, je mets à jour mon message, veuillez vous y référer pour plus d'informations. Merci! – DavidbIR

+0

@Bhathiya Je fais aplologize, j'ai édité la mauvaise réponse (votre au lieu de la mienne), s'il vous plaît refuser l'édition – gusto2