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.