2017-03-23 1 views
1

Je suis nouveau sur le serveur Identity et je souhaite sécuriser mes deux applications (MVC, Webapi) en l'utilisant. J'ai vu l'exemple où nous pouvons invoquer le webapi de la méthode d'action MVC et SetBearerToken qui a été délivré à l'application MVC. Je parle l'exemple ci-dessous:Authentification ASP.Net MVC et WebApi à l'aide du serveur Identity

https://identityserver.github.io/Documentation/docsv2/overview/mvcGettingStarted.html

Ceci est par exemple typique du serveur à la communication du serveur où nous utilisons le jeton d'accès délivré à l'application MVC pour le Web api.

Dans le même scénario, je veux appeler webapi à partir du client Javascript (à partir d'Angular ou de n'importe qui) en utilisant le même jeton d'accès.

« Je veux passer le jeton d'accès délivré à l'application MVC pour appeler WebAPI de JavaScript »

Comment puis-je utiliser le jeton qui a été délivré à mon application MVC du client JavaScript?

Merci

Répondre

0

Ils doivent être traités comme client différent à mon avis, je suppose qu'ils sont différents site? Pour votre client Javascript vous devriez pouvoir trouver l'exemple here, vous pouvez utiliser le javascript lib fourni dans l'exemple ou en écrire un vous-même

Une fois que vous obtenez le jeton, vous pouvez appeler votre API en utilisant AJAX, où vous pourriez face à un problème CORS si votre webapi est sur un domaine différent, eh bien ... c'est un sujet différent.

espoir qui aide

+0

donc, quid du débit d'application: 1: l'utilisateur se connectera en webapp utilisant UseOpenIdConnect 2. Serveur d'identité ouvrira la page de connexion, authentifier l'utilisateur et de stocker le jeton dans biscuit 3. maintenant, si nous voulons accéder api web nous obtenir le jeton acctess du serveur d'identité à nouveau 4. faire passer le jeton en-tête (jeton porteur) pour accéder api web Que pensez-vous? –

+0

salut là, désolé pour compter en retard, pour 3), si vous voulez appeler API sur le côté serveur de votre webapp, vous pouvez l'obtenir de ClaimsPrincipal parce que le jeton d'accès doit être une réclamation, un exemple peut être trouvé ici: https: //github.com/IdentityServer/IdentityServer3.Samples/blob/master/source/MVC%20Authentication/EmbeddedMvc/Controllers/CallApiController.cs – Ming

+0

Oui, vous avez raison. Nous pouvons facilement obtenir le jeton d'accès du côté serveur à partir de ClaimPrincipal. Mais, mon exigence est différente. Je ne veux pas accéder au Web Api par le biais du serveur, je veux y accéder directement à partir de n'importe quel client JS comme AngularJS ou quelque chose d'autre .. Donc garder cela à l'esprit que suggérez-vous? –