Un post mic cu hatereala. Ca astia de la Microsoft cred ca au un KPI pe undeva in care produs cu produs trebuie sa demonstreze un nivel variabil de retardare.
Eh, am avut de automatizat o chestie simpla: rotitul de certificate digitale pentru Entra Domain Services, au cum era cunoscut de mai demult: LDAP-ul din Azure AD.
Eh, te-ai astepta in era asta a cloud-ului sa existe pe undeva un API in care sa faci post la certificat/cheie si sa actualizeze lucrurile in spate. E, Microsoft in inteligenta lor n-au un API pentru asta, da in schimb au pentru toate pisaturile lumii.
Dupa multe cautari, am ajuns la azure-cli SDK, care ce sa vezi, e scris in Python. Zic mama m-am scos, fac doua trei call-uri acolo si aia e. Dar nu, ca iar, in inteligenta astora, nu poti apela o biblioteca direct – cel putin aia de AD. Nu, poti apela din Python un get_default_cli() la care ii pasezi o lista de argumente, ca si cum ai rula az (ca asa se cheama binarul) de mana, insa poti accesa rezultele din Python. Mno, zic hai ca aia e, macar pot s-o fac programatic cat de cat.
Repo-ul asta exista in PIP, si din ce-am gasit pe net, pip install az-cli ar rezolva problema. Si o rezolva, 872MB mai incolo. Ca downloadeaza absolut toate pachetele vietii. Vrei nu vrei, ai si management de containere, si baze de date si toate prostiile lumii de chestii de exista in Azure. Mai putin modulul de AD, care se instaleaza ca extensie separata… si dupa multe sapaturi, de fapt ruleaza in spate un pip install $ceva, ca nu stiu ce. Cum am aflat asta, pai intrebandu-ma de ce toate astea puse in Docker nasc un container de 1.4GB pentru a roti un certificat.
Si am zis sa optimizez lucrurile si sa sterg pip si ce-o mai fi dupa. Dar ce sa vezi, crapa pisatul, ca in aia 872MB nu are tot ce-i trebuie, are si pe langa dependinte. Ca vorba aia acu un hard disc e mega ieftin.
Anyway, 1.42GB sa rotesc un certificat… fmm Microsoft.
În primul rând cine naiba mai folosește legacy AD in cloud, se pare ca mai sunt multe companii care fac asta 🙂 Apoi care e use case-ul tău, ce tip de certificat vrei să obții automat și de la ce CA. E un TLS pentru LDAPs sau pentru o aplicație oarecare? Ai nevoie de certificat automat de la CA-ul intern sau de la unul extern (Gen Entrust, DigiSign, etc)?
Nu folosesc legacy AD in cloud. Am niste aplicatii care stiu sa traga listele de utilizatori/grupuri doar via LDAP. Autentificarea o fac SAML/OAuth si dupa aia pupa userul cu grupurile si merg treburile.
Probema cu Entra Domain Services e ca nu are un API normal sa poti actualiza certificatul pentru LDAPs. Certificatul mi-l reinoieste cert-manager din k8s, si cu un cron il actualizez si eu in Entra. Certificatul este standard, nimic special la el.