Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure App Service beépített hitelesítést (felhasználók bejelentkezését) és engedélyezést (biztonságos adatokhoz való hozzáférést biztosító) képességeket biztosít. Ezeket a képességeket néha Egyszerű hitelesítésnek nevezik. Ezek használatával bejelentkezhet a felhasználókba, és hozzáférhet az adatokhoz úgy, hogy a webalkalmazásban, a RESTful API-ban, a mobilkiszolgálón és a függvényekben kevés vagy semmilyen kódot nem ír.
Note
2024. június 1-jétől az új App Service-alkalmazások kialakíthatnak egyedi alapértelmezett gazdagépnevet, amely az <app-name>-<random-hash>.<region>.azurewebsites.net
elnevezési konvenciót használja. Például: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
. A meglévő alkalmazásnevek változatlanok maradnak.
For more information, see the blog post about creating a web app with a unique default host name.
Ez a cikk azt ismerteti, hogyan segíti az App Service az alkalmazás hitelesítésének és engedélyezésének egyszerűsítését.
A beépített hitelesítés használatának okai
A hitelesítés és az engedélyezés implementálásához használhatja a csomagban lévő biztonsági funkciókat a választott webes keretrendszerben, vagy írhat saját eszközöket. A hitelesítés és engedélyezés biztonságos megoldásának megvalósítása jelentős erőfeszítést igényelhet. Az iparági ajánlott eljárásokat és szabványokat kell követnie. Gondoskodnia kell arról is, hogy a megoldás naprakész maradjon a legújabb biztonsági, protokoll- és böngészőfrissítésekkel.
Az App Service és az Azure Functions beépített képességei időt és energiát takaríthatnak meg azáltal, hogy beépített hitelesítést biztosítanak az összevont identitásszolgáltatókkal, így az alkalmazás többi részére összpontosíthat.
Az App Service-ben anélkül integrálhatja a hitelesítési képességeket a webalkalmazásba vagy AZ API-ba, hogy saját maga valósítja meg őket. Ez a funkció közvetlenül a platformba van beépítve, és nem igényel semmilyen nyelvet, SDK-t, biztonsági szakértelmet vagy kódot. Több bejelentkezési szolgáltatóval is integrálhatja, például a Microsoft Entra, a Facebook, a Google és az X szolgáltatással.
Előfordulhat, hogy az alkalmazásnak összetettebb forgatókönyveket kell támogatnia, például Visual Studio-integrációt vagy növekményes hozzájárulást. Ezekhez a forgatókönyvekhez számos hitelesítési megoldás érhető el. További információ: Hitelesítési forgatókönyvek és javaslatok.
Identitásszolgáltatók
Az App Service összevont identitást használ. Egy Microsoft- vagy nem Microsoft-identitásszolgáltató kezeli az Ön felhasználói identitásait és hitelesítési folyamatát. Alapértelmezés szerint a következő identitásszolgáltatók érhetők el:
Provider | Bejelentkezési végpont | Útmutató |
---|---|---|
Microsoft Entra | /.auth/login/aad |
App Service Microsoft Entra platform bejelentkezése |
/.auth/login/facebook |
App Service Facebook-bejelentkezés | |
/.auth/login/google |
App Service Google-bejelentkezés | |
X | /.auth/login/x |
App Service X-bejelentkezés |
GitHub | /.auth/login/github |
App Service GitHub-bejelentkezés |
Apple | /.auth/login/apple |
App Service-bejelentkezés Apple-bejelentkezéssel (előzetes verzió) |
Bármely OpenID Connect-szolgáltató | /.auth/login/<providerName> |
App Service OpenID Connect-bejelentkezés |
Ha ezen szolgáltatók egyikével konfigurálja ezt a funkciót, a bejelentkezési végpontja elérhető a felhasználói hitelesítéshez és a szolgáltatótól származó hitelesítési jogkivonatok érvényesítéséhez. A felhasználók számára tetszőleges számú bejelentkezési lehetőséget biztosíthat.
A beépített hitelesítés használatának szempontjai
A beépített hitelesítés engedélyezésével az alkalmazáshoz érkező összes kérés automatikusan https-ra lesz átirányítva, függetlenül attól, hogy az App Service konfigurációs beállítása kényszeríti-e a HTTPS-t. Ezt az automatikus átirányítást a V2 konfigurációban megadott beállítással requireHttps
tilthatja le. Javasoljuk azonban, hogy továbbra is használja a HTTPS-t, és győződjön meg arról, hogy a rendszer soha nem továbbít biztonsági jogkivonatokat nem biztonságos HTTP-kapcsolatokon keresztül.
Az App Service-t használhatja a webhelytartalomhoz és API-khoz való hozzáférés korlátozásával vagy anélkül történő hitelesítéshez. Hozzáférési korlátozások megadása a webalkalmazás Beállítások>hitelesítésének>beállításai szakaszában:
- Ha csak hitelesített felhasználókra szeretné korlátozni az alkalmazások hozzáférését, állítsa be a műveletet, ha a kérés nincs hitelesítve , és jelentkezzen be az egyik konfigurált identitásszolgáltatóval.
- Ha hitelesíteni szeretné, de nem korlátozná a hozzáférést, állítsa be az elvégzendő műveletet, ha a kérés nincs hitelesítve opciót Engedélyezze a névtelen kéréseket (nincs művelet).
Fontos
Az egyes alkalmazásregisztrációkhoz saját engedélyt és hozzájárulást kell adnia. Kerülje a környezetek közötti engedélymegosztást, használjon külön alkalmazásregisztrációkat a külön üzembehelyezési pontokhoz. When you're testing new code, this practice can help prevent problems from affecting the production app.
Hogyan működik?
Funkcióarchitektúra
A hitelesítési és engedélyezési köztes szoftver összetevő a platform azon funkciója, amely ugyanazon a virtuális gépen fut, mint az alkalmazás. Ha engedélyezi, minden bejövő HTTP-kérés áthalad ezen az összetevőn, mielőtt az alkalmazás kezelené.
A platform köztes szoftvere számos dolgot kezel az alkalmazáshoz:
- Felhasználók és ügyfelek hitelesítése a megadott identitásszolgáltatókkal
- Ellenőrzi, tárolja és frissíti az OAuth-jogkivonatokat, amelyeket a konfigurált identitásszolgáltatók bocsátottak ki
- A hitelesített munkamenet kezelése
- Identitásadatok beszúrása HTTP-kérelemfejlécekbe
A modul az alkalmazáskódtól külön fut. Konfigurálhatja az Azure Resource Manager beállításaival vagy egy konfigurációs fájllal. Nincs szükség SDK-kra, adott programozási nyelvekre vagy az alkalmazáskód módosítására.
Szolgáltatásarchitektúra Windows rendszeren (nem tárolóalapú üzembe helyezés)
A hitelesítési és engedélyezési modul natív IIS-modulként fut ugyanabban a tesztkörnyezetben, mint az alkalmazás. Ha engedélyezi, minden bejövő HTTP-kérés áthalad rajta, mielőtt az alkalmazás kezelené.
Funkcióarchitektúra Linuxon és tárolókon
A hitelesítési és engedélyezési modul egy külön tárolóban fut, amely elkülönítve van az alkalmazáskódtól. A modul az Ambassador minta használatával kommunikál a bejövő forgalommal a Windowshoz hasonló funkciók végrehajtásához. Mivel nem fut folyamatban, nem lehetséges a konkrét nyelvi keretrendszerekkel való közvetlen integráció. Az alkalmazás által igényelt releváns információk azonban a kérelemfejlécekben lesznek átadva.
Hitelesítési folyamat
A hitelesítési folyamat minden szolgáltató esetében ugyanaz. Ez attól függően különbözik, hogy be szeretne-e jelentkezni a szolgáltató SDK-jával:
Szolgáltatói SDK nélkül: Az alkalmazás delegáltjai összevonták a bejelentkezést az App Service-be. Ez a delegálás jellemzően a böngészőalkalmazások esetében fordul elő, amelyek a szolgáltató bejelentkezési oldalát mutatják be a felhasználónak. A kiszolgálókód kezeli a bejelentkezési folyamatot, ezért kiszolgáló által irányított folyamatnak vagy kiszolgálói folyamatnak is nevezik.
Ez az eset azokra a böngészőalkalmazásokra és mobilalkalmazásokra vonatkozik, amelyek beágyazott böngészőt használnak a hitelesítéshez.
Szolgáltató SDK-val: Az alkalmazás manuálisan jelentkezteti be a felhasználókat a szolgáltatóhoz. Ezután elküldi a hitelesítési jogkivonatot az App Service-nek ellenőrzés céljából. Ez a folyamat általában a böngésző nélküli alkalmazások esetében fordul elő, amelyek nem tudják bemutatni a szolgáltató bejelentkezési oldalát a felhasználónak. Az alkalmazáskód kezeli a bejelentkezési folyamatot, ezért ügyfél által irányított folyamatnak vagy ügyfélfolyamatnak is nevezik.
Ez az eset a REST API-kra, az Azure Functionsre és a JavaScript böngészőügyfelekre vonatkozik, azon böngészőalkalmazások mellett, amelyek nagyobb rugalmasságot igényelnek a bejelentkezési folyamat során. Azokra a natív mobilalkalmazásokra is vonatkozik, amelyek a szolgáltató SDK-ját használva jelentkeznek be a felhasználók.
Az App Service megbízható böngészőalkalmazásából egy másik REST API-ra irányuló hívások az App Service-ben vagy az Azure Functionsben a kiszolgáló által irányított folyamaton keresztül hitelesíthetők. További információ: Bejelentkezés és kijelentkezés testreszabása Azure-alkalmazás szolgáltatáshitelesítésben.
Az alábbi táblázat a hitelesítési folyamat lépéseit mutatja be.
Step | Szolgáltatói SDK nélkül | Szolgáltatói SDK-val |
---|---|---|
1. Bejelentkezés a felhasználóba | A szolgáltató átirányítja az ügyfelet a következőre /.auth/login/<provider> : . |
Client code signs in the user directly with the provider's SDK and receives an authentication token. További információkért tekintse meg a szolgáltató dokumentációját. |
2. Hitelesítés utáni magatartás | A szolgáltató átirányítja az ügyfelet a következőre /.auth/login/<provider>/callback : . |
Client code posts the token from the provider to /.auth/login/<provider> for validation. |
3. Hitelesített munkamenet létrehozása | Az App Service egy hitelesített cookie-t ad hozzá a válaszhoz. | App Service returns its own authentication token to the client code. |
4. Hitelesített tartalom kiszolgálása | Az ügyfél egy hitelesítési cookie-t is tartalmaz a későbbi kérésekben (amelyet a böngésző automatikusan kezel). | Client code presents the authentication token in the X-ZUMO-AUTH header. |
Az ügyfélböngészők esetében az App Service automatikusan átirányítja az összes hitelesítés nélküli felhasználót a következőre /.auth/login/<provider>
: . A felhasználókat egy vagy több /.auth/login/<provider>
hivatkozással is megjelenítheti az alkalmazásba való bejelentkezéshez a választott szolgáltatójuk használatával.
Engedélyezési viselkedés
Az Azure Portalon különböző viselkedésekkel konfigurálhatja az App Service-t, ha egy bejövő kérés nincs hitelesítve. A következő szakaszok ismertetik a beállításokat.
Fontos
Alapértelmezés szerint ez a funkció csak hitelesítést biztosít, nem engedélyezést. Előfordulhat, hogy az alkalmazásnak továbbra is engedélyezési döntéseket kell hoznia az itt konfigurált ellenőrzések mellett.
Erősen korlátozott hozzáférés
Hitelesítés nélküli kérések engedélyezése: Ez a beállítás letiltja az alkalmazáskódba irányuló nem hitelesített forgalom engedélyezését. Hitelesített kérések esetén az App Service a HTTP-fejlécekben található hitelesítési információkat is átadja.
Ez a beállítás nagyobb rugalmasságot biztosít a névtelen kérések kezeléséhez. Lehetővé teszi például, hogy több bejelentkezési szolgáltatót is megjelenítsen a felhasználók számára. Azonban kódot kell írnia.
Hitelesítés megkövetelése: Ez a beállítás elutasítja az alkalmazásba irányuló nem hitelesített forgalmat. A konkrét végrehajtandó műveletet a cikk későbbi, nem hitelesített kérések szakaszában adhatók meg.
Ezzel a beállítással nem kell hitelesítési kódot írnia az alkalmazásban. A felhasználó jogcímeinek vizsgálatával kezelheti a finomabb engedélyezést, például a szerepkörspecifikus engedélyezést.
Figyelemfelhívás
A hozzáférés ilyen módon való korlátozása az alkalmazás összes hívására vonatkozik, ami nem feltétlenül kívánatos olyan alkalmazások esetében, amelyek nyilvánosan elérhető kezdőlapot szeretnének, mint sok egyoldalas alkalmazásban. Ha kivételekre van szükség, konfigurálnia kell a kizárt elérési utakat egy konfigurációs fájlban.
Note
Ha a Microsoft identitásszolgáltatóját használja a szervezet felhasználói számára, az alapértelmezett viselkedés az, hogy a Microsoft Entra-bérlő bármely felhasználója tokent kérhet az alkalmazáshoz. Az alkalmazást konfigurálhatja a Microsoft Entra-ban , ha korlátozni szeretné az alkalmazáshoz való hozzáférést egy meghatározott felhasználói csoportra. Az App Service néhány alapvető beépített engedélyezési ellenőrzést is kínál, amelyek segíthetnek bizonyos ellenőrzésekkel. A Microsoft Entra engedélyezésével kapcsolatos további információkért tekintse meg a Microsoft Entra engedélyezési alapjait.
Ha a microsoftos identitásszolgáltatót használja a szervezet felhasználói számára, az alapértelmezett viselkedés az, hogy a Microsoft Entra-bérlő bármely felhasználója jogkivonatot kérhet az alkalmazáshoz. Az alkalmazást konfigurálhatja a Microsoft Entra-ban , ha korlátozni szeretné az alkalmazáshoz való hozzáférést egy meghatározott felhasználói csoportra. Az App Service néhány alapvető beépített engedélyezési ellenőrzést is kínál, amelyek segíthetnek bizonyos ellenőrzésekkel. A Microsoft Entra engedélyezésével kapcsolatos további információkért tekintse meg a Microsoft Entra engedélyezési alapjait.
Nem hitelesített kérések
-
HTTP 302 Talált átirányítás: ajánlott webhelyekhez: Átirányítja a műveletet az egyik konfigurált identitásszolgáltatóhoz. In these cases, a browser client is redirected to
/.auth/login/<provider>
for the provider that you choose. -
HTTP 401 Nem engedélyezett: API-khoz ajánlott: Választ ad
HTTP 401 Unauthorized
vissza, ha a névtelen kérés natív mobilalkalmazásból származik. Az elutasítást úgy is beállíthatja, hogy az minden kérésre vonatkozzonHTTP 401 Unauthorized
. -
HTTP 403 Tiltott: Úgy konfigurálja az elutasítást, hogy minden kéréshez legyen
HTTP 403 Forbidden
. -
HTTP 404 Nem található: Úgy konfigurálja az elutasítást, hogy minden kéréshez legyen
HTTP 404 Not found
.
Token store
Az App Service egy beépített token tárolót biztosít. A tokentár egy adattár, amely a webalkalmazások, API-k vagy natív mobilalkalmazások felhasználóihoz társított tokeneket tárolja. Ha engedélyezi a hitelesítést bármelyik szolgáltatóval, az alkalmazás azonnal hozzáférhet ehhez a token tárolóhoz.
Ha az alkalmazáskódnak a felhasználó nevében kell hozzáférnie ezektől a szolgáltatóktól származó adatokhoz, általában kódot kell írnia ezeknek a jogkivonatoknak az alkalmazáson belüli gyűjtéséhez, tárolásához és frissítéséhez. A műveletek többek között a következők lehetnek:
- Tegye közzé a hitelesített felhasználó Facebook-idővonalán.
- Olvassa el a felhasználó vállalati adatait a Microsoft Graph API használatával.
A jogkivonat-tárolóval egyszerűen lekérheti a jogkivonatokat, amikor szüksége van rájuk, és utasítja az App Service-t, hogy frissítse őket, amikor lejárnak.
Az azonosító jogkivonatok, a hozzáférési jogkivonatok és a frissítési jogkivonatok a hitelesített munkamenethez gyorsítótárban vannak. Csak a társított felhasználó érheti el őket.
Ha nem kell jogkivonatokkal dolgoznia az alkalmazásban, letilthatja a jogkivonat-tárolót az alkalmazás Beállítások>hitelesítés oldalán.
Naplózás és nyomkövetés
Ha engedélyezi az alkalmazásnaplózást, a hitelesítési és engedélyezési nyomkövetések közvetlenül megjelennek a naplófájlokban. Ha olyan hitelesítési hibát lát, amely nem várt, a meglévő alkalmazásnaplókban kényelmesen megtalálhatja az összes részletet.
Ha engedélyezi a sikertelen kérések nyomon követését, pontosan láthatja, hogy a hitelesítési és engedélyezési modul milyen szerepet játszhat egy sikertelen kérésben. A nyomkövetési naplókban keressen hivatkozásokat egy nevű EasyAuthModule_32/64
modulra.
Mitigation of cross-site request forgery
Az App Service-hitelesítés csökkenti a helyek közötti hamisítást, ha megvizsgálja az ügyfélkéréseket az alábbi feltételek teljesülése esetén:
- Ez egy
POST
munkamenet-cookie-ján keresztül hitelesített kérés. - A kérés egy ismert böngészőből származik, amelyet a HTTP-fejléc
User-Agent
határoz meg. - A HTTP
Origin
vagy a HTTPReferer
fejléc hiányzik, vagy nincs az átirányításra jóváhagyott külső domainek konfigurált listájában. - A HTTP-fejléc
Origin
hiányzik, vagy nem szerepel a több forrásból származó erőforrásmegosztás (CORS) konfigurált listájában.
Ha egy kérés teljesíti ezeket a feltételeket, az App Service-hitelesítés automatikusan elutasítja azt. Ezt a kockázatcsökkentési logikát megkerülheti úgy, hogy hozzáadja a külső tartományt az átirányítási listához a Beállítások>hitelesítése>Hitelesítési beállítások>szerkesztése engedélyezett külső átirányítási URL-címek című témakörben.
Az Azure Front Door használatának szempontjai
Ha az Azure App Service-t az Azure Front Door mögötti hitelesítéssel vagy más fordított proxykkal használja, fontolja meg az alábbi műveleteket.
Disable Azure Front Door caching
Disable Azure Front Door caching for the authentication workflow.
Az Azure Front Door-végpont használata átirányításokhoz
App Service is usually not accessible directly when it's exposed by Azure Front Door. Ezt a viselkedést megakadályozhatja például úgy, hogy felfedi az App Service-t az Azure Private Link használatával az Azure Front Door Premiumban. Ha meg szeretné akadályozni, hogy a hitelesítési munkafolyamat közvetlenül átirányítsa a forgalmat az App Service-be, fontos konfigurálnia az alkalmazást a visszairányításra https://<front-door-endpoint>/.auth/login/<provider>/callback
.
Győződjön meg arról, hogy az App Service a megfelelő átirányítási URI-t használja
Bizonyos konfigurációkban az App Service a teljes tartománynevét (FQDN) használja átirányítási URI-ként az Azure Front Door teljes tartományneve helyett. Ez a konfiguráció problémát okoz, ha az ügyfél az Azure Front Door helyett az App Service-be lesz átirányítva. A módosításhoz állítsa be a(z) forwardProxy
értéket Standard
-re, hogy az App Service tiszteletben tartsa az Azure Front Door által beállított X-Forwarded-Host
fejlécet.
Más fordított proxyk, például az Azure Application Gateway vagy a nem Microsoft-termékek eltérő fejléceket használhatnak, és más forwardProxy
beállítást igényelnek.
A konfigurációt nem módosíthatja forwardProxy
az Azure Portal használatával. A következőt kell használnia az rest
:
Exportálási beállítások
az rest --uri /subscriptions/REPLACE-ME-SUBSCRIPTIONID/resourceGroups/REPLACE-ME-RESOURCEGROUP/providers/Microsoft.Web/sites/REPLACE-ME-APPNAME/config/authsettingsV2?api-version=2020-09-01 --method get > auth.json
Frissítési beállítások
Keres:
"httpSettings": {
"forwardProxy": {
"convention": "Standard"
}
}
Ensure that convention
is set to Standard
to respect the X-Forwarded-Host
header that Azure Front Door uses.
Importálási beállítások
az rest --uri /subscriptions/REPLACE-ME-SUBSCRIPTIONID/resourceGroups/REPLACE-ME-RESOURCEGROUP/providers/Microsoft.Web/sites/REPLACE-ME-APPNAME/config/authsettingsV2?api-version=2020-09-01 --method put --body @auth.json
Kapcsolódó tartalom
További információ az App Service-hitelesítésről:
- Az App Service vagy az Azure Functions alkalmazás konfigurálása a Microsoft Entra bejelentkezési funkció használatára
- Bejelentkezés és kijelentkezés testreszabása Azure-alkalmazás Szolgáltatáshitelesítésben
- OAuth-jogkivonatok használata Azure-alkalmazás szolgáltatáshitelesítésben
- Felhasználói identitások használata az Azure App Service-hitelesítésben
- Fájlalapú konfiguráció az Azure App Service-hitelesítésben
A mintákért lásd:
- Rövid útmutató: Alkalmazáshitelesítés hozzáadása az Azure App Service-ben futó webalkalmazáshoz
- Oktatóanyag: A felhasználók teljes körű hitelesítése és engedélyezése az Azure App Service-ben
- Az Azure AppService Easy Auth .NET Core-integrációja (nem Microsoft GitHub-tartalom)
- Azure App Service-hitelesítés használata a .NET Core használatával (nem Microsoft GitHub-tartalom)