L'Authentification de base avec WCF REST service d'autre chose que windows comptes?
Est-il un moyen propre à exposer un WCF REST service qui nécessite une authentification de base, mais où nous nous occupons de la réelle validation du nom d'utilisateur/mot de passe de nous-mêmes? Il semble que, lorsque vous dites WCF dans la configuration que vous souhaitez utiliser l'authentification de base, il vous oblige à activer l'authentification de base dans IIS IIS et ne peut faire l'authentification de base contre la fenêtre comptes.
Le seul hack, nous l'avons trouvée est de mentir à la WCF et dites-lui de sécurité n'est pas sur le service, puis faire de l'authentification à l'extérieur de la WCF de la pile à l'aide d'un générique IHttpModule (qui est propriétaire d'un fichier de configuration pour indiquer les Url ont d'authentification/autorisation).
Il semble qu'il devrait y avoir une meilleure façon. Quelqu'un a un?
Vous devez vous connecter pour publier un commentaire.
La WCF REST Contrib bibliothèque permet cette fonctionnalité:
http://github.com/mikeobrien/WcfRestContrib
Il vous permet également de sécuriser les opérations.
est le nom d'utilisateur et un mot de passe sur le client comme:
Ou sont-ils intégrés dans le corps du RESTE de message?
Si l'ancien, vous pouvez utiliser un personnalisé UserNamePasswordValidator:
http://msdn.microsoft.com/en-us/library/aa702565.aspx
Si ce dernier, vous pouvez configurer le service pour qu'aucun problème de sécurité, et l'utilisation d'une coutume ServiceAuthorizationManager pour valider le contenu du message:
http://msdn.microsoft.com/en-us/library/ms731774.aspx
Espère que l'un ou l'autre qui l'aide! J'essaierais de poster un exemple de code & config, mais je suis @ home, et n'avez pas accès au code, ce qui est tout @ work.
Voir Personnalisé l'Authentification de Base pour les services RESTful. Pablo approche utilise l'intercepteur fonctionnalité est fournie par le RESTE de kit de démarreur pour résoudre le problème. Si vous ne voulez pas dépendre du RESTE de kit de démarreur, alors vous pouvez créer votre propre service d'accueil et d'utiliser le inteceptor fonctionnalité fournie.
Si vous l'hébergez sur IIS, à l'aide de http personnalisé module est le chemin à parcourir. Vous pouvez apporter sur le capital au cours de la WCF côté sécurité d'accès du code. Voir L'Authentification HTTP de Base à l'égard des Non-Comptes Windows dans IIS/ASP.NET (Part 3 - Ajout de la WCF de Soutien). Voir aussi Personnalisé l'Authentification HTTP de Base pour ASP.NET les Services Web .NET 3.5/VS 2008.
Si vous n'êtes pas à l'aide de IIS, vous devriez être en mesure de mettre en œuvre userNameAuthentication. Voir Enfin!!! Les noms d'utilisateur au cours du Transport de l'Authentification dans WCF.
Oui absolument il ya un moyen. Vous avez besoin de la configuration personnalisée
userNamePasswordValidationMode
de la valeur pour votre service et qu'il pointe vers une classe avec une méthode surchargée qui peut contrôler et valider les informations d'identification fournies. Lors d'un Réparateur d'appel, ces informations d'identification lors de l'utilisation de l'authentification de Base dans sa propre forme doit être dans l'en-tête de requête. Avec cette méthode personnalisée, vous pouvez consulter les informations d'identification et de authentifier le client à votre service. Pas de Fenêtres ou de comptes de domaine même nécessaire.La bonne chose est que vous pouvez alors prendre que le contexte de la sécurité au niveau suivant et de fournir fine authrization au niveau de la méthode. Vous pourriez avoir des cas où un grand bassin de clients sont en mesure d'accéder au service, mais pas toutes les méthodes à l'intérieur (c'est à dire payé clients vs. non rémunéré). Dans ce cas, vous pouvez également fournir autorisation au niveau de la méthode ainsi si nécessaire.
Ci-dessous est une étape-par-étape de la solution (avec trop d'étapes pour intégrer) par moi-même qui contient à la fois le besoin de sécurité et de configuration nécessaires pour avoir un complète solution. Le problème est souvent l'authentification de Base est utilisé sans assurer le Transport avec un certificat SSL et c'est mauvais. Assurez-vous de suivre toutes les étapes et vous permettra de mettre en œuvre l'authentification de Base sans la nécessité de n'importe quel type de comptes Windows ou de configuration sur votre WCF Réparateur à base de services.
Services RESTful: Authentification Des Clients À L'Aide De L'Authentification De Base