10
votes

Puis-je utiliser une authentification basée sur des jetons avec Active Directory?

Je veux être capable de vous connecter de manière sécurisée à un système sans avoir à saisir le mot de passe nom d'utilisateur à partir d'un PC Windows sur Active Directory. L'idée est que je (le logiciel client, exécuté sur une machine Windows connectée) dispose d'une sorte de jeton qui prouvera au serveur que je suis qui je dis que je suis (le serveur parle à une annonce de vérifier le jeton et mon identité identité). Est-ce possible avec .NET 3?

Langue en cours d'utilisation en C #.


2 commentaires

Demandez à l'application d'un directeur de domaine créé à cette fin.


Êtes-vous spécifiquement à la recherche d'une réponse de programmation, car le paquet Kerberos peut être spécifiquement configuré pour permettre ce type de comportement.


4 Réponses :


0
votes

Si vous accédez à toutes les ressources réseau (actions de fichiers, serveurs SQL, etc.), l'application les exécutera automatiquement comme l'utilisateur qui l'utilise actuellement. Voulez-vous faire quelque chose de plus spécifique? Si vous utilisez dans un domaine, les autorisations doivent naturellement vous suivre toutes les ressources réseau que vous utilisez.

Vous pouvez utiliser .NET pour imiter les autres utilisateurs et effectuer des tâches comme elles, mais sans prendre de mesures supplémentaires, vous agirez au nom de l'utilisateur sans les faire connecter à nouveau.


0 commentaires

0
votes

sur les machines Windows Chaque fil de l'application est en cours d'exécution sous certains jetons de sécurité, par défaut, il s'agit du jeton de l'utilisateur actuel. Par conséquent, si vous souhaitez lire un fichier sur la machine ou le réseau, votre application y accédera avec votre jeton, vous pouvez exécuter Aplications comme autre utilisateur ou service ou vous pouvez imiter votre code pour agir comme une autre personne. Si vous utilisez l'application ASP.NET, Internet Explorer échangea des données en arrière-plan avec IIS (dans votre zone intranet) afin que le serveur sache qui vous êtes, mais par défaut ne fonctionnera pas sous vos informations d'identification, cela peut être changé via web.config


0 commentaires

3
votes

Si j'ai compris la question correctement, il semble que Kerberos soit exactement ce que vous recherchez dans ce cas. L'authentification Kerberos (si supportée par votre environnement cible) permettrait à cette manière de l'authentification des tickets. Pour un aperçu général de la façon dont authentification négociée avec des œuvres de Kerberos, je recommanderais la référence MSDN sur Authentification de courtiement avec Kerberos :

authentification de courtiement avec Kerberos http: // i.msdn.microsoft.com/aa480562.ch1_brokauthkerb_f02(en-us,msdn.10).gif

Quant au code C # en supportant cela, je recommanderais ce Article de code de code Ce qui se concentre sur MS Web Services, mais peut fournir la base de l'utiliser dans d'autres scénarios.


0 commentaires

10
votes

Je pense que vous devriez vraiment regarder l'authentification basée sur la réclamation.

Microsoft a beaucoup fait récemment. Vous avez probablement entendu parler de Geneva Server (officiellement appelé ADFS 2.0 maintenant) et Genève Cadre (officiellement appelé Windows Identity Foundation maintenant). L'idée est que l'authentification est effectuée sur un point central / serveur (Server Geneva ou un serveur de jeton de sécurité (STS) en général), l'utilisateur authentifié reçoit un jeton de sécurité (SAML 2.0 basé) qu'il présente à la ressource. il / elle veut accéder. L'authentification peut être effectuée par divers moyens, y compris le nom d'utilisateur / mot de passe, la carte à puce, les certificats ou - dans votre cas - en traduisant un jeton déjà présent comme l'authentification Windows (appelée Authentification intégrée de Windows).

Le jeton est basé sur SAML 2.0 (norme de l'industrie qui est importante pour une bonne interopérabilité avec les autres produits STS du fournisseur). Il contient des revendications sur une personne utilisée dans une application ou une ressource (y compris les services Web) pour effectuer l'autorisation (droits d'octroi). À cette fin, il est bien sûr essentiel que l'application fait confiance aux réclamations données par la STS. D'autre part, l'application n'a pas besoin de faire de l'authentification du tout.

Le framework de Genève est une bibliothèque (.NET) utilisée pour traiter les jetons dans une application. Il est assez simple d'utiliser.

Pour plus d'informations, veuillez consulter les papiers blancs qui donnent une bonne introduction à ce sujet. Le site officiel est ici.

Bien sûr, il existe de nombreux autres problèmes abordés avec ces concepts qui sont vraiment la partie intéressante IMHO. Cela inclut une connexion unique sur (SSO), une connexion unique fédérée sur (à travers plusieurs limites d'organisation), la délégation (une application utilise un service Web avec vos droits d'utilisateur). J'espère que cette information aide!

acclamations

PS: Bien sûr que ce n'est pas du tout un numéro Microsoft. Il existe d'autres produits STS comme Sun Opensso, Ping Identity et ThinkTecure Identity Server offrant des fonctionnalités similaires. Je viens de mettre en surbrillance le modèle Microsoft car c'est une bonne interopérabilité avec AD et l'authentification Windows mentionnée dans la question.