====== std.net.ldap ====== LDAP (Lightweight Directory Access Protocol, RFC 4511) ist das Standardprotokoll für Verzeichnisdienste wie Microsoft Active Directory und OpenLDAP. Einträge sind hierarchisch nach DN (Distinguished Name) strukturiert und können nach Attributen durchsucht werden. Die Unit implementiert Bind, Search (mit Scope und Filter), Modify, Add, Delete, Compare und SASL-Mechanismen (EXTERNAL, GSSAPI). Einsatzbereiche sind Benutzerauthentifizierung, Gruppenabfragen, Organisations- und Mitarbeiterverzeichnisse, SSO-Infrastruktur, Active-Directory-Integration und Compliance-Abfragen. ---- ===== Imports ===== * ''std.net.socket'' * ''std.net.dns'' * ''std.net.types'' * ''std.net.asn1'' ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''LDAP_PORT'' | ''int64'' | ''389'' | pub | | ''LDAPS_PORT'' | ''int64'' | ''636'' | pub | | ''LDAP_BIND_REQUEST'' | ''int64'' | ''$60'' | pub | | ''LDAP_BIND_RESPONSE'' | ''int64'' | ''$61'' | pub | | ''LDAP_UNBIND_REQUEST'' | ''int64'' | ''$42'' | pub | | ''LDAP_SEARCH_REQUEST'' | ''int64'' | ''$63'' | pub | | ''LDAP_SEARCH_RESULT_ENTRY'' | ''int64'' | ''$64'' | pub | | ''LDAP_SEARCH_RESULT_DONE'' | ''int64'' | ''$65'' | pub | | ''LDAP_MODIFY_REQUEST'' | ''int64'' | ''$66'' | pub | | ''LDAP_MODIFY_RESPONSE'' | ''int64'' | ''$67'' | pub | | ''LDAP_ADD_REQUEST'' | ''int64'' | ''$68'' | pub | | ''LDAP_ADD_RESPONSE'' | ''int64'' | ''$69'' | pub | | ''LDAP_DELETE_REQUEST'' | ''int64'' | ''$4A'' | pub | | ''LDAP_DELETE_RESPONSE'' | ''int64'' | ''$6B'' | pub | | ''LDAP_MODIFY_DN_REQUEST'' | ''int64'' | ''$6C'' | pub | | ''LDAP_MODIFY_DN_RESPONSE'' | ''int64'' | ''$6D'' | pub | | ''LDAP_COMPARE_REQUEST'' | ''int64'' | ''$6E'' | pub | | ''LDAP_COMPARE_RESPONSE'' | ''int64'' | ''$6F'' | pub | | ''LDAP_ABANDON_REQUEST'' | ''int64'' | ''$50'' | pub | | ''LDAP_EXTENDED_REQUEST'' | ''int64'' | ''$77'' | pub | | ''LDAP_EXTENDED_RESPONSE'' | ''int64'' | ''$78'' | pub | | ''LDAP_SUCCESS'' | ''int64'' | ''0'' | pub | | ''LDAP_OPERATIONS_ERROR'' | ''int64'' | ''1'' | pub | | ''LDAP_PROTOCOL_ERROR'' | ''int64'' | ''2'' | pub | | ''LDAP_TIME_LIMIT_EXCEEDED'' | ''int64'' | ''3'' | pub | | ''LDAP_SIZE_LIMIT_EXCEEDED'' | ''int64'' | ''4'' | pub | | ''LDAP_COMPARE_FALSE'' | ''int64'' | ''5'' | pub | | ''LDAP_COMPARE_TRUE'' | ''int64'' | ''6'' | pub | | ''LDAP_AUTH_METHOD_NOT_SUPPORTED'' | ''int64'' | ''7'' | pub | | ''LDAP_STRONG_AUTH_REQUIRED'' | ''int64'' | ''8'' | pub | | ''LDAP_REFERRAL'' | ''int64'' | ''10'' | pub | | ''LDAP_ADMIN_LIMIT_EXCEEDED'' | ''int64'' | ''11'' | pub | | ''LDAP_UNAVAILABLE_CRITICAL_EXTENSION'' | ''int64'' | ''12'' | pub | | ''LDAP_CONFIDENTIALITY_REQUIRED'' | ''int64'' | ''13'' | pub | | ''LDAP_SASL_BIND_IN_PROGRESS'' | ''int64'' | ''14'' | pub | | ''LDAP_NO_SUCH_ATTRIBUTE'' | ''int64'' | ''16'' | pub | | ''LDAP_UNDEFINED_ATTRIBUTE_TYPE'' | ''int64'' | ''17'' | pub | | ''LDAP_INAPPROPRIATE_MATCHING'' | ''int64'' | ''18'' | pub | | ''LDAP_CONSTRAINT_VIOLATION'' | ''int64'' | ''19'' | pub | | ''LDAP_ATTRIBUTE_OR_VALUE_EXISTS'' | ''int64'' | ''20'' | pub | | ''LDAP_INVALID_ATTRIBUTE_SYNTAX'' | ''int64'' | ''21'' | pub | | ''LDAP_NO_SUCH_OBJECT'' | ''int64'' | ''32'' | pub | | ''LDAP_ALIAS_PROBLEM'' | ''int64'' | ''33'' | pub | | ''LDAP_INVALID_DN_SYNTAX'' | ''int64'' | ''34'' | pub | | ''LDAP_ALIAS_DEREFERENCING_PROBLEM'' | ''int64'' | ''36'' | pub | | ''LDAP_INAPPROPRIATE_AUTHENTICATION'' | ''int64'' | ''48'' | pub | | ''LDAP_INVALID_CREDENTIALS'' | ''int64'' | ''49'' | pub | | ''LDAP_INSUFFICIENT_ACCESS_RIGHTS'' | ''int64'' | ''50'' | pub | | ''LDAP_BUSY'' | ''int64'' | ''51'' | pub | | ''LDAP_UNAVAILABLE'' | ''int64'' | ''52'' | pub | | ''LDAP_UNWILLING_TO_PERFORM'' | ''int64'' | ''53'' | pub | | ''LDAP_LOOP_DETECT'' | ''int64'' | ''54'' | pub | | ''LDAP_NAMING_VIOLATION'' | ''int64'' | ''64'' | pub | | ''LDAP_OBJECT_CLASS_VIOLATION'' | ''int64'' | ''65'' | pub | | ''LDAP_NOT_ALLOWED_ON_NON_LEAF'' | ''int64'' | ''66'' | pub | | ''LDAP_NOT_ALLOWED_ON_RDN'' | ''int64'' | ''67'' | pub | | ''LDAP_ENTRY_ALREADY_EXISTS'' | ''int64'' | ''68'' | pub | | ''LDAP_OBJECT_CLASS_MODS_PROHIBITED'' | ''int64'' | ''69'' | pub | | ''LDAP_AFFECTS_MULTIPLE_DSAS'' | ''int64'' | ''71'' | pub | | ''LDAP_OTHER'' | ''int64'' | ''80'' | pub | | ''LDAP_SCOPE_BASE'' | ''int64'' | ''0'' | pub | | ''LDAP_SCOPE_ONE_LEVEL'' | ''int64'' | ''1'' | pub | | ''LDAP_SCOPE_SUBTREE'' | ''int64'' | ''2'' | pub | | ''LDAP_DEREF_NEVER'' | ''int64'' | ''0'' | pub | | ''LDAP_DEREF_SEARCHING'' | ''int64'' | ''1'' | pub | | ''LDAP_DEREF_FINDING'' | ''int64'' | ''2'' | pub | | ''LDAP_DEREF_ALWAYS'' | ''int64'' | ''3'' | pub | | ''LDAP_MOD_OP_ADD'' | ''int64'' | ''0'' | pub | | ''LDAP_MOD_OP_DELETE'' | ''int64'' | ''1'' | pub | | ''LDAP_MOD_OP_REPLACE'' | ''int64'' | ''2'' | pub | | ''LDAP_SASL_GSSAPI'' | ''int64'' | ''1'' | pub | | ''LDAP_SASL_EXTERNAL'' | ''int64'' | ''2'' | pub | | ''LDAP_FILTER_EQUALITY'' | ''int64'' | ''$A3'' | pub | | ''LDAP_FILTER_SUBSTRING'' | ''int64'' | ''$A4'' | pub | | ''LDAP_FILTER_PRESENT'' | ''int64'' | ''$87'' | pub | | ''LDAP_FILTER_AND'' | ''int64'' | ''$A0'' | pub | | ''LDAP_FILTER_OR'' | ''int64'' | ''$A1'' | pub | | ''LDAP_FILTER_NOT'' | ''int64'' | ''$A2'' | pub | ---- ===== Typen ===== ==== LDAPConn (struct) ==== ^ Feld ^ Typ ^ ==== LDAPSearchResult (struct) ==== ^ Feld ^ Typ ^ ==== LDAPResult (struct) ==== ^ Feld ^ Typ ^ ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''LDAPNextMsgId(): int64'' | pub | Liefert nächste eindeutige Nachrichten-ID | | ''LDAPStrLen(s: int64): int64'' | pub | Ermittelt Länge eines LDAP-Strings | | ''LDAPConnect(host: int64, port: int64): LDAPConn'' | pub | Öffnet TCP-Verbindung zum LDAP-Server | | ''LDAPSetTLS(conn: LDAPConn): void'' | pub | Aktiviert TLS auf bestehender Verbindung | | ''LDAPBuildModifyRequest(dn: int64, attrType: int64, attrValue: int64, op: int64): int64'' | pub | Erstellt LDAP-Modify-Request-Nachricht | | ''LDAPIsReady(conn: LDAPConn): bool'' | pub | Prüft ob Verbindung betriebsbereit ist | | ''LDAPIsTLS(conn: LDAPConn): bool'' | pub | Prüft ob TLS aktiv ist | | ''LDAPGetSASLMechanismName(mech: int64): int64'' | pub | Gibt SASL-Mechanismusname als String zurück | | ''LDAPBuildBindRequest(dn: int64, password: int64): int64'' | pub | Erstellt LDAP-Bind-Request-Nachricht | | ''LDAPBuildUnbindRequest(): int64'' | pub | Erstellt LDAP-Unbind-Request-Nachricht | | ''LDAPBuildSearchRequest(baseDN: int64, filter: int64, scope: int64): int64'' | pub | Erstellt LDAP-Search-Request-Nachricht | | ''LDAPSendRecv(conn: LDAPConn, msg: int64, msgLen: int64): int64'' | pub | Sendet Nachricht und empfängt Antwort | | ''LDAPParseBindResponse(buf: int64, len: int64): int64'' | pub | Wertet Bind-Response-Puffer aus | | ''LDAPParseSearchResultDone(buf: int64, len: int64): int64'' | pub | Wertet SearchResultDone-Puffer aus | | ''LDAPBind(conn: LDAPConn, dn: int64, password: int64): int64'' | pub | Authentifiziert am LDAP-Server | | ''LDAPSearch(conn: LDAPConn, baseDN: int64, filter: int64, scope: int64): int64'' | pub | Führt LDAP-Suchanfrage durch | | ''LDAPUnbind(conn: LDAPConn): int64'' | pub | Beendet authentifizierte LDAP-Sitzung | | ''LDAPClose(conn: LDAPConn)'' | pub | Schließt LDAP-Verbindung | | ''LDAPBuildFilterEqual(attr: int64, value: int64): int64'' | pub | Erstellt Gleichheitsfilter für Attribut | | ''LDAPBuildFilterPresent(attr: int64): int64'' | pub | Erstellt Präsenz-Filter für Attribut | | ''LDAPStrEscapeFilter(input: int64): int64'' | pub | Maskiert Sonderzeichen in Filterstring | | ''LDAPStrEscapeDN(input: int64): int64'' | pub | Maskiert Sonderzeichen in DN-String | | ''LDAPParseSearchEntry(buf: int64, bufSize: int64): LDAPSearchResult'' | pub | Parst einzelnen Suchergebnis-Eintrag | | ''LDAPGetEntryAttr(entry: LDAPSearchResult, attr: int64): int64'' | pub | Liest Attributwert aus Suchergebnis | | ''LDAPErrorToStr(code: int64): int64'' | pub | Wandelt Fehlercode in Textbeschreibung | | ''LDAPCountRDNs(dn: int64): int64'' | pub | Zählt RDN-Komponenten im DN | | ''LDAPGetRDNAt(dn: int64, index: int64): int64'' | pub | Gibt RDN-Komponente an Position zurück | | ''LDAPGetResultCode(buf: int64, bufSize: int64): int64'' | pub | Liest Ergebniscode aus Antwortpuffer |