Puis-je utiliser la base de jetons d'authentification avec active directory?
Je veux être en mesure de manière sécurisée connexion à un système sans avoir à saisir le nom d'utilisateur mot de passe à partir d'un pc windows active directory. L'idée, c'est que je (le logiciel client, en cours d'exécution sur un windows connecté à la machine) ont une sorte de jeton qui va révéler le serveur que je suis qui je dis que je suis (le serveur parle à AD pour vérifier le jeton et mon identité de l'identité). Est-ce possible avec .net 3 ?
Langue à utiliser en c#.
- L'application d'usurper l'identité d'un Domaine Principal créé à cet effet.
- U sont spécifiquement à la recherche d'une programmation de réponse, comme Kerberos package peut être spécifiquement le programme d'installation pour activer ce type de comportement.
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devriez vraiment regarder à la demande en fonction d'authentification.
Microsoft a fait beaucoup récemment. Vous avez probablement entendu parler de Genève Serveur (officiellement appelé ADFS 2.0) et Genève-Cadre (officiellement appelé Windows Identity Foundation maintenant). L'idée est que l'authentification se fait en un point central /serveur (Genève Serveur ou un Jeton de Sécurité du Serveur (STS) en général), l'utilisateur authentifié est donné un jeton de sécurité (SAML 2.0 de base) dont il /elle présente à la ressource qu'il /elle veut accéder. L'authentification peut être réalisée par différents moyens, y compris le nom d'utilisateur /mot de passe, carte à puce, certificat, ou - dans votre cas par la traduction d'un déjà présent jeton comme l'authentification Windows (appelée Authentification Intégrée de Windows).
Le jeton SAML 2.0 en fonction (standard de l'industrie qui est importante pour une bonne interopérabilité avec d'autres fournisseurs STS produits). Il contient des allégations au sujet d'une personne qui sont utilisés dans une application ou d'une ressource (y compris les services web) pour faire de l'autorisation, l'octroi de droits). Pour ce faire, il est essentiel que l'application des fiducies de revendications donné par le STS. D'autre part, l'application n'a pas besoin de faire de l'authentification à tous.
Le Cadre Genève est une bibliothèque (.NET) utilisés pour traiter les jetons dans une application. Il est relativement simple à utiliser.
Pour plus d'informations, veuillez consulter les livres blancs qui donnent une bonne introduction à ce sujet. Le site officiel est ici.
Bien sûr, il ya beaucoup plus de questions qui sont abordées avec ces concepts, ce qui est vraiment la partie la plus intéressante à mon humble avis. Cela inclut l'authentification Unique (SSO) fédérée de la connexion Unique (à travers de multiples bornes d'organisation), de la Délégation (une application utilise un service web avec vos droits d'utilisateur). Espère que cette info vous sera utile!
Acclamations
PS: bien sûr, ce n'est pas du tout un problème de Microsoft. Il y a d'autres STS produits comme le Soleil OpenSSO, Ping Identity, et Thinktecture Serveur d'Identité qui fournissent des fonctionnalités similaires. J'ai juste souligné le stuff Microsoft parce que c'est une bonne interopérabilité avec les AD et de l'authentification Windows mentionné dans la question.
Si j'ai bien compris la question correctement, il semble que si Kerberos peut être exactement ce que vous cherchez dans cette instance. L'Authentification Kerberos (si pris en charge par votre environnement cible) permettrait à cette façon de billet d'authentification. Pour un aperçu général de la façon dont l'entremise d'un Courtier d'authentification avec Kerberos fonctionne, je recommande la référence MSDN sur L'entremise d'un courtier Authentication avec Kerberos:
L'entremise d'un courtier authentication avec Kerberos http://i.msdn.microsoft.com/Aa480562.ch1_brokauthkerb_f02(fr-us,MSDN.10).gif
Comme pour le code C# de soutenir cela, je vous recommande ce CodeProject article qui est axé sur MS Services Web, mais pourrait fournir la base pour l'utiliser dans d'autres scénarios.
Si vous accédez à toutes les ressources du réseau (partage de fichiers, Serveurs SQL, etc), l'application va automatiquement effectuer eux, comme l'utilisateur qui est actuellement en cours d'exécution. Voulez-vous faire quelque chose de plus spécifique? Si vous êtes d'exploitation dans un domaine, les autorisations doivent naturellement vous suivre à toutes les ressources du réseau que vous utilisez.
Vous pouvez utiliser .NET pour usurper l'identité d'autres utilisateurs et d'effectuer des tâches qu'eux, mais sans prendre de mesures supplémentaires, vous agirez sur le compte de l'utilisateur sans vous connecter à nouveau.
sur les machines windows chaque thread d'application est en cours d'exécution en vertu de certains de jeton de sécurité, par défaut, c'est le jeton de l'utilisateur courant, donc si vous voulez lire un fichier sur la machine ou le réseau de votre application va y aller avec votre jeton, vous pouvez exécuter les demandes que un autre utilisateur ou d'un service ou, vous pouvez emprunter l'identité de votre code d'agir comme quelqu'un d'autre. si vous l'utilisez comme asp.net app, Internet explorer échange de données en arrière-plan avec iis (dans votre intranet de la zone), de sorte que le serveur sera de savoir qui vous êtes, mais par défaut ne fonctionne pas dans vos informations d'identification, ce peut être modifié via le web.config