Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Active Directory Federation Services (AD FS) 2019 lägger till funktionen för att anpassa HTTP-säkerhetssvarshuvuden som skickas av AD FS. De här verktygen hjälper administratörer att skydda sig mot vanliga säkerhetsrisker och göra det möjligt för dem att dra nytta av de senaste framstegen i webbläsarbaserade skyddsmekanismer. Den här funktionen kommer från introduktionen av två nya cmdletar: Get-AdfsResponseHeaders och Set-AdfsResponseHeaders.
Note
Möjligheten att anpassa HTTP-säkerhetssvarshuvudena (utom CORS-huvuden) med hjälp av cmdletar: Get-AdfsResponseHeaders och Set-AdfsResponseHeaders tillbakaportarades till AD FS 2016. Du kan lägga till funktionerna i AD FS 2016 genom att installera KB4493473 och KB4507459.
I den här artikeln beskrivs vanliga säkerhetssvarshuvuden för att visa hur du anpassar rubriker som skickas av AD FS 2019.
Note
Artikeln förutsätter att du har installerat AD FS 2019.
Scenarios
Följande scenarier visar att det kan finnas ett behov för administratörer att anpassa säkerhetsrubriker.
- En administratör har aktiverat HTTP Strict-Transport-Security (HSTS) för att skydda de användare som kan komma åt webbappen med hjälp av HTTP från en offentlig åtkomstpunkt för wifi som kan ha hackats. HSTS tvingar alla anslutningar via HTTPS-kryptering. De vill ytterligare stärka säkerheten genom att aktivera HSTS för underdomäner.
- En administratör konfigurerade svarshuvudet X-Frame-Options för att skydda webbsidorna från att klickas. X-Frame-Options förhindrar återgivning av webbsidor i en iFrame. De måste dock anpassa rubrikvärdet på grund av ett nytt affärskrav för att visa data (i iFrame) från ett program med ett annat ursprung (domän).
- En administratör har aktiverat X-XSS-Protection för att sanera och blockera sidan om webbläsaren identifierar attacker mellan skript. X-XSS-Protection förhindrar korsskriptattacker. De måste dock anpassa rubriken så att sidan kan läsas in efter att den har sanerats.
- En administratör måste aktivera resursdelning för korsande ursprung (CORS) och de måste ange ursprunget (domänen) i AD FS för att tillåta att ett ensidesprogram får åtkomst till ett webb-API med en annan domän.
- En administratör aktiverade CSP-huvudet (Content Security Policy) för att förhindra skriptkörning mellan webbplatser och datainmatningsattacker genom att inte tillåta begäranden mellan domäner. På grund av ett nytt affärskrav måste de dock anpassa rubriken så att webbsidan kan läsa in bilder från alla ursprung och begränsa media till betrodda leverantörer.
Säkerhetsrelaterade HTTP-svarshuvuden
AD FS inkluderar svarshuvudena i det utgående HTTP-svar som skickas till en webbläsare. Du kan visa rubrikerna med hjälp av cmdleten Get-AdfsResponseHeaders enligt följande skärmbild.
Attributet ResponseHeaders i skärmbilden identifierar säkerhetsrubrikerna som ingår i AD FS i varje HTTP-svar. AD FS skickar endast svarshuvudena om ResponseHeadersEnabled är inställt på True (standardvärde). Värdet kan ställas in på False för att förhindra att AD FS inkluderar några säkerhetsrubriker i HTTP-svaret. Den här inställningen rekommenderas dock inte. Du kan ange ResponseHeaders till False med följande kommando:
Set-AdfsResponseHeaders -EnableResponseHeaders $false
HTTP Strict –Transport-Security (HSTS)
HTTP Strict–Transport-Security (HSTS) är en mekanism för webbsäkerhetsprinciper som hjälper till att minimera protokollnedgraderingsattacker och cookiekapning för tjänster som har både HTTP- och HTTPS-slutpunkter. Det gör att webbservrar kan deklarera att webbläsare eller andra kompatibla användaragenter endast ska interagera med den med hjälp av HTTPS och aldrig via HTTP-protokollet.
Alla AD FS-slutpunkter för webbautentiseringstrafik öppnas exklusivt via HTTPS. Därför motverkar AD FS effektivt de hot som HTTP Strict Transport Security-policy tillhandahåller. Som standard finns det ingen nedgradering till HTTP eftersom det inte finns några lyssnare i HTTP. Rubriken kan anpassas genom att ange följande parametrar:
- max-age=<utgångstid>. Förfallotiden (i sekunder) anger hur länge webbplatsen endast ska nås med HTTPS. Standardvärdet och det rekommenderade värdet är 31536000 sekunder (ett år).
- includeSubDomains. Den här parametern är valfri. Om den anges gäller HSTS-regeln även för alla underdomäner.
HSTS-anpassning
Som standard är huvudet aktiverat och max-age är inställt på ett år. Administratörer kan dock ändra max-age (det rekommenderas inte att sänka maxåldersvärdet) eller aktivera HSTS för underdomäner via cmdleten Set-AdfsResponseHeaders .
Set-AdfsResponseHeaders -SetHeaderName "Strict-Transport-Security" -SetHeaderValue "max-age=<seconds>; includeSubDomains"
Example:
Set-AdfsResponseHeaders -SetHeaderName "Strict-Transport-Security" -SetHeaderValue "max-age=31536000; includeSubDomains"
Som standard ingår rubriken i attributet ResponseHeaders . Administratörer kan dock ta bort huvudet via cmdleten Set-AdfsResponseHeaders .
Set-AdfsResponseHeaders -RemoveHeaders "Strict-Transport-Security"
X-Frame-Options
AD FS tillåter som standard inte att externa program använder iFrames vid interaktiv inloggning. Den här konfigurationen förhindrar vissa typer av nätfiskeattacker. Icke-interaktiv inloggning kan utföras via iFrame på grund av tidigare säkerhet på sessionsnivå som har upprättats.
I vissa sällsynta fall kan du dock lita på ett specifikt program som kräver en iFrame-kompatibel interaktiv AD FS-inloggningssida. Rubriken X-Frame-Options används för detta ändamål.
Det här HTTP-säkerhetssvarshuvudet används för att kommunicera med webbläsaren om det kan återge en sida i en <ram>/<iframe>. Rubriken kan anges till något av följande värden:
- deny. Sidan i en ram visas inte. Den här konfigurationen är standardinställningen och den rekommenderade inställningen.
- sameorigin. Sidan visas bara i ramen om ursprunget är samma som webbsidans ursprung. Alternativet är inte användbart om inte alla överordnade också har samma ursprung.
-
tillåt-från <angivet ursprung>. Sidan visas bara i ramen om ursprunget (till exempel
https://www.".com) matchar det specifika ursprunget i rubriken. Vissa webbläsare kanske inte stöder det här alternativet.
X-Frame-Options anpassning
Som standard är rubriken inställd på att neka. Administratörer kan dock ändra värdet via cmdleten Set-AdfsResponseHeaders .
Set-AdfsResponseHeaders -SetHeaderName "X-Frame-Options" -SetHeaderValue "<deny/sameorigin/allow-from<specified origin>>"
Example:
Set-AdfsResponseHeaders -SetHeaderName "X-Frame-Options" -SetHeaderValue "allow-from https://www.example.com"
Som standard ingår rubriken i attributet ResponseHeaders . Administratörer kan dock ta bort huvudet via cmdleten Set-AdfsResponseHeaders .
Set-AdfsResponseHeaders -RemoveHeaders "X-Frame-Options"
X-XSS-Protection
Det här HTTP-säkerhetssvarshuvudet används för att hindra webbsidor från att läsas in när webbläsare identifierar XSS-attacker (cross-site scripting). Den här metoden kallas XSS-filtrering. Rubriken kan anges till något av följande värden:
- 0 inaktiverar XSS-filtrering. Rekommenderas inte.
- 1 aktiverar XSS-filtrering. Om en XSS-attack identifieras sanerar webbläsaren sidan.
- 1; mode=block aktiverar XSS-filtrering. Om en XSS-attack identifieras förhindrar webbläsaren återgivning av sidan. Den här inställningen är standardinställningen och den rekommenderade inställningen.
X-XSS-Protection anpassning
Som standard är rubriken inställd på 1; mode=block;. Administratörer kan dock ändra värdet via cmdleten Set-AdfsResponseHeaders .
Set-AdfsResponseHeaders -SetHeaderName "X-XSS-Protection" -SetHeaderValue "<0/1/1; mode=block/1; report=<reporting-uri>>"
Example:
Set-AdfsResponseHeaders -SetHeaderName "X-XSS-Protection" -SetHeaderValue "1"
Som standard ingår rubriken i attributet ResponseHeaders . Administratörer kan dock ta bort huvudet via cmdleten Set-AdfsResponseHeaders .
Set-AdfsResponseHeaders -RemoveHeaders "X-XSS-Protection"
CORS-huvuden (Cross Origin Resource Sharing)
Webbläsarsäkerhet hindrar en webbsida från att göra begäranden mellan ursprung som initierats inifrån skript. Men du kanske vill komma åt resurser i andra ursprung (domäner). Resursdelning för korsande ursprung (CORS) är en W3C-standard som gör att en server kan koppla av principen för samma ursprung. Genom att använda CORS kan en server uttryckligen tillåta vissa begäranden mellan ursprung samtidigt som andra avvisas.
För att bättre förstå en CORS-begäran går följande scenario igenom en instans där ett ensidesprogram (SPA) behöver anropa ett webb-API med en annan domän. Tänk vidare på att både SPA och API är konfigurerade på AD FS 2019 och ATT AD FS har CORS aktiverat. AD FS kan identifiera CORS-huvuden i HTTP-begäran, validera rubrikvärden och inkludera lämpliga CORS-huvuden i svaret. Mer information om hur du aktiverar och konfigurerar CORS på AD FS 2019 finns i avsnittet CORS-anpassning. Följande exempelflöde vägleder dig genom scenariot:
En användare får åtkomst till SPA via klientwebbläsaren och omdirigeras till AD FS-autentiseringsslutpunkten för autentisering. Eftersom SPA har konfigurerats för implicit beviljandeflöde returnerar begäran en Åtkomst + ID-token till webbläsaren efter lyckad autentisering.
Efter användarautentisering gör javascript-klientdelen som ingår i SPA en begäran om att få åtkomst till webb-API:et. Begäran omdirigeras till AD FS med följande rubriker:
- Alternativ – beskriver kommunikationsalternativen för målresursen.
- Origin – innehåller ursprunget för webb-API:et.
- Access-Control–Request-Method – identifierar HTTP-metoden (till exempel DELETE) som ska användas när en faktisk begäran görs.
- Access-Control–Request-Headers – identifierar DE HTTP-huvuden som ska användas när en faktisk begäran görs.
Note
En CORS-begäran påminner om en standard HTTP-begäran. Förekomsten av ett ursprungshuvud signalerar dock att den inkommande begäran är CORS-relaterad.
AD FS verifierar att det webb-API-ursprung som ingår i rubriken visas i de betrodda ursprung som konfigurerats i AD FS. Mer information om hur du ändrar betrott ursprung finns i CORS-anpassning. AD FS svarar sedan med följande rubriker:
- Access-Control–Allow-Origin – är samma värde som i ursprungsrubriken.
- Access-Control–Allow-Method – värdet är samma som i rubriken Access-Control –Request-Method.
- Access-Control–Allow-Headers – värdet är samma som i rubriken Access-Control –Request-Headers.
Webbläsaren skickar den faktiska begäran, inklusive följande rubriker:
- HTTP-metod (till exempel DELETE).
- Origin – innehåller ursprunget för webb-API:et.
- Alla rubriker som ingår i svarsrubriken Access-Control–Allow-Headers.
När den har verifierats godkänner AD FS begäran genom att inkludera webb-API-domänen (ursprung) i svarshuvudet Access-Control–Allow-Origin.
Med rubriken Access-Control-Allow-Origin kan webbläsaren anropa det begärda API:et.
CORS-anpassning
CORS-funktioner är som standard inte aktiverade. Administratörer kan dock aktivera funktionen via cmdleten Set-AdfsResponseHeaders .
Set-AdfsResponseHeaders -EnableCORS $true
När den är aktiverad kan administratörer räkna upp en lista över betrodda ursprung med hjälp av samma cmdlet. Följande kommando skulle till exempel tillåta CORS-begäranden från ursprunget https://example1.com och https://example1.com.
Set-AdfsResponseHeaders -CORSTrustedOrigins https://example1.com,https://example2.com
Note
Administratörer kan tillåta CORS-begäranden från alla ursprung genom att inkludera "*" i listan över betrodda ursprung, även om den här metoden inte rekommenderas på grund av säkerhetsrisker och ett varningsmeddelande tillhandahålls om de väljer att göra det.
Innehållssäkerhetsprincip (CSP)
Det här HTTP-säkerhetssvarshuvudet används för att förhindra skriptkörning mellan webbplatser, klickkapning och andra datainmatningsattacker genom att förhindra att webbläsare oavsiktligt kör skadligt innehåll. Webbläsare som inte stöder CSP (Content Security Policy) ignorerar CSP-svarshuvudena.
CSP-anpassning
Anpassning av CSP-huvudet innebär att ändra den säkerhetsprincip som definierar de resurser som webbläsaren tillåts läsa in för webbsidan. Standardsäkerhetsprincipen är:
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:;
Standard-src-direktivet används för att ändra -src-direktiv utan att uttryckligen ange varje direktiv. I följande exempel är till exempel princip 1 samma som princip 2.
Princip 1
Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" -SetHeaderValue "default-src 'self'"
Princip 2
Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" -SetHeaderValue "script-src 'self'; img-src 'self'; font-src 'self';
frame-src 'self'; manifest-src 'self'; media-src 'self';"
Om ett direktiv uttryckligen anges åsidosätter det angivna värdet för default-src. I följande exempel tar img-src värdet som "*" (vilket gör att bilder kan läsas in från alla ursprung) medan andra -src direktiv tar värdet som "self" (begränsas till samma ursprung som webbsidan).
Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" -SetHeaderValue "default-src 'self'; img-src *"
Följande källor kan definieras för standard-src-principen:
- "self" – om du anger den här källan begränsas innehållets ursprung till webbsidans ursprung.
- "osäkert infogat" – om du anger den här källan i principen kan du använda infogade JavaScript och CSS.
- "unsafe-eval" – om du anger den här källan i policyn kan du använda text till JavaScript-funktioner som eval.
- "ingen" – om du anger den här källan begränsas innehållet från alla ursprung till att läsas in.
- data: – ange data: URI:er tillåter innehållsskapare att bädda in små filer infogade i dokument. Användning rekommenderas inte.
Note
AD FS använder JavaScript i autentiseringsprocessen och aktiverar därför JavaScript genom att inkludera "osäkra infogade" och "osäkra eval"-källor i standardprincipen.
Anpassade rubriker
Förutom de tidigare listade säkerhetssvarshuvudena (HSTS, CSP, X-Frame-Options, X-XSS-Protection och CORS) kan du ange nya rubriker i AD FS 2019.
Du kan till exempel ange ett nytt huvud "TestHeader" och "TestHeaderValue" som värde.
Set-AdfsResponseHeaders -SetHeaderName "TestHeader" -SetHeaderValue "TestHeaderValue"
När den har angetts skickas den nya rubriken i AD FS-svaret, enligt följande Fiddler-kodfragment:
Webbläsarkompatibilitet
Använd följande tabell och länkar för att avgöra vilka webbläsare som är kompatibla med var och en av säkerhetssvarsrubrikerna.
| HTTP-säkerhetssvarshuvuden | Webbläsarkompatibilitet |
|---|---|
| HTTP Strict –Transport-Security (HSTS) | HSTS-webbläsarkompatibilitet |
| X-Frame-Options | X-Frame-Options webbläsarkompatibilitet |
| X-XSS-Protection | X-XSS-Protection webbläsarkompatibilitet |
| Ursprungsöverskridande resursdelning (CORS) | CORS-webbläsarkompatibilitet |
| Innehållssäkerhetsprincip (CSP) | CSP-webbläsarkompatibilitet |