L'utilisation d'Active Directory avec l'API Web pour SPA
Je suis seul bâtiment la page de l'application, et je voudrais savoir l'identité de l'utilisateur. Nous avons Active Directory dans notre intranet, mais je ne sais pas beaucoup sur elle. Je suis en mesure d'utiliser ce type de code pour vérifier le nom d'utilisateur et mot de passe.
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"))
{
bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}
En fait, c'est tout ce que j'ai besoin de l'Active Directory côté de la chose. J'ai donc pu créer une certaine AuthorizationFilter avec ce code mais cela voudrait dire que le nom d'utilisateur et le mot de passe doit être dans chaque demande. Je voudrais envoyer le nom d'utilisateur et le mot de passe qu'une seule fois et ensuite utiliser certains jeton d'autorisation. Donc, il devrait y avoir un fournisseur de jeton à l'intérieur de mon côté serveur de l'application.
Je suis la construction de cette application à partir de zéro donc je peux l'utiliser plus tard .net technologies. J'ai trouvé qu'il y a quelques Owin middlewares qui sont la manipulation des jetons, des cookies et OAuth. Quelque chose pourrait que m'aider?
OriginalL'auteur Lukas Pirkl | 2013-12-09
Vous devez vous connecter pour publier un commentaire.
Quand j'étais à la recherche de quelque chose de complètement différent, j'ai trouvé cet incroyable projet sur CodePlex: https://angularapp.codeplex.com/ C'est exactement ce que je cherchais.
Mise à jour:
Le cadre de cette application, qui a été utile pour moi est le DomainUserLoginProvider
LoginProvider est utilisé dans AccountController de mesures pour vérifier les informations d'identification. Aussi la AccessToken est créé ici.
Dernier mais non le moindre, ajoutez la bonne middleware pour Owin pipeline.
Sur le côté client, il vous suffit d'envoyer la demande avec les informations d'identification pour le Jeton d'action de AccountController et vous obtiendrez le jeton d'authentification. Enregistrez ce code dans le navigateur ("se Souvenir de moi") et réglez l'angle de dollars du service http pour attacher jeton à chaque demande.
Merci pour le pointeur vers un Spa agréable app .Net, comme par Jason demande, pourriez-vous ajouter un peu de contexte sur la façon dont il vous a aidé.
J'ai mis à jour la réponse avec le code qui a été la solution pour mon problème.
OriginalL'auteur Lukas Pirkl
Sûrement le OAuth est un moyen de aller, mais pourquoi ne pas envisager de bon vieux Formes d'Authentification? Il adapte le scénario parfaitement avec un fournisseur personnalisé, vous pouvez authentifier les utilisateurs dans l'AD et ensuite tous consécutives demandes des clients portent le cookie d'authentification qui peut être utilisée pour authentifier le serveur d'appels.
Les Formes cookie dans ce scénario joue le rôle d'un "jeton" vous pensez.
Le groupe builtin ActiveDirectoryMembershipProvider fera l'affaire, vous n'avez pas à écrire votre propre.
OriginalL'auteur Wiktor Zychla