Rámec zabezpečení: Správa relací

Produkt nebo služba Článek
Azure AD
Zařízení IoT
Azure Document DB
ADFS
Server identit
Webová aplikace
Webové rozhraní API

Implementace správného odhlášení pomocí metod ADAL při použití Azure AD

Nadpis Podrobnosti
Komponenta Azure AD
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference
Kroky Pokud aplikace spoléhá na přístupový token vydaný službou Azure AD, měla by obslužná rutina události odhlášení zavolat .

Příklad

HttpContext.GetOwinContext().Authentication.SignOut(OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType)

Příklad

Měla by také ničit uživatelskou relaci voláním metody Session.Abandon(). Následující metoda ukazuje zabezpečenou implementaci odhlášení uživatele:

    [HttpPost]
        [ValidateAntiForgeryToken]
        public void LogOff()
        {
            string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
            AuthenticationContext authContext = new AuthenticationContext(Authority + TenantId, new NaiveSessionCache(userObjectID));
            authContext.TokenCache.Clear();
            Session.Clear();
            Session.Abandon();
            Response.SetCookie(new HttpCookie("ASP.NET_SessionId", string.Empty));
            HttpContext.GetOwinContext().Authentication.SignOut(
                OpenIdConnectAuthenticationDefaults.AuthenticationType,
                CookieAuthenticationDefaults.AuthenticationType);
        } 

Použití konečných životností pro vygenerované tokeny SaS

Nadpis Podrobnosti
Komponenta Zařízení IoT
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference
Kroky Tokeny SaS vygenerované pro ověřování Azure IoT Hub by měly mít konečnou dobu vypršení platnosti. Udržujte životnost tokenu SaS na minimu, abyste omezili dobu, po kterou je možné je přehrát pro případ ohrožení zabezpečení tokenů.

Použití minimální životnosti tokenů pro vygenerované tokeny prostředků

Nadpis Podrobnosti
Komponenta Azure Document DB
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference
Kroky Snižte časové období tokenu prostředku na minimální požadovanou hodnotu. Tokeny prostředků mají výchozí platný časové období 1 hodina.

Implementace správného odhlášení pomocí metod WsFederation při použití ADFS

Nadpis Podrobnosti
Komponenta ADFS
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference
Kroky Pokud aplikace spoléhá na token STS vydaný ADFS, měla by obslužná rutina události odhlášení zavolat metodu WSFederationAuthenticationModule.FederatedSignOut() pro odhlášení uživatele. Zároveň by měla být zničena aktuální relace a hodnota tokenu relace by měla být resetována a nulová.

Příklad

        [HttpPost, ValidateAntiForgeryToken]
        [Authorization]
        public ActionResult SignOut(string redirectUrl)
        {
            if (!this.User.Identity.IsAuthenticated)
            {
                return this.View("LogOff", null);
            }

            // Removes the user profile.
            this.Session.Clear();
            this.Session.Abandon();
            HttpContext.Current.Response.Cookies.Add(new System.Web.HttpCookie("ASP.NET_SessionId", string.Empty)
                {
                    Expires = DateTime.Now.AddDays(-1D),
                    Secure = true,
                    HttpOnly = true
                });

            // Signs out at the specified security token service (STS) by using the WS-Federation protocol.
            Uri signOutUrl = new Uri(FederatedAuthentication.WSFederationAuthenticationModule.Issuer);
            Uri replyUrl = new Uri(FederatedAuthentication.WSFederationAuthenticationModule.Realm);
            if (!string.IsNullOrEmpty(redirectUrl))
            {
                replyUrl = new Uri(FederatedAuthentication.WSFederationAuthenticationModule.Realm + redirectUrl);
            }
           //     Signs out of the current session and raises the appropriate events.
            var authModule = FederatedAuthentication.WSFederationAuthenticationModule;
            authModule.SignOut(false);
        //     Signs out at the specified security token service (STS) by using the WS-Federation
        //     protocol.            
            WSFederationAuthenticationModule.FederatedSignOut(signOutUrl, replyUrl);
            return new RedirectResult(redirectUrl);
        }

Implementace správného odhlášení při použití serveru identit

Nadpis Podrobnosti
Komponenta Server identit
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference IdentityServer3 – Federované odhlášení
Kroky IdentityServer podporuje možnost federovat s externími zprostředkovateli identity. Když se uživatel odsoudí od nadřazeného zprostředkovatele identity, může být v závislosti na použitém protokolu možné obdržet oznámení, když se uživatel odstane. Umožňuje serveru IdentityServer upozornit klienty, aby se mohli odhlásit také od uživatele. Podrobnosti o implementaci najdete v dokumentaci v části s odkazy.

Aplikace dostupné přes PROTOKOL HTTPS musí používat zabezpečené soubory cookie.

Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy EnvironmentType – OnPrem
Reference httpCookies – element (ASP.NET Nastavení Schema), HttpCookie.Secure – vlastnost
Kroky Soubory cookie jsou obvykle přístupné pouze pro doménu, pro kterou byly vymezeny. Definice "domény" bohužel protokol neobsahuje, takže soubory cookie vytvořené přes protokol HTTPS jsou přístupné přes protokol HTTP. Atribut "secure" značí prohlížeči, že soubor cookie by měl být dostupný jenom přes protokol HTTPS. Ujistěte se, že všechny soubory cookie nastavené přes HTTPS používají atribut secure . Požadavek je možné vynutit v souboru web.config nastavením atributu requireSSL na hodnotu true. Jedná se o upřednostňovaný přístup, protože vynucuje atribut secure pro všechny aktuální a budoucí soubory cookie, aniž by bylo nutné provádět další změny kódu.

Příklad

<configuration>
  <system.web>
    <httpCookies requireSSL="true"/>
  </system.web>
</configuration>

Nastavení se vynutí i v případě, že se pro přístup k aplikaci používá protokol HTTP. Pokud se pro přístup k aplikaci používá protokol HTTP, nastavení aplikaci přeruší, protože soubory cookie jsou nastavené s atributem secure a prohlížeč je nepošla zpět do aplikace.

Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Web Forms, MVC5
Atributy EnvironmentType – OnPrem
Reference
Kroky Pokud je webová aplikace předávající stranou a idp je server ADFS, můžete atribut secure tokenu FedAuth nakonfigurovat nastavením requireSSL na True system.identityModel.services v části web.config:

Příklad

  <system.identityModel.services>
    <federationConfiguration>
      <!-- Set requireSsl=true; domain=application domain name used by FedAuth cookies (Ex: .gdinfra.com); -->
      <cookieHandler requireSsl="true" persistentSessionLifetime="0.0:20:0" />
    ....  
    </federationConfiguration>
  </system.identityModel.services>
Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference Atribut souboru cookie secure
Kroky Za účelem zmírnění rizika zpřístupnění informací prostřednictvím skriptování mezi weby (XSS) byl do souborů cookie zaveden nový atribut httpOnly, který je podporovaný všemi hlavními prohlížeči. Atribut určuje, že soubor cookie není přístupný prostřednictvím skriptu. Použitím souborů cookie HttpOnly webová aplikace snižuje možnost odcizení citlivých informací obsažených v souboru cookie pomocí skriptu a odeslání na web útočníka.

Příklad

Všechny aplikace založené na protokolu HTTP, které používají soubory cookie, by měly v definici souboru cookie zadat HttpOnly implementací následující konfigurace web.config:

<system.web>
.
.
   <httpCookies requireSSL="false" httpOnlyCookies="true"/>
.
.
</system.web>
Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie webové formuláře
Atributy
Reference FormsAuthentication.RequireSSL – vlastnost
Kroky Hodnota vlastnosti RequireSSL se nastavuje v konfiguračním souboru ASP.NET aplikace pomocí atributu requireSSL elementu configuration. V souboru Web.config pro vaši aplikaci ASP.NET můžete určit, jestli se k vrácení souboru cookie pro ověřování pomocí formulářů na server vyžaduje protokol TLS (Transport Layer Security), dříve označované jako SSL (SSL (Secure Sockets Layer)), nastavením atributu requireSSL.

Příklad

Následující příklad kódu nastaví atribut requireSSL v Web.config kódu.

<authentication mode="Forms">
  <forms loginUrl="member_login.aspx" cookieless="UseCookies" requireSSL="true"/>
</authentication>
Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie MVC5
Atributy EnvironmentType – OnPrem
Reference Windows WIF (Identity Foundation) – část II
Kroky Pokud chcete pro soubory cookie FedAuth nastavit atribut httpOnly, měla by být hodnota atributu hideFromCsript nastavená na True.

Příklad

Následující konfigurace ukazuje správnou konfiguraci:

<federatedAuthentication>
<cookieHandler mode="Custom"
                       hideFromScript="true"
                       name="FedAuth"
                       path="/"
                       requireSsl="true"
                       persistentSessionLifetime="25">
</cookieHandler>
</federatedAuthentication>

Zmírnění rizik útoků CSRF (Cross-Site Request Forgery) na ASP.NET stránkách

Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference
Kroky Padělání žádostí mezi weby (CSRF nebo XSRF) je typ útoku, ve kterém může útočník provést akce v kontextu zabezpečení navázané relace jiného uživatele na webu. Cílem je upravit nebo odstranit obsah, pokud cílový web spoléhá na přijatý požadavek výhradně na soubory cookie relace. Útočník by mohl zneužít tuto chybu zabezpečení tím, že získá jiný uživatel, který načte adresu URL pomocí příkazu z zranitelné lokality, ve které je uživatel již přihlášen. Existuje mnoho způsobů, jak útočník to udělat, například hostováním jiného webu, který načte prostředek z ohroženého serveru, nebo když uživatel klikne na odkaz. útok může být znemožněn, pokud server odešle klientovi další token, vyžaduje, aby klient tento token zahrnul do všech budoucích požadavků a ověří, že všechny budoucí požadavky obsahují token, který se vztahuje k aktuální relaci, jako je například pomocí ASP.NET AntiForgeryToken nebo ViewState.
Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie MVC5, MVC6
Atributy
Reference Prevence XSRF/CSRF v ASP.NET MVC a na webových stránkách
Kroky CSRF a ASP.NET forms MVC – použijte AntiForgeryToken pomocnou metodu pro zobrazení; vložte Html.AntiForgeryToken() do formuláře, například

Příklad

@using (Html.BeginForm("UserProfile", "SubmitUpdate")) { 
    @Html.ValidationSummary(true) 
    @Html.AntiForgeryToken()
    <fieldset> 

Příklad

<form action="/UserProfile/SubmitUpdate" method="post">
    <input name="__RequestVerificationToken" type="hidden" value="saTFWpkKN0BYazFtN6c4YbZAmsEwG0srqlUqqloi/fVgeV2ciIFVmelvzwRZpArs" />
    <!-- rest of form goes here -->
</form>

Příklad

Ve stejnou dobu HTML. AntiForgeryToken () přiřadí návštěvníkovi soubor cookie s názvem __RequestVerificationToken se stejnou hodnotou jako náhodná Skrytá hodnota uvedená výše. Dále pro ověření příchozího příspěvku formuláře přidejte filtr [ValidateAntiForgeryToken] do metody cíle akce. Například:

[ValidateAntiForgeryToken]
public ViewResult SubmitUpdate()
{
// ... etc.
}

Filtr autorizace, který kontroluje:

  • Příchozí požadavek má soubor cookie s názvem __RequestVerificationToken
  • Příchozí požadavek obsahuje položku s Request.Form názvem __RequestVerificationToken
  • Tyto soubory cookie a Request.Form hodnoty odpovídají za předpokladu, že požadavek prochází běžným způsobem. Ale v takovém případě nedošlo k chybě autorizace se zprávou "vyžadovaný token proti padělání se nezadal nebo byl neplatný".

Příklad

Anti-CSRF a AJAX: token formuláře může být problémem pro požadavky AJAX, protože požadavek AJAX může odesílat data JSON, nikoli data formuláře HTML. Jedním z řešení je odeslat tokeny ve vlastní hlavičce protokolu HTTP. Následující kód používá syntaxe Razor k vygenerování tokenů a následně přidá tokeny do požadavku AJAX.

<script>
    @functions{
        public string TokenHeaderValue()
        {
            string cookieToken, formToken;
            AntiForgery.GetTokens(null, out cookieToken, out formToken);
            return cookieToken + ":" + formToken;                
        }
    }

    $.ajax("api/values", {
        type: "post",
        contentType: "application/json",
        data: {  }, // JSON data goes here
        dataType: "json",
        headers: {
            'RequestVerificationToken': '@TokenHeaderValue()'
        }
    });
</script>

Příklad

Při zpracování žádosti extrahujte tokeny z hlavičky žádosti. Pak zavoláním metody. Validate ověřte tokeny. Metoda Validate vyvolá výjimku, pokud tokeny nejsou platné.

void ValidateRequestHeader(HttpRequestMessage request)
{
    string cookieToken = "";
    string formToken = "";

    IEnumerable<string> tokenHeaders;
    if (request.Headers.TryGetValues("RequestVerificationToken", out tokenHeaders))
    {
        string[] tokens = tokenHeaders.First().Split(':');
        if (tokens.Length == 2)
        {
            cookieToken = tokens[0].Trim();
            formToken = tokens[1].Trim();
        }
    }
    AntiForgery.Validate(cookieToken, formToken);
}
Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie webové formuláře
Atributy
Reference využijte výhod ASP.NET integrovaných funkcí k Fendí webových útoků.
Kroky Útoky CSRF v aplikacích založených na webformách je možné zmírnit nastavením ViewStateUserKey na náhodný řetězec, který se u každého uživatele změní na ID uživatele nebo je ještě lepší, ID relace. Z řady technických a sociálních důvodů je ID relace mnohem lepší, protože ID relace je nepředvídatelné, má časový limit a liší se podle jednotlivých uživatelů.

Příklad

Tady je kód, který musíte mít na všech stránkách:

void Page_Init (object sender, EventArgs e) {
   ViewStateUserKey = Session.SessionID;
   :
}

Nastavte relaci pro dobu neaktivity.

Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference HttpSessionState. Timeout – vlastnost
Kroky Časový limit relace představuje událost, když uživatel neprovede žádnou akci na webu během intervalu (definovaného webovým serverem). Událost na straně serveru mění stav uživatelské relace na neplatnou (například již nepoužito) a vydá pokyn webovému serveru, aby ho zničil (odstraní všechna data, která jsou v něm obsažená). Následující příklad kódu nastaví atribut relace Timeout na 15 minut v souboru Web.config.

Příklad

<configuration>
  <system.web>
    <sessionState mode="InProc" cookieless="true" timeout="15" />
  </system.web>
</configuration>

Povolení detekce hrozeb v Azure SQL

Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie webové formuláře
Atributy
Reference prvek Forms pro ověřování (ASP.NET Nastavení schéma)
Kroky Nastavte časový limit souboru cookie lístku pro ověřování formulářů na 15 minut.

Příklad

<forms  name=".ASPXAUTH" loginUrl="login.aspx"  defaultUrl="default.aspx" protection="All" timeout="15" path="/" requireSSL="true" slidingExpiration="true"/>
</forms>
Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Web Forms, MVC5
Atributy EnvironmentType – OnPrem
Reference asdeqa
Kroky Když je webová aplikace předávající stranou a služba AD FS je STS, doba života souborů cookie ověřování – FedAuth tokeny-lze nastavit pomocí následující konfigurace v web.config:

Příklad

  <system.identityModel.services>
    <federationConfiguration>
      <!-- Set requireSsl=true; domain=application domain name used by FedAuth cookies (Ex: .gdinfra.com); -->
      <cookieHandler requireSsl="true" persistentSessionLifetime="0.0:15:0" />
      <!-- Set requireHttps=true; -->
      <wsFederation passiveRedirectEnabled="true" issuer="http://localhost:39529/" realm="https://localhost:44302/" reply="https://localhost:44302/" requireHttps="true"/>
      <!--
      Use the code below to enable encryption-decryption of claims received from ADFS. Thumbprint value varies based on the certificate being used.
      <serviceCertificate>
        <certificateReference findValue="4FBBBA33A1D11A9022A5BF3492FF83320007686A" storeLocation="LocalMachine" storeName="My" x509FindType="FindByThumbprint" />
      </serviceCertificate>
      -->
    </federationConfiguration>
  </system.identityModel.services>

Příklad

Životnost tokenu deklarací SAML vydaných službou ADFS by měla být také nastavená na 15 minut, a to spuštěním následujícího příkazu PowerShellu na serveru ADFS:

Set-ADFSRelyingPartyTrust -TargetName "<RelyingPartyWebApp>" -ClaimsProviderName @("Active Directory") -TokenLifetime 15 -AlwaysRequireAuthentication $true

Implementace správného odhlášení z aplikace

Nadpis Podrobnosti
Komponenta Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference
Kroky Když uživatel stiskne tlačítko Odhlásit se, provede se správným odhlášením z aplikace. Po odhlášení aplikace by měla zničit uživatelskou relaci a také resetovat a nezruší hodnotu cookie relace, společně s resetováním a hodnotou souboru cookie pro ověřování nullifying. Pokud je více relací svázáno s identitou jednoho uživatele, musí být souhrnně ukončeny na straně serveru v časovém limitu nebo odhlášení. Nakonec zajistěte, aby byly funkce odhlášení k dispozici na každé stránce.

zmírnění útoků proti útokům přes CSRF (Site-to Request) na ASP.NET webových rozhraních api

Nadpis Podrobnosti
Komponenta Webové rozhraní API
Fáze SDL Sestavení
Použitelné technologie Obecné
Atributy
Reference
Kroky Padělání žádostí mezi weby (CSRF nebo XSRF) je typ útoku, ve kterém může útočník provést akce v kontextu zabezpečení navázané relace jiného uživatele na webu. Cílem je upravit nebo odstranit obsah, pokud cílový web spoléhá na přijatý požadavek výhradně na soubory cookie relace. Útočník by mohl zneužít tuto chybu zabezpečení tím, že získá jiný uživatel, který načte adresu URL pomocí příkazu z zranitelné lokality, ve které je uživatel již přihlášen. Existuje mnoho způsobů, jak útočník to udělat, například hostováním jiného webu, který načte prostředek z ohroženého serveru, nebo když uživatel klikne na odkaz. útok může být znemožněn, pokud server odešle klientovi další token, vyžaduje, aby klient tento token zahrnul do všech budoucích požadavků a ověří, že všechny budoucí požadavky obsahují token, který se vztahuje k aktuální relaci, jako je například pomocí ASP.NET AntiForgeryToken nebo ViewState.
Nadpis Podrobnosti
Komponenta Webové rozhraní API
Fáze SDL Sestavení
Použitelné technologie MVC5, MVC6
Atributy
Reference prevence útoků CSRF (Site-to Request) v ASP.NET Web API
Kroky Anti-CSRF a AJAX: token formuláře může být problémem pro požadavky AJAX, protože požadavek AJAX může odesílat data JSON, nikoli data formuláře HTML. Jedním z řešení je odeslat tokeny ve vlastní hlavičce protokolu HTTP. Následující kód používá syntaxe Razor k vygenerování tokenů a následně přidá tokeny do požadavku AJAX.

Příklad

<script>
    @functions{
        public string TokenHeaderValue()
        {
            string cookieToken, formToken;
            AntiForgery.GetTokens(null, out cookieToken, out formToken);
            return cookieToken + ":" + formToken;                
        }
    }
    $.ajax("api/values", {
        type: "post",
        contentType: "application/json",
        data: {  }, // JSON data goes here
        dataType: "json",
        headers: {
            'RequestVerificationToken': '@TokenHeaderValue()'
        }
    });
</script>

Příklad

Při zpracování žádosti extrahujte tokeny z hlavičky žádosti. Pak zavoláním metody. Validate ověřte tokeny. Metoda Validate vyvolá výjimku, pokud tokeny nejsou platné.

void ValidateRequestHeader(HttpRequestMessage request)
{
    string cookieToken = "";
    string formToken = "";

    IEnumerable<string> tokenHeaders;
    if (request.Headers.TryGetValues("RequestVerificationToken", out tokenHeaders))
    {
        string[] tokens = tokenHeaders.First().Split(':');
        if (tokens.Length == 2)
        {
            cookieToken = tokens[0].Trim();
            formToken = tokens[1].Trim();
        }
    }
    AntiForgery.Validate(cookieToken, formToken);
}

Příklad

CSRF a ASP.NET forms MVC – použijte pomocnou metodu AntiForgeryToken pro zobrazení; do formuláře vložte Html. AntiForgeryToken (), například

@using (Html.BeginForm("UserProfile", "SubmitUpdate")) { 
    @Html.ValidationSummary(true) 
    @Html.AntiForgeryToken()
    <fieldset> 
}

Příklad

V předchozím příkladu bude výstup vypadat přibližně takto:

<form action="/UserProfile/SubmitUpdate" method="post">
    <input name="__RequestVerificationToken" type="hidden" value="saTFWpkKN0BYazFtN6c4YbZAmsEwG0srqlUqqloi/fVgeV2ciIFVmelvzwRZpArs" />
    <!-- rest of form goes here -->
</form>

Příklad

Ve stejnou dobu HTML. AntiForgeryToken () přiřadí návštěvníkovi soubor cookie s názvem __RequestVerificationToken se stejnou hodnotou jako náhodná Skrytá hodnota uvedená výše. Dále pro ověření příchozího příspěvku formuláře přidejte filtr [ValidateAntiForgeryToken] do metody cíle akce. Například:

[ValidateAntiForgeryToken]
public ViewResult SubmitUpdate()
{
// ... etc.
}

Filtr autorizace, který kontroluje:

  • Příchozí požadavek má soubor cookie s názvem __RequestVerificationToken
  • Příchozí požadavek obsahuje položku s Request.Form názvem __RequestVerificationToken
  • Tyto soubory cookie a Request.Form hodnoty odpovídají za předpokladu, že požadavek prochází běžným způsobem. Ale v takovém případě nedošlo k chybě autorizace se zprávou "vyžadovaný token proti padělání se nezadal nebo byl neplatný".
Nadpis Podrobnosti
Komponenta Webové rozhraní API
Fáze SDL Sestavení
Použitelné technologie MVC5, MVC6
Atributy Zprostředkovatel identity – ADFS, zprostředkovatel identity – Azure AD
Reference Zabezpečení webového rozhraní API pomocí jednotlivých účtů a místního přihlášení ve ASP.NET Web API 2.2
Kroky Pokud je webové rozhraní API zabezpečené pomocí OAuth 2.0, očekává v hlavičce žádosti o autorizaci bearer token a udělí přístup k žádosti pouze v případě, že je token platný. Na rozdíl od ověřování na základě souborů cookie nepřipojí prohlížeče k žádostem bearer tokeny. Žádající klient musí v hlavičce požadavku explicitně připojit bearer token. Proto se ASP.NET webových rozhraní API chráněných pomocí OAuth 2.0 považují bearer tokeny za ochranu před útoky CSRF. Upozorňujeme, že pokud část aplikace MVC používá ověřování pomocí formulářů (tj. používá soubory cookie), musí webová aplikace MVC používat tokeny proti padělání.

Příklad

Webové rozhraní API musí být informováno tak, aby spoléhá pouze na bearer tokeny, a ne na soubory cookie. Můžete to provést pomocí následující konfigurace v metodě WebApiConfig.Register :

config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

Metoda SuppressDefaultHostAuthentication říká webovému rozhraní API, aby ignoroval jakékoli ověřování, ke které dojde před tím, než požadavek dosáhne kanálu webového rozhraní API, a to buď službou IIS, nebo middlewarem OWIN. Tímto způsobem můžeme webové rozhraní API omezit tak, aby se ověřuje pouze pomocí bearer tokenů.