Nastavite SSO z AD FS¶
Active Directory Federation Services je lokalna (on-premises) možnost: žetone izdajajo vaši lastni strežniki, discovery URL pa je vaše lastno ime gostitelja. AD FS podpira OpenID Connect od različice Windows Server 2016 naprej.
Ta vodič zajema AD FS stran: ustvarjanje skupine aplikacij in zbiranje vrednosti, ki jih potrebuje digna. Digna stran — dashboard_config.toml, testiranje in odpravljanje težav — je enaka za vse ponudnike in je opisana v Pregled Single Sign-On.
Preden začnete¶
| Zahteva | Opombe |
|---|---|
| Različica AD FS | Windows Server 2016 ali novejši — starejše različice ne podpirajo OIDC |
| Dostop | Lokalni skrbnik na strežniku AD FS |
| Ime storitve federacije | npr. adfs.yourdomain.com |
| digna redirect URI | URL, na katerega se uporabniki vrnejo po prijavi, npr. https://digna.yourdomain.com/oidc/callback |
1. korak: Ustvarite skupino aplikacij¶
- Na strežniku AD FS odprite AD FS Management
- Z desno tipko miške kliknite Application Groups in izberite Add Application Group
- Kot ime vnesite
digna - Pod Standalone applications — ali Client-Server applications, odvisno od vaše različice — izberite Server application accessing a web API
- Kliknite Next
2. korak: Konfigurirajte strežniško aplikacijo¶
- Name:
digna backend - Client Identifier: AD FS ustvari GUID. Kopirajte ga — postane
DIGNA_OIDC_CLIENT_ID - Redirect URI: vnesite svoj digna callback URL in kliknite Add:
- Kliknite Next
Kliknite Add, ne samo Next
Polje za redirect URI ima svoj gumb Add. Če vnesete URI in kliknete Next, ne da bi pritisnili Add, se URI zavrže, čarovnik pa vas na to ne opozori. Preden nadaljujete, preverite, da se URI prikaže na seznamu pod poljem.
3. korak: Ustvarite deljeno skrivnost¶
- Označite Generate a shared secret
- Kopirajte ustvarjeno skrivnost → postane
DIGNA_OIDC_CLIENT_SECRET - Kliknite Next
Skrivnost je prikazana samo enkrat
AD FS prikaže deljeno skrivnost samo na tej strani čarovnika in je ne more prikazati znova. Če jo izgubite, jo pozneje ponastavite v lastnostih skupine aplikacij.
4. korak: Konfigurirajte spletni API¶
- Identifier: vnesite isti identifikator odjemalca iz 2. koraka in kliknite Add
- Kliknite Next
- Izberite Access Control Policy — Permit everyone je najpreprostejše izhodišče; za produkcijo dostop omejite na skupino
- Kliknite Next
5. korak: Dodelite dovoljene obsege¶
V koraku Configure Application Permissions označite:
openidprofileemail
Nato kliknite Next in dokončajte čarovnika.
openid ni privzeto označen
AD FS v nekaterih različicah vnaprej izbere samo user_impersonation. Brez openid končna točka za žetone vrne dostopni žeton OAuth namesto žetona ID, digna pa uporabnika ne more identificirati.
6. korak: Preverite končno točko discovery¶
Vstavite ime svoje storitve federacije:
Na primer:
Odprite ga v brskalniku. Dokument JSON potrjuje, da je OIDC omogočen in da je ime gostitelja pravilno.
Zaledje mora zaupati certifikatu
Za AD FS je pogosta interna overitelj certifikatov (CA). Računalnik, na katerem teče digna zaledje, sam izvede odhodni klic HTTPS na ta URL, zato mora biti izdajateljski CA v shrambi zaupanja tega računalnika — ne le v brskalnikih ljudi, ki se prijavljajo.
7. korak: Konfigurirajte digna¶
dashboard/dashboard_config.toml¶
config.toml¶
[oidc_clients.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"
Vrednost key se mora v obeh datotekah ujemati — tukaj adfs.
8. korak: Testirajte¶
Znova zaženite zaledje in spletni strežnik, nato odprite nadzorno ploščo. Za celoten kontrolni seznam si oglejte Testiranje prijave.
Odpravljanje težav z AD FS¶
MSIS9611: The Client Is Not Allowed to Access the Resource¶
Identifikator spletnega API-ja iz 4. koraka se ne ujema z identifikatorjem odjemalca ali pa obsegi iz 5. koraka niso bili dodeljeni. Oboje lahko uredite v lastnostih skupine aplikacij.
MSIS9602: Invalid redirect_uri¶
URI je bil vnesen, ne pa dodan z gumbom Add, ali pa se razlikuje od DIGNA_OIDC_REDIRECT_URI. Preverite Application Groups → digna → digna backend → Properties.
Žeton ID ni vrnjen¶
V dovoljenjih aplikacije manjka obseg openid.
Zaledje ne doseže discovery URL-ja¶
Bodisi DNS na gostitelju zaledja ne razreši imena storitve federacije bodisi certifikatu AD FS tam ni zaupano. Preizkusite z curl https://adfs.yourdomain.com/adfs/.well-known/openid-configuration neposredno s strežnika digna.
Dogodki, ki jih preverite¶
Strežnik AD FS beleži napake v Applications and Services Logs → AD FS → Admin v pregledovalniku dogodkov (Event Viewer), običajno z natančnejšim razlogom, kot ga prikaže brskalnik.
Povezane vsebine¶
- Pregled Single Sign-On — referenca konfiguracije, testiranje in splošno odpravljanje težav
- Microsoft: AD FS OpenID Connect scenarios