2017-01-13 1 views
1

Quelle est la meilleure façon d'obtenir une API Web lorsque vous avez plusieurs clients différents à utiliser? Chaque client devrait avoir sa propre clé API pour se connecter. Maintenant, j'ai lu des choses différentes mais j'ai encore des questions.La meilleure façon de sécuriser ASP.NET WEB API2 où plusieurs clients utilisent

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 basiquement: 1. Le client se connecte avec le nom d'utilisateur donné/mot de passe 2. client obtient un jeton porteur retour 3. Le client utilise ce jeton dans chaque poste à l'api jusqu'à ce que l'horodatage est sur

J'ai aussi ont lu au sujet 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?

Répondre

0

Oui, OAuth2 est un protocole assez standard pour obtenir des ressources et je le recommande au lieu de rouler implémentations personnalisées. L'idée est que chaque client recevra une paire client_id/client_secret (pas un nom d'utilisateur, un mot de passe) et les utilisera pour obtenir des jetons Bearer d'un émetteur OAuth. Ces jetons peuvent ensuite être utilisés pour accéder aux ressources protégées de l'API Web.

+0

Alors basiquement je besoin de fournir un client_id et client_secret par client. Dois-je utiliser le GUID pour les deux? – Kaizer

+0

GUIDs ont une structure .... –

+0

Ok alors l'approche symbolique est celui d'aller avec. merci – Kaizer

0

L'approche basée sur les jetons utilisée dans OAuth2 et OpenIdentity est très répandue et permet un large éventail de scénarios (Web Apps, Mobile, Deskop Apps, microservices).

Il y a quelques bonnes bibliothèques là-bas pour fournir et jetons consommation. Ils devraient être préférés à la mise en œuvre de vos propres protocoles. Une approche ultérieure est plus sujette aux erreurs et est plus difficile à consommer par d'autres clients (s'il y a un besoin dans le futur). Je recommande d'aller voir dans IdentityServer (c'est OpenSource). Une introduction peut être trouvée here.

En règle générale, je recommande de creuser plus profondément dans les blogs sur l'authentification par jeton - c'est un sujet énorme, mais ça vaut le coup.

+0

Ok alors l'approche symbolique est celle à suivre. merci – Kaizer