Delphi LDAP ve Active Directory İstemcisi

Kullanıcılarınızın Windows etki alanı parolasıyla oturum açmasını sağlayın. Kimlik bilgilerini Active Directory, OpenLDAP veya herhangi bir LDAP v3 dizinine karşı şifreli bir bağlantı üzerinden doğrulayın ve kullanıcının neler yapabileceğine karar veren grupları okuyun.

TsgcLDAPClient

Kullanıcıları doğrulamak, dizinde arama yapmak ve iç içe Active Directory grupları dahil grup üyeliğini çözümlemek için oluşturulmuş bir LDAP v3 istemcisi.

Bileşen sınıfı

TsgcLDAPClient (sgcAuth_LDAP_Client birimi)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Enterprise ve All-Access, ayrıca sgcAuth paketi. sgcWebSockets .NET içinde de mevcuttur.

Bağlanın, doğrulayın, grupları okuyun

Host'u bir etki alanı denetleyicisine yönlendirin, LDAPS veya StartTLS seçin, hizmet hesabını BindDN / Password ile ayarlayın, ardından kullanıcının girdiğiyle Authenticate'i çağırın.

uses
  sgcAuth_LDAP_Classes, sgcAuth_LDAP_Client;

var
  LDAP: TsgcLDAPClient;
  vUserDN: string;
  oGroups: TStringList;
begin
  LDAP := TsgcLDAPClient.Create(nil);
  LDAP.Host := 'dc01.corp.example.com';
  LDAP.Security := ldapsecLDAPS; // implicit TLS, port 636
  LDAP.BindDN := 'CN=svc-login,OU=Service,DC=corp,DC=example,DC=com';
  LDAP.Password := 'service-password';
  LDAP.BaseDN := 'DC=corp,DC=example,DC=com';
  // find the user with UserSearchFilter, then bind as that DN
  LDAP.AuthenticationMode := ldapamSearchThenBind;
  LDAP.Connect;

  if LDAP.Authenticate(edtUser.Text, edtPassword.Text, vUserDN) then
  begin
    oGroups := TStringList.Create;
    try
      // True: nested groups through LDAP_MATCHING_RULE_IN_CHAIN
      LDAP.GetUserGroups(vUserDN, oGroups, True);
    finally
      oGroups.Free;
    end;
  end
  else
    ShowMessage(LDAP.LastErrorMessage);
end;
// uses: sgcAuth_LDAP_Classes, sgcAuth_LDAP_Client
TsgcLDAPClient *LDAP = new TsgcLDAPClient(this);
LDAP->Host = "dc01.corp.example.com";
LDAP->Security = ldapsecLDAPS;
LDAP->BindDN = "CN=svc-login,OU=Service,DC=corp,DC=example,DC=com";
LDAP->Password = "service-password";
LDAP->BaseDN = "DC=corp,DC=example,DC=com";
LDAP->AuthenticationMode = ldapamSearchThenBind;
LDAP->Connect();

String UserDN;
if (LDAP->Authenticate(edtUser->Text, edtPassword->Text, UserDN))
{
  TStringList *Groups = new TStringList();
  LDAP->GetUserGroups(UserDN, Groups, true);
  delete Groups;
}

İçeriğinde neler var

Masaüstü uygulamaları, web arka uçları ve servisler için, güvenlik ayrıntıları sizin yerinize halledilmiş dizin oturum açma.

LDAPS ve StartTLS

Security, ldapsecLDAPS (636 numaralı portta örtük TLS) veya ldapsecStartTLS'i (389 numaralı portta yükseltme) seçer. Sunucu StartTLS'i reddederse bağlantı kapatılır; istemci hiçbir zaman düz metne geri dönmez. TLSOptions sertifika doğrulamasını denetler.

Dört oturum açma modu

AuthenticationMode, girilen adı bir bind adına çevirir: ldapamUPN (user@UPNSuffix), ldapamDownLevel (Domain\user), ldapamSearchThenBind (hizmet bind'i artı UserSearchFilter) veya ldapamDN.

İç içe gruplar

GetUserGroups, doğrudan memberOf değerlerini veya aNested ile Active Directory'nin LDAP_MATCHING_RULE_IN_CHAIN kuralını kullanarak diğer gruplar üzerinden ulaşılan her grubu döndürür.

Sayfalı arama

Search, Simple Paged Results'ı otomatik olarak kullanır (PageSize, varsayılan 500), SizeLimit ve TimeLimit'e uyar ve girdileri ile yönlendirmeleri bir TsgcLDAPEntries listesinde döndürür.

Güvenli bind'ler

Bind, sunucuya bağlanmadan boş parolalı bir DN'yi reddeder ve RFC 4513'ün kimliksiz bind açığını kapatır. WhoAmI, LastResultCode ve LastErrorMessage tam olarak kimin bağlı olduğunu ve bir çağrının neden başarısız olduğunu söyler.

Tek örnek, çok iş parçacığı

Her genel metot serileştirilmiştir, bu yüzden tek bir TsgcLDAPClient, çok iş parçacıklı bir HTTP veya WebSocket sunucusunun oturum açma isteklerine hizmet verebilir.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı standartlar için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım: TsgcLDAPClient Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi: Demos\26.Authentication\05.LDAP_ActiveDirectory LDAPS veya StartTLS ile bağlanın, her modda doğrulayın, arama yapın ve iç içe grupları listeleyin. sgcWebSockets paketi içinde gelir, denemeyi aşağıdan indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve yalnızca bu bileşene ait birincil kaynak referansları.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.
Blog: Passkey, SAML SSO, LDAP ve TOTP 2FA ile Delphi Oturum Açma Altı kimlik doğrulama bileşeninin tek bir Delphi uygulamasında nasıl bir araya geldiği.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Active Directory ile Oturum Açmaya Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi kullanıcılarınızı zaten sahip oldukları dizine karşı doğrulayın.