Comment pouvez-vous générer un Porteur de jeton à l'appel d'un Web à distance de l'API
J'ai deux sites, un site de connexion des utilisateurs et de gérer leur compte et le site qui n'a pas d'INTERFACE utilisateur et n'est rien de plus qu'une API pour stocker et récupérer le contenu. Deux de ces sites utilisent la même Owin ASP.Net Identité 2.0 installation. L'INTERFACE utilisateur du site utilise des cookies pour des raisons évidentes, et l'API site utilise le Porteur de jetons. J'ai besoin d'être en mesure d'appeler les méthodes de l'API/url de l'INTERFACE du site avec les utilisateurs actuels d'authentification. En bref j'ai besoin de générer un valide Porteur du jeton dans l'INTERFACE utilisateur du site à ajouter les en-têtes HTTP, quand le Reste des appels d'API.
Je cherchais un moyen d'utiliser une "confiance" le client d'authentification et d'appeler le /Jeton url de l'API pour générer le Porteur du jeton, ou depuis les deux sites partagent le même code d'utilisateur et table d'appeler un Owin méthode pour générer le Porteur du Jeton dans l'INTERFACE utilisateur des sites de code que je peux passer à l'API en-têtes et de l'API du site voit comme un jeton valide.
Si vous avez besoin de plus d'infos, faites le moi savoir.
Mise à jour: Veuillez voir le jour réponse ci-dessous avec la façon correcte de le faire avec oAuth Implicite débit.
Cela a fonctionné quand nous étions à l'aide de MemberShipProvider, mais il ne semble pas fonctionner avec OAuth jetons.
Pourquoi les votes contre??
Si vous allez en bas de vote, veuillez expliquer votre auto. Ne pas voter et de se présenter...
OriginalL'auteur John C | 2014-07-21
Vous devez vous connecter pour publier un commentaire.
Finalement, j'ai trouvé cet article et ont suivi son exemple de code pour créer notre propre serveur d'Autorisation OAuth. Avec elle, nous pouvons demander aux utilisateurs des jetons à la place des utilisateurs à l'aide de confiance d'identification du client et de secrets partagés entre notre INTERFACE utilisateur du site et le serveur OAuth.
http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server
Mise à jour 1: Après avoir travaillé plus de la fonctionnalité et de choses, je suis tombé sur ce qui crée les jetons. Il y a un TicketDataFormat classe au sein de Owin qui fait toute la magie. Il accepte un paramètre dans le constructeur, et c'est un IDataProtector. Si le Owin des ressources serveur est à l'aide de la valeur par défaut AccessTokenFormat(TicketDataFormat) dans son middleware options; avec la valeur par défaut DataProtector, vous pouvez reproduire la génération du jeton sur votre côté client. BTW, la valeur par défaut DataProtector utilise le MachineKey, de sorte que vos deux de confiance sites doivent avoir le même MachineKey situé dans le web.config. Tous les non fiables ou partielle des sites de confiance doivent utiliser la norme oAuth de débits mentionnés dans le lien ci-dessus.
Mise à jour 2: L'a recommandé, et la seule façon que vous devriez faire, c'est avec oAuth à l'aide de l'Implicite débit avec votre client, avec la bonne étendues et de réponse de type set.
La IdentityServer3 docs ont très bien documenté des tutoriels qui nous à mis en place et en cours d'exécution dans très peu de temps. Plus précisément le L'appel de l'API pour le compte de l'Utilisateur dans la section Prise en main: MVC Authentification & Web Api tutoriel.
OriginalL'auteur John C