LDAP autentizace ze Synology Directory Serveru v Emby - papiscze/ruzneskripty GitHub Wiki

Cílem bylo nastavit Emby tak, aby pro přihlašování používalo uživatele z vašeho Synology Directory Serveru (který funguje jako Active Directory).

  • Celý proces byl sérií kroků k odstranění překážek v komunikaci a autentizaci, postupně od základní konektivity až po složitější problémy s certifikáty a DNS.

1. Základní testy konektivity a ověření LDAP serveru

Ověření dostupnosti LDAP portu (636): Pomocí nc -vz 192.168.17.2 636 jsme potvrdili, že port 636 na Synology NAS je otevřený a naslouchá. Tím jsme vyloučili problémy s firewallem na NAS nebo síťovými překážkami. Ověření funkčnosti LDAP serveru a autentizace: Použili jsme příkaz ldapsearch s explicitním ignorováním certifikátu (export LDAPTLS_REQCERT=never) k ověření, že: Bind DN (CN=Administrator,CN=Users,DC=doma,DC=local) a heslo (xxx) jsou správné. Hledání uživatele (sAMAccountName=username) v dané Search Base (CN=Users,DC=doma,DC=local) funguje a vrací správné atributy. Tento krok potvrdil, že LDAP server na Synology je správně nakonfigurován a vaše přihlašovací údaje jsou validní.

2. Řešení problémů s SSL/TLS certifikátem

Identifikace problému: Emby logy původně ukazovaly chyby jako Ssl certifiate error RemoteCertificateNameMismatch, RemoteCertificateChainErrors a The remote certificate was rejected by the provided RemoteCertificateValidationCallback. To znamenalo, že Emby buď nedůvěřovalo certifikátu, nebo se neshodovalo jméno v certifikátu s adresou, na kterou se Emby pokoušelo připojit. Získání SHA1 otisku certifikátu: Pomocí openssl s_client nebo přímo ze Synology NAS jsme získali SHA1 otisk certifikátu Synology (SHA1_CERT).

Import certifikátu na Ubuntu server:

Certifikát byl uložen do souboru (/usr/local/share/ca-certificates/synology_ldap.crt). Poté byl spuštěn příkaz sudo update-ca-certificates, aby systém začal certifikátu důvěřovat. Tím se vyřešila chyba RemoteCertificateChainErrors.

3. Řešení problémů s překladem DNS jmen (Name Resolution)

Identifikace problému: Po vyřešení certifikátu se v Emby logách objevila nová chyba: Resource temporarily unavailable a System.Net.NameResolution. To naznačovalo, že Emby (systém Ubuntu, na kterém běží) má problém s překladem doménového jména nas.local na IP adresu. Oprava DNS pomocí /etc/hosts: Jelikož Emby běží přímo na Ubuntu serveru (ne v Dockeru), nejjednodušším řešením bylo přidat záznam do lokálního souboru /etc/hosts: IP DDNS (192.168.17.2 nas.local) Tím se zajistilo, že nas.local je vždy spolehlivě přeloženo na 192.168.17.2 před jakýmkoli pokusem o dotazování DNS serverů, což eliminovalo chybu RemoteCertificateNameMismatch a Resource temporarily unavailable. Restart Emby serveru: Po úpravě /etc/hosts bylo nutné restartovat službu Emby, aby se změny projevily.

4. Konečné nastavení Emby LDAP pluginu

Po vyřešení všech předchozích překážek byly v Emby LDAP pluginu nastaveny tyto parametry:

LDAP server address: nas.local (plné doménové jméno, pro které je certifikát vydán) LDAP server Port number: 636 Povolit SSL: Zaškrtnuto (povoleno) SSL certificate thumbprint (SHA1): Prázdné (nevyplněno), protože systém již certifikátu důvěřuje Bind DN: CN=Administrator,CN=Users,DC=doma,DC=local Bind credentials: password User search base: CN=Users,DC=doma,DC=local User search filter: (&(objectClass=user)(sAMAccountName={0}))

Po provedení všech těchto kroků a správném nastavení v Emby začala LDAP autentizace fungovat. Logy Emby byly při každém kroku klíčovým nástrojem pro diagnostiku a potvrzení, že se posouváme správným směrem.


1. Základní ověření LDAP serveru a sítě

1.1. Ověřte dostupnost LDAP serveru (port 636):

Na serveru, kde běží Emby, otevřete terminál a zadejte: nc -vz 192.168.17.2 636

  • Očekávaný výsledek: Měli byste vidět zprávu o úspěšném připojení (např. Connection to 192.168.17.2 636 port [tcp/*] succeeded!). To potvrdí, že firewall na NAS neblokuje port 636 a síťová cesta je průchozí.

1.2. Ověřte LDAP dotaz a autentizaci:

Na serveru Emby spusťte v terminálu (důležité je spustit export LDAPTLS_REQCERT=never před každým ldapsearch, pokud nechcete spravovat certifikáty přes systém): export LDAPTLS_REQCERT=never ldapsearch -x -H ldaps://192.168.17.2 -D "CN=Administrator,CN=Users,DC=doma,DC=local" -w "password" -b "DC=doma,DC=local" "(&(objectClass=user)(sAMAccountName=LDAP_USERNAME))"

  • Očekávaný výsledek: Měl by se vrátit záznam pro uživatele LDAP_USERNAME s jeho atributy (např. dn, sAMAccountName atd.).

Co tím ověříte:

Správnost IP adresy a portu LDAP serveru. Funkčnost šifrovaného spojení ldaps:// (i když dočasně bez ověření certifikátu). Správnost Bind DN (CN=Administrator,CN=Users,DC=doma,DC=local) a Bind credentials (password). Funkčnost User search base (DC=doma,DC=local) a User search filter ((&(objectClass=user)(sAMAccountName=LDAP_USERNAME))) pro nalezení uživatele.

2. Řešení problémů s SSL/TLS certifikátem v Emby

Původně Emby hlásilo chyby typu RemoteCertificateNameMismatch (neshoda jména v certifikátu a adresy, na kterou se připojujete) a RemoteCertificateChainErrors (problém s důvěryhodností certifikátu).

2.1. Získejte a uložte certifikát Synology NAS:

Získejte veřejnou část SSL/TLS certifikátu z vašeho Synology NAS (obvykle v Ovládacím panelu > Zabezpečení > Certifikát). Certifikát by měl začínat -----BEGIN CERTIFICATE----- a končit -----END CERTIFICATE-----. Uložte ho na Ubuntu serveru do souboru s příponou .crt (např. synology_ldap.crt) do adresáře pro důvěryhodné CA certifikáty: sudo nano /usr/local/share/ca-certificates/synology_ldap.crt

  • Vložte obsah certifikátu a uložte (Ctrl+O, Enter, Ctrl+X)

2.2. Importujte certifikát do systémového úložiště CA certifikátů:

V terminálu spusťte: sudo update-ca-certificates

  • Očekávaný výsledek: Měli byste vidět zprávu 1 added, 0 removed. Tím se certifikát přidá do systémového seznamu důvěryhodných certifikátů a Emby mu bude důvěřovat.

3. Oprava DNS rozlišení jména pro Emby

I po vyřešení certifikátů Emby hlásilo chyby Resource temporarily unavailable a System.Net.NameResolution, což naznačovalo problém s DNS překladem jména nas.local na IP adresu 192.168.17.2.

3.1. Upravte soubor /etc/hosts na Ubuntu serveru:

Soubor /etc/hosts má prioritu před DNS dotazy a zajistí, že se název hostitele přeloží lokálně a spolehlivě. Otevřete soubor s oprávněními root: sudo nano /etc/hosts

  • Na konec souboru přidejte řádek (pokud tam již není, nebo ho upravte): 192.168.17.2 nas.local
  • Uložte a zavřete soubor (Ctrl+O, Enter, Ctrl+X).

3.2. Restartujte službu Emby:

Aby Emby načetlo změny v /etc/hosts a nové DNS nastavení, je potřeba restartovat jeho službu: sudo systemctl restart emby-server

  • Nebo podle toho, jakou službu Emby používá na vašem systému (např. sudo service emby-server restart)

4. Konečné nastavení Emby LDAP pluginu

  • Po provedení všech předchozích kroků (ověření LDAP serveru, import certifikátu, oprava DNS) je čas na správné nastavení v administraci Emby:
  • LDAP server address: nas.local
  • Důvod: Musí se shodovat s Common Name (CN) v SSL/TLS certifikátu._
  • LDAP server Port number: 636
  • Důvod: Port pro zabezpečené LDAPS spojení.
  • Povolit SSL: Zaškrtnuto
  • Důvod: Povoluje šifrované spojení.
  • SSL certificate thumbprint (SHA1): Ponechejte prázdné
  • Důvod: Po importu certifikátu do systému Emby již nepotřebuje explicitní otisk.
  • Bind DN: CN=Administrator,CN=Users,DC=doma,DC=local
  • Důvod: Účet s oprávněním pro vyhledávání v LDAP adresáři.
  • Bind credentials: password
  • Důvod: Heslo pro Bind DN účet.
  • User search base: CN=Users,DC=doma,DC=local
  • Důvod: Oblast, ve které bude Emby hledat uživatele.
  • User search filter: (&(objectClass=user)(sAMAccountName={0}))
  • Důvod: Filtr pro nalezení uživatele podle jeho sAMAccountName (přihlašovací jméno v AD/Synology DS). {0} je zástupný symbol pro jméno zadané uživatelem v Emby. Po dokončení všech těchto kroků a uložení nastavení v Emby by měla být LDAP autentizace funkční a uživatelé z vašeho Synology Directory Serveru by se měli být schopni přihlásit do Emby.