6
votes

Utilisation OpenID avec un service Web: meilleur moyen d'authentifier?

Je recherche des conseils sur le meilleur moyen d'authentifier mon site Web. À l'heure actuelle, j'ai un service Web standard sur .NET 3.5 et un site Web MVC qui repose sur ce WebService.

Le site Web MVC utilise OpenID pour authentifier les utilisateurs et, pendant la phase de développement, nous avons simplement évolué l'identifiant revendiqué de l'utilisateur au service Web pour authentifier. Évidemment, ce n'est pas ce que nous allons libérer au client lorsque nous allons vivre.

Donc, ma question est la suivante: Quel est le meilleur moyen d'authentifier sur le site Web?

Certaines des API que j'ai jouées avec des jetons d'authentification utilisent. Une autre idée que nous ayons eue, lors de la connexion au service de messagerie Web, passez au client une clé de cryptage qu'ils pourraient utiliser pour tous les transferts.

Je pense à voix haute ici, et encore une fois, toute aide est grandement appréciée! Merci!

...

Mise à jour: À l'heure actuelle, j'ai créé une tête de soapaThentication personnalisée qui a une propriété OpenIDURL. Ceci est utilisé sur tous les appels de service pour authentifier l'utilisateur. Le problème est deux fois:

  1. Si un pirate informatique connaît l'openidurl d'un utilisateur, ils peuvent facilement accéder au Webservice.
  2. L'openidurl est actuellement transmise en texte brut.

    Pour que je puisse transmettre une clé de cryptage au client lors de la connexion au service Web et que le client crypté l'op3Ilidurl dans l'en-tête SoapAuthentication. Mais je ne suis pas sûr de savoir comment aller au mieux ...


3 commentaires

Lorsque vous dites "Service Web standard", faites-vous un service ASMX Legacy ou utilisez-vous WCF?


C'est proche de ce que je suis impatient de, mais ce serait génial si quelqu'un pouvait simplement expliquer cela un peu plus loin. Stackoverflow.com/questions/544388/...


J'utilise un service Web standard ASMX, et le MVC accède au service Web comme référence de service (que je pense est un wrapper WCF?).


3 Réponses :


3
votes

Vous voudrez peut-être jeter un oeil à OAuth:

http://oauth.net/

(utilisez http://oauth.net/code/ pour codage.)

Comme il est spécifiquement orienté pour ce scénario (ID Open Not, vraiment).

Il y a une autre question sur SA qui pose sur la meilleure façon de sécuriser un service Web, et ouvrir une carte d'identité et OAuth sont à la fois discutées:

Authentification de service Web à l'aide de OpenID


3 commentaires

Lorsque vous dites "ce scénario", lequel fais-tu que vous parlez? Services ASMX?


Merci, cela m'a signalé dans la bonne direction. Je veux voir ce que le reste de la communauté doit partager, avant que je marque cela comme répondu. Bien que je ne pense pas avoir besoin de toutes les fonctionnalités que OAuth a à offrir, la page de flux de travail de protocole offre de superbes informations sur les jetons de demande et les jetons d'accès.


@John Saunders: Je fais référence à Open ID VS OAuth, pas vraiment ASMX VS WS- * Services Web. Open ID n'est pas vraiment destiné à être utilisé avec API, tandis que OAuth est.



0
votes

SERVICES Web ASMX (que Microsoft considère maintenant comme "héritage") n'a aucune possibilité d'utiliser OpenID pour l'authentification. Ils ne peuvent utiliser que ce que l'IIS leur fournit. Vous pouvez éventuellement ajouter une soappreucension qui ferait une authentification ouverte pour eux, mais je ne passerais pas de temps là-bas.

Je ne sais pas assez sur OpenID pour être certain, mais je soupçonne que cela peut s'intégrer avec WCF par la sécurité fédérée. Je suis sûr que quelqu'un d'autre va répondre avec des détails à ce sujet.


4 commentaires

Mes excuses. À l'heure actuelle, j'ai créé une tête de soapaTuthentication personnalisée qui possède une propriété OpenIDURL. Ceci est utilisé sur tous les appels de service pour authentifier l'utilisateur.


Pourriez-vous mettre à jour votre question avec ces informations? En particulier, si vous avez cet en-tête, que cherchez-vous de plus?


Quoi, "héritage"? De, Microsoft ... Les services Web ASMX sont géniaux! :)


Ils sont super si vos besoins sont simples. En tout état de cause, ils ont été remplacés par la WCF, et maintenant considéré comme un héritage. Voir JOHNWSAUNDERSIII.SPACES.LIVE.com/BLOG/... .



0
votes

Ce n'est pas vraiment une réponse, mais je ne peux pas laisser de commentaires ...

Vous dites «J'ai un service Web standard sur .NET 3.5 et un site Web MVC qui repose sur ce Webservice».

Je pourrais s'agir d'une base de base ici, mais la langue implique que ces deux siègent sur le même serveur. Si oui, pourquoi ne pouvez-vous pas simplement partager la base de données des utilisateurs et le jeton de cookie?

James


1 commentaires

Ceux-ci peuvent ou non s'asseoir sur le même serveur. Il y aura des cas où les deux se produisent.