La meilleure façon d'assurer la ASP.NET WEB API2 où plusieurs clients de l'utiliser
Quel est le meilleur moyen de s'assurer une API WEB lorsque vous avez plusieurs clients différents à utiliser? Chaque client doit disposer de son propre clé API pour se connecter avec.
Maintenant j'ai lu différentes choses, mais j'ai encore quelques questions.
J'ai trouvé celui-ci: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/#comments mais est-il suffisant?
Donc essentiellement:
1. le client se connecte avec nom d'utilisateur/mot de passe
2. le client obtient un porteur du jeton de retour
3. client utilise ce jeton dans chaque poste de l'api jusqu'à ce que le timestamp est plus
J'ai aussi lu à propos de donner une API clé Secrète à chaque client qu'il peut utilise: http://bitoftech.net/2014/12/15/secure-asp-net-web-api-using-api-key-authentication-hmac-authentication/
Quelle est la meilleure approche?
Vous devez vous connecter pour publier un commentaire.
Vous êtes sur la bonne voie en utilisant un Jeton d'authentification. Voici un lien qui montre les détails de mise en œuvre-
Jeton d'authentification basée sur les Web API sans interface utilisateur
En outre, je pense que vous pouvez sécuriser le canal à l'aide de SSL
http://www.c-sharpcorner.com/UploadFile/55d2ea/creating-and-using-C-Sharp-web-application-over-https-ssl/
Le jeton en fonction de l'approche utilisée dans OAuth2 et OpenIdentity est très répandu et permet à un large éventail de scénarios (Applications Web, Mobile, Deskop Apps, microservices).
Il ya quelques bonnes bibliothèques pour la fourniture et de consommer des jetons. Ils devraient être préférée à la mise en œuvre de vos propres protocoles. Plus tard, l'approche est plus enclins à faire des erreurs et il est plus difficile d'être consommés par d'autres clients (s'il y a besoin dans l'avenir). Je vous recommande de jeter un oeil dans le IdentityServer (il est OpenSource). Une introduction peut être trouvée ici.
En général, je recommande de creuser plus profondément dans les blogs au sujet de jeton d'authentification basée sur les -, c'est un vaste sujet, mais il en vaut la peine.
Oui, OAuth2 est un joli protocole standard pour l'obtention de ressources et je le recommande au lieu de rouler des implémentations personnalisées. L'idée est que chaque client reçoit un client_id/client_secret paire (pas de nom d'utilisateur, mot de passe) et utilisez-les pour obtenir le Porteur de jetons de OAuth Émetteur. Ensuite, ces jetons peuvent être utilisés pour l'accès aux ressources protégées de l'API Web.