2009-03-10 2 views
2

Je commence un projet pour permettre à une application Web existante d'utiliser le répertoire actif pour l'authentification mais en laissant une autorisation dans l'application. Je veux commencer simple donc je pensais qu'un utilisateur taperait leur nom d'utilisateur/mot de passe AD dans mon formulaire de connexion existant, je ferais alors une liaison ldap contre le serveur AD pour authentifier l'utilisateur. Une fois que l'utilisateur est authentifié, je voudrais tirer cet utilisateur de ma base de données qui a toutes les informations d'autorisation quant aux fonctions que l'utilisateur peut voir.Intégration Active Directory simple au sein de l'application - que devrait stocker l'application?

Ma question est quel est le meilleur élément AD à stocker dans ma table pour faire l'association? Dans le passé, j'ai utilisé le nom d'utilisateur, mais après avoir regardé certains des éléments que l'AD retourne, je me demandais si je devais utiliser l'ID de sécurité ou GUID ou autre chose?

J'ai été brûlé quand un nom d'utilisateur change comme un employé se marie ou divorcé ... alors je sais que c'est fragile. Je visais Windows 2003 AD et ci-dessus si cela fait une différence; C'est pour un produit où certains clients ont une grande forêt AD et certains sont de petits réseaux.

Répondre

2

Le stockage du SID est l'approche la plus fiable; c'est l'identifiant unique que toutes choses AD Microsoft utilisent, des groupes de sécurité, autorisations, etc.

Si vous construisez sur .Net vous devriez sérieusement considérer .Net 3.5, il y a un nouvel espace de noms System.DirectoryServices.AccountManagement qui grandement simplifie le code ici et vous donne de beaux objets pour aller contre.

+0

merci pour le commentaire Nick! – csharp4me

1

À moins que les utilisateurs partagent des ordinateurs, pourquoi ne pas utiliser Windows integrated logon? Beaucoup plus facile sur les utilisateurs, plus facile sur vous-même en tant que développeur, et plus sûr (un endroit de moins qu'un mot de passe peut être reniflé).

Ai-je besoin de mentionner que la modification des identités des utilisateurs est une mauvaise politique de sécurité de l'entreprise? Rend la traçabilité plus difficile, permet de nouveaux vecteurs d'attaque, et vous donne ce mal de tête.

Comme le mentionne Nick, le SID est un identifiant stable, mais pas quelque chose que vous devriez demander à un utilisateur d'entrer lui-même!

+0

Nous souhaitons obtenir une seule signature à un moment donné, mais nous avons aujourd'hui le problème du partage de postes de travail. On dirait que SID est le chemin à suivre et oui, ce serait un tremblement de main que l'utilisateur ne verrait pas. Merci pour votre retour! – csharp4me

Questions connexes