Přihlašování do WordPressu pomocí Azure Active Directory

WordPress je jeden z nejpopulárnějších redakčních systémů na světě. Má hned několik funkcí, které každý, kdo má nějaký velký blog nebo webovou stránku, kam publikuje obsah, jistě ocení. Kromě samotné publikace obsahu a rozšiřitelnosti pomocí spousty doplňků nabízí mimo jiné i poměrně rozsáhlý systém oprávnění a rolí. Díky tomu máte přehled o svých uživatelích, můžete jim omezovat práva apod. A právě přihlašování se dnes budeme věnovat.

O co vlastně jde?

Spousta firem má nasazený Office 365 / Azure Active Directory. Jedná se o službu, která vám umožňuje spravovat identity v cloudu. Díky tomu můžete velmi jednoduše nastavit a vyžadovat vícefaktorovou autentizaci po uživatelích, nastavovat podmíněný přístup apod. To v praxi znamená i to, že pokud uživatel opustí vaši organizaci, a zrušíte (nebo zablokujete) mu účet, tak ztratí přístup ke všem firemním prostředkům – v našem případě i do WordPressu.

Další funkcí je také třeba přiřazování rolí na základě členství ve skupině – díky tomu máte poměrně širokou škálu možností, jak uživatele spravovat a přiřazovat jim přístup.

Kde začít?

Prvním předpokladem je, že již máte nasazený WordPress – můžete ho například nasadit do Azure App Service pomocí předdefinovaných šablon z Azure Marketplace.

Přidání pluginu

Abyste mohli autentizaci pomocí Azure AD využívat, musíte si do vaší instalace WordPressu přidat plugin. Tento plugin zatím není součástí na oficiálním WordPress Marketplace, takže je potřeba si ho stáhnout z GitHubu (https://github.com/psignoret/aad-sso-wordpress) manálně. Po stáhnutí zipu ho pak můžete nahrát rovnou na server (například přes program jako je WinSCP) nebo ho můžete nahrát přes správu pluginů přímo ve vašem WordPressu.

Po nahrání a následné aktivaci je třeba zaregistrovat aplikaci do Azure AD. Tato aplikace bude reprezentovat vaši WordPress instalaci. V Azure Portále stačí přejít do Azure Active Directory a vytvořit novou registraci v sekci App Registrations. Není to nic těžkého, stačí vyplnit políčko s názvem aplikace a s adresou vašeho blogu.

Po vytvoření nové aplikace je třeba doplnit další konfiguraci. Jako první nastavíme adresu URL pro odpověď. Jedná se o adresu, kam bude uživatel v případě úspěšné autentizace přesměrován zpět. Můžete zadat i více adres, v případě, že se jedná např. o multisite nebo multinetwork instalaci WordPresu. Ve výchozím případě se bude jednat o adresu ve fomátu „https://vasweb.cz/wp-login.php“.

Dále je potřeba nastavit oprávnění pro přístup k Microsoft Graph API, pomocí kterého může aplikace vyčíst informace o přihlášeném uživateli – např. ověřit členství ve skupinách. Základem je aktivovat “Sign in and read user profile“. Toto oprávnění je potřeba na samotné přihlášení vašich uživatelů. Pokud chcete využívat i funkci pluginu, která dokáže přiřadit skupiny Azure AD k různým rolím, je třeba přidat “Read directory data“. Po uložení je potřeba, aby správce udělil oprávnění pro aplikaci (tlačítko Udělit oprávnění nebo Grant consent).

Posledním krokem je vygenerování klíče. Ten se používá pro výměnu autorizačního kódu za přístupový token. Zde stačí pouze nastavit stručný popis toho, k čemu tento klíč slouží a datum, kdy tomuto klíči vyprší platnost. Pozor, po nastavení a uložení se klíč vygeneruje, je to jediný moment, kdy je tento klíč vidět. Proto si ho uložte, jelikož jakmile opustíte tuto kartu, již se ke klíči nedostanete.

Nastavení pluginu

Nyní už jen stačí nastavit samotný plugin. Jednoduše stačí přejít do nastavení a sekce Azure AD. Zde je potřeba vyplnit několik dalších údajů.

Display name a Domain hint se ukáží jako nápovědy v různých stádiích přihlašování. Display name je jméno, které se zobrazí na přihlašovací stránce WordPressu. Domain hint se pak používá v případě, že využíváte federovaného přihlášení (např. pomocí ADFS), díky tomu pak dojde k automatickému přesměrování rovnou na vás federační server.

 

Do kolonky Client ID napište ID Aplikace, které bylo vygenerováno při vytváření aplikace na Azure. Dále Client key, což je klíč, který se vám vygeneroval a ke kterému již na Azure serveru není možné získat přístup. Nakonec je třeba nastavit Redirect URL a Logout redirect URL na stránky, které váš WordPress používá k přihlašování, což by opět měla být vaše doména s příponou “wp-login.php“. Pozor, tento URL odkaz musí být stejný jako URL pro odpověď, kterou jste nastavili na Azure aplikaci.

Matěj Samler, thenetw.org