LDAP için kull...
 
Bildirimler
Hepsini Temizle

LDAP için kullanılacak hesap içim mümkün olan minimum yetkiler  

  RSS
Orhan Aslan
(@OrhanAslan)
Üye

Workgroup olarak tutup domaine dahil etmeyeceğim küçük bir serverdaki programın LDAP'a ihtiyacı var. LDAP için kullanılacak hesap dışarıdan bir firmadan yönetilecek. Gerek duyduklarında servere pcanywhere ile login olup işlerini yapacaklar. LDAP yoluyla da active directorydeki kullanıcı bilgileri kullanılacak.

Bu hesabın LDAP işini düzgünce görebilmesine yetecek minimum yetki nasıl olmalıdır?

Alıntı
Gönderildi : 01/08/2009 16:00
 Anonim

Selamlar Orhan Bey,

Normal etki alanı kullanıcı hesabı ile LDAP sorgularını çalışma grubuna üye bilgisayar üzerinden çalıştırabilirsiniz.

Aşağıdaki vbs kodu,

http://www.visualbasicscript.com/m_58668/tm.htm

sitesinden alınmıştır :

Option Explicit

Dim objRootDSE, strDNSDomain, adoCommand, adoConnection
Dim strBase, strFilter, strAttributes, strQuery, adoRecordset
Dim strDN, strUser, strPassword, objNS, strServer

Const ADS_SECURE_AUTHENTICATION = &H1
Const ADS_SERVER_BIND = &H200

 
' Specify a server (Domain Controller).
strServer = "MyServer"

' Specify or prompt for credentials.
strUser = "MyDomain\TestUser"
strPassword = "xyz12345"

' Determine DNS domain name. Use server binding and alternate
' credentials. The value of strDNSDomain can also be hard coded.
Set objNS = GetObject("LDAP:")
Set objRootDSE = objNS.OpenDSObject("LDAP://" & strServer & "/RootDSE", _

    strUser, strPassword, _
   ADS_SERVER_BIND Or ADS_SECURE_AUTHENTICATION)
strDNSDomain = objRootDSE.Get("defaultNamingContext")

' Use ADO to search Active Directory.
' Use alternate credentials.
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Properties("User ID") = strUser
adoConnection.Properties("Password") = strPassword
adoConnection.Properties("Encrypt Password") = True
adoConnection.Properties("ADSI Flag") = ADS_SERVER_BIND _

    Or ADS_SECURE_AUTHENTICATION
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection

' Search entire domain. Use server binding.
strBase = "<LDAP://" & strServer & "/" & strDNSDomain & ">"

' Search for all users.
strFilter = "(&(objectCategory=person)(objectClass=user))"

' Comma delimited list of attribute values to retrieve.
strAttributes = "distinguishedName"

' Construct the LDAP query.
strQuery = strBase & ";" & strFilter & ";" _

    & strAttributes & ";subtree"

' Run the query.
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False
Set adoRecordset = adoCommand.Execute

' Enumerate the resulting recordset.
Do Until adoRecordset.EOF
   ' Retrieve values.
   strDN = adoRecordset.Fields("distinguishedName").Value
   Wscript.Echo strDN
   adoRecordset.MoveNext
Loop

' Clean up.
adoRecordset.Close
adoConnection.Close

 

CevapAlıntı
Gönderildi : 01/08/2009 17:16
Paylaş: