SSO seadistamine AD FS-iga¶
Active Directory Federation Services on kohapealne (on‑premises) variant: teie enda serverid väljastavad tokenid ja avastuse URL on teie oma hostinimi. AD FS toetab OpenID Connecti alates Windows Server 2016 versioonist.
See juhend käsitleb AD FS-i poolt tehtavat osa: rakenduste grupi loomist ja väärtuste kogumist, mida digna vajab. Digna pool — dashboard_config.toml, testimine ja tõrkeotsing — on iga pakkuja puhul sama ja on kirjeldatud Single Sign-On Overview-s.
Enne alustamist¶
| Nõue | Märkused |
|---|---|
| AD FS versioon | Windows Server 2016 või uuem — varasemad versioonid ei toeta OIDC-i |
| Ligipääs | Kohalik administraator AD FS serveris |
| Föderatsiooniteenuse nimi | nt adfs.yourdomain.com |
| digna ümbersuunamise URI | URL, kuhu kasutajaid suunatakse pärast sisselogimist, nt https://digna.yourdomain.com/oidc/callback |
Samm 1: Loo rakenduste grupp¶
- AD FS serveris avage AD FS Management
- Paremklõpsake Application Groups ja valige Add Application Group
- Sisestage nimeks
digna - Valige Standalone applications — või sõltuvalt versioonist Client-Server applications — ning valige Server application accessing a web API
- Klõpsake Next
Samm 2: Konfigureerige serverirakendus¶
- Name:
digna backend - Client Identifier: AD FS genereerib GUID-i. Kopeerige see — sellest saab
DIGNA_OIDC_CLIENT_ID - Redirect URI: sisestage oma digna callback URL ja klõpsake Add:
- Klõpsake Next
Klõpsake Add, mitte ainult Next
Redirect URI väljail on oma Add nupp. Kui kirjutate URI ja klikite ainult Next ilma Add-i vajutamata, see kadestatakse ning wizard ei anna hoiatust. Veenduge, et URI ilmub väljale allpool enne jätkamist.
Samm 3: Genereerige jagatud salajane võti¶
- Märkige Generate a shared secret
- Kopeerige genereeritud secret → sellest saab
DIGNA_OIDC_CLIENT_SECRET - Klõpsake Next
Salajast võtit kuvatakse ainult üks kord
AD FS kuvab jagatud salajast võtit ainult sellel viisardi lehel ja ei saa seda hiljem uuesti näidata. Kui kaotate selle, lähtestage see hiljem rakenduse grupi atribuutidest.
Samm 4: Konfigureerige Web API¶
- Identifier: sisestage sama client identifier nagu Samm 2-st ja klõpsake Add
- Klõpsake Next
- Valige Access Control Policy — Permit everyone on lihtsaim alguseks; tootmises piira see grupile
- Klõpsake Next
Samm 5: Määrake lubatud skoopid¶
Configure Application Permissions sammuga, märkige:
openidprofileemail
Seejärel klõpsake Next ja lõpetage viisard.
openid ei ole vaikimisi valitud
Mõnes AD FS versioonis on eelvalitud ainult user_impersonation. Ilma openid-ita tagastab token endpoint OAuth access tokeni, mitte ID tokeni, ja digna ei saa kasutajat tuvastada.
Samm 6: Kinnitage avastuse (discovery) lõpp-punkt¶
Asendage oma föderatsiooniteenuse nimi:
Näiteks:
Avage see brauseris. JSON-dokument kinnitab, et OIDC on lubatud ja hostinimi on õige.
Backend peab sertifikaati usaldama
Sise-sertifikaadi väljaandja on AD FS puhul tavaline. Masin, kus jookseb digna backend, teeb selle URL-i poole väljamineva HTTPS-päringu, seega peab sertifikaati väljastanud CA olema selle masina usaldatud sertifikaatide hulgas — mitte ainult nende inimeste brauserites, kes sisse logivad.
Samm 7: Konfigureerige digna¶
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"
Mõlemas failis peab key vastama — siin on see adfs.
Samm 8: Testimine¶
Taaskäivitage backend ja veebiserver, seejärel avage dashboard. Täispuhuliku kontrollnimekirja jaoks vaadake Testing Login.
AD FS tõrkeotsing¶
MSIS9611: The Client Is Not Allowed to Access the Resource¶
Web API identifier Samm 4-s ei kattu client identifieriga või Samm 5-s ei olnud skoopid antud. Mõlemat saab muuta rakenduse grupi omadustest.
MSIS9602: Invalid redirect_uri¶
URI kirjutati välja, aga ei lisatud Add nupuga, või see erineb DIGNA_OIDC_REDIRECT_URI-st. Kontrollige Application Groups → digna → digna backend → Properties.
ID-tokeni ei tagastata¶
Rakenduse õigustest puudub openid skoop.
Backend ei saa avastuse URL-ini ühendust¶
Või DNS resolvib föderatsiooniteenuse nime valesti backend-masinas, või AD FS sertifikaati ei usaldata seal. Testimiseks käivitage serverist ise curl https://adfs.yourdomain.com/adfs/.well-known/openid-configuration.
Sündmused, mida kontrollida¶
AD FS server logib vead Event Viewerisse sektsiooni Applications and Services Logs → AD FS → Admin, kus on tavaliselt brauserile kuvatust konkreetsem põhjus.
Vaata ka¶
- Single Sign-On Overview — konfiguratsiooni viide, testimine ja üldine tõrkeotsing
- Microsoft: AD FS OpenID Connect stsenaariumid