SSO beállítása AD FS-sel¶
Az Active Directory Federation Services az on-premises opció: a saját szervere(i)d bocsátják ki a tokeneket, és a discovery URL a saját hostneved lesz. Az AD FS az OpenID Connect-et a Windows Server 2016 verziótól támogatja.
Ez a leírás az AD FS oldalát fedi: az alkalmazáscsoport létrehozása és azoknak az értékeknek az összegyűjtése, amire a dignának szüksége van. A digna oldala — dashboard_config.toml, tesztelés és hibakeresés — minden szolgáltatónál ugyanaz, és a Single Sign-On Overview fejezetben található.
Mielőtt elkezdené¶
| Követelmény | Megjegyzés |
|---|---|
| AD FS verzió | Windows Server 2016 vagy újabb — korábbi verziókban nincs OIDC támogatás |
| Hozzáférés | Helyi rendszergazda az AD FS szerveren |
| Federációs szolgáltatás neve | pl. adfs.yourdomain.com |
| digna átirányítási URI | Az a URL, ahova a felhasználók visszatérnek bejelentkezés után, pl. https://digna.yourdomain.com/oidc/callback |
1. lépés: Alkalmazáscsoport létrehozása¶
- Az AD FS szerveren nyissa meg az AD FS Management-et
- Kattintson jobb gombbal az Application Groups-ra, majd válassza az Add Application Group-ot
- Adja meg a nevet:
digna - Válassza a Standalone applications — vagy a Client-Server applications lehetőséget a verziótól függően — majd jelölje ki a Server application accessing a web API opciót
- Kattintson a Next gombra
2. lépés: A szerveralkalmazás konfigurálása¶
- Name:
digna backend - Client Identifier: az AD FS generál egy GUID-ot. Másolja ki — ez lesz a
DIGNA_OIDC_CLIENT_ID - Redirect URI: adja meg a digna callback URL-jét és kattintson az Add-ra:
- Kattintson a Next gombra
Kattintson az Add gombra, ne csak a Next-re
A redirect URI mezőhöz külön Add gomb tartozik. Ha beírja az URI-t és a Next-re kattint anélkül, hogy az Add-ot megnyomná, az URI elveszik, és a varázsló nem figyelmeztet. Győződjön meg róla, hogy az URI megjelenik a mező alatti listában, mielőtt tovább lép.
3. lépés: A megosztott titok generálása¶
- Jelölje be a Generate a shared secret opciót
- Másolja ki a generált titkot → ez lesz a
DIGNA_OIDC_CLIENT_SECRET - Kattintson a Next gombra
A titok csak egyszer látható
Az AD FS ezt a megosztott titkot csak ezen a varázslóoldalon jeleníti meg, később nem tudja újra megmutatni. Ha elveszti, később az alkalmazáscsoport tulajdonságaiból állítsa vissza.
4. lépés: A Web API konfigurálása¶
- Identifier: adja meg ugyanazt a kliens azonosítót, amelyet a 2. lépésben kapott, majd kattintson az Add-ra
- Kattintson a Next gombra
- Válasszon egy Access Control Policy-t — a Permit everyone a legegyszerűbb kiindulási pont; éles környezetben szűkítse egy csoporthoz
- Kattintson a Next gombra
5. lépés: A megengedett scope-ok engedélyezése¶
A Configure Application Permissions lépésen jelölje be:
openidprofileemail
Ezután kattintson a Next-re és fejezze be a varázslót.
Az openid nincs alapértelmezés szerint bejelölve
Egyes verziókban az AD FS csak a user_impersonation-t jelöli ki alapból. openid nélkül a token endpoint OAuth access token-t ad vissza az ID token helyett, és a digna nem tudja azonosítani a felhasználót.
6. lépés: A discovery végpont ellenőrzése¶
Helyettesítse be a saját federációs szolgáltatás nevét:
Például:
Nyissa meg egy böngészőben. Egy JSON dokumentum megerősíti, hogy az OIDC engedélyezve van és a hostnév helyes.
A backendnek megbíznia kell a tanúsítványban
Belső tanúsítványkibocsátó gyakori AD FS telepítéseknél. A digna backendet futtató gép saját kimenő HTTPS hívást indít erre az URL-re, ezért az aláíró CA-nak szerepelnie kell annak a gépnek a megbízható tanúsítványtárában — nem elég, ha csak a bejelentkezők böngészőiben van telepítve.
7. lépés: digna konfigurálása¶
dashboard/dashboard_config.toml¶
config.toml¶
[oidc.adfs]
DIGNA_OIDC_CLIENT_ID = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
DIGNA_OIDC_CLIENT_SECRET = "<the shared secret copied in Step 3>"
DIGNA_OIDC_REDIRECT_URI = "https://digna.yourdomain.com/oidc/callback"
DIGNA_OIDC_CONFIGURATION_URL = "https://adfs.yourdomain.com/adfs/.well-known/openid-configuration"
A key mindkét fájlban egyezzen — itt adfs.
8. lépés: Tesztelés¶
Indítsa újra a backendet és a webszervert, majd nyissa meg a dashboardot. A teljes ellenőrzőlistát lásd a Testing Login szakaszban.
AD FS hibakeresés¶
MSIS9611: The Client Is Not Allowed to Access the Resource¶
A web API azonosító a 4. lépésben nem egyezik a kliens azonosítóval, vagy a 5. lépésben nem lettek megadva a szükséges scope-ok. Mindkettő szerkeszthető az alkalmazáscsoport tulajdonságaiban.
MSIS9602: Invalid redirect_uri¶
Az URI be volt írva, de nem adták hozzá az Add gombbal, vagy eltér a DIGNA_OIDC_REDIRECT_URI-től. Ellenőrizze: Application Groups → digna → digna backend → Properties.
Nincs visszaadva ID token¶
Hiányzik az openid scope az alkalmazásengedélyek közül.
A backend nem éri el a discovery URL-t¶
Vagy a backend hoszt DNS-e nem oldja fel a federációs szolgáltatás nevét, vagy az AD FS tanúsítvány nincs megbízhatóként beállítva ott. Tesztelje a következővel a digna szerverről:
curl https://adfs.yourdomain.com/adfs/.well-known/openid-configuration
Események, amelyeket érdemes ellenőrizni¶
Az AD FS szerver az Event Viewerben az Applications and Services Logs → AD FS → Admin alatt rögzíti a hibákat, általában konkrétabb oka van, mint amit a böngésző mutat.
Lásd még¶
- Single Sign-On Overview — konfigurációs referencia, tesztelés és általános hibakeresés
- Microsoft: AD FS OpenID Connect scenarios