A HTTP-hitelesítés ismertetése
A hitelesítés az ügyfél azonosításának folyamata, általában annak megállapítására, hogy az ügyfél jogosult-e hozzáférni egy erőforráshoz. A HTTP protokoll támogatja a hitelesítést a biztonságos erőforráshoz való hozzáférés egyeztetésének eszközeként.
Az ügyfél kezdeti kérése általában névtelen kérés, amely nem tartalmaz hitelesítési adatokat. A HTTP-kiszolgálóalkalmazások megtagadhatják a névtelen kérést, és jelezhetik, hogy hitelesítésre van szükség. A kiszolgálóalkalmazás www-authentication fejléceket küld a támogatott hitelesítési sémák jelzésére. Ez a cikk a HTTP számos hitelesítési sémáját ismerteti, és ismerteti a Windows Communication Foundation (WCF) által nyújtott támogatásukat.
HTTP-hitelesítési sémák
A kiszolgáló több hitelesítési sémát is megadhat az ügyfél számára, amelyek közül választhat. Az alábbi táblázat a Windows-alkalmazásokban gyakran használt hitelesítési sémákat ismerteti:
Hitelesítési séma | Leírás |
---|---|
Névtelen | A névtelen kérések nem tartalmaznak hitelesítési adatokat. A névtelen név egyenértékű azzal, hogy mindenki számára hozzáférést biztosít az erőforráshoz. |
Alap | Az alapszintű hitelesítés egy Base64 kódolású sztringet küld, amely az ügyfél felhasználónevet és jelszót tartalmaz. A Base64 nem a titkosítás egyik formája, és ugyanúgy kell tekinteni, mint a felhasználónév és a jelszó egyértelmű szövegben való elküldésével. Ha egy erőforrást védeni kell, fontolja meg az alapszintű hitelesítésen kívüli hitelesítési sémák használatát. |
Digest | A kivonatoló hitelesítés egy kihívás-válasz séma, amely az alapszintű hitelesítés lecserélésére szolgál. A kiszolgáló feladatként egy véletlenszerű, nonce nevű adatsztringet küld az ügyfélnek. Az ügyfél egy kivonattal válaszol, amely tartalmazza a felhasználónevet, a jelszót és a nem szavatos adatokat a további információk között. Az exchange összetettsége és az adatkivonatolás megnehezíti a felhasználó hitelesítő adatainak ellopását és újrafelhasználását ezzel a hitelesítési sémával. A kivonatoló hitelesítéshez Windows-tartományi fiókokra van szükség. A kivonatoló tartomány a Windows-tartománynév. Ezért nem használhat olyan operációs rendszeren futó kiszolgálót, amely nem támogatja a Windows-tartományokat, például a Windows XP Home Editiont kivonatoló hitelesítéssel. Ezzel szemben, ha az ügyfél olyan operációs rendszeren fut, amely nem támogatja a Windows-tartományokat, a hitelesítés során explicit módon meg kell adni egy tartományi fiókot. |
NTLM | Az NT LAN Manager (NTLM) hitelesítés egy kihívás-válasz séma, amely a Kivonatoló hitelesítés biztonságosabb változata. Az NTLM Windows-hitelesítő adatokkal alakítja át a feladatadatokat a nem kódolt felhasználónév és jelszó helyett. Az NTLM-hitelesítéshez több cserére van szükség az ügyfél és a kiszolgáló között. A kiszolgálónak és a beavatkozó proxyknak támogatniuk kell az állandó kapcsolatokat a hitelesítés sikeres befejezéséhez. |
Tárgyalni | A hitelesítés egyeztetése automatikusan kiválasztódik a Kerberos-protokoll és az NTLM-hitelesítés között a rendelkezésre állástól függően. A Kerberos-protokollt akkor használja a rendszer, ha elérhető; ellenkező esetben a rendszer megpróbálja az NTLM-et. A Kerberos-hitelesítés jelentősen javítja az NTLM-et. A Kerberos-hitelesítés gyorsabb, mint az NTLM, és lehetővé teszi a kölcsönös hitelesítést és a hitelesítő adatok távoli gépekre történő delegálását. |
Windows Live ID | Az alapul szolgáló Windows HTTP szolgáltatás összevont protokollokat használó hitelesítést is tartalmaz. A WCF-ben a szabványos HTTP-átvitelek azonban nem támogatják az összevont hitelesítési sémák, például a Microsoft Windows Live ID használatát. A funkció támogatása jelenleg az üzenetbiztonság használatával érhető el. További információ: Összevonási és kibocsátott jogkivonatok. |
Hitelesítési séma kiválasztása
A HTTP-kiszolgáló lehetséges hitelesítési sémáinak kiválasztásakor néhány megfontolandó elem az alábbiakat foglalja magában:
Fontolja meg, hogy az erőforrást védeni kell-e. A HTTP-hitelesítés használatához több adat továbbítására van szükség, és korlátozhatja az ügyfelekkel való együttműködést. Névtelen hozzáférés engedélyezése olyan erőforrásokhoz, amelyeket nem kell védeni.
Ha az erőforrást védeni kell, fontolja meg, hogy mely hitelesítési sémák biztosítják a szükséges biztonsági szintet. Az itt tárgyalt leggyengébb standard hitelesítési séma az alapszintű hitelesítés. Az alapszintű hitelesítés nem védi a felhasználó hitelesítő adatait. A legerősebb szabványos hitelesítési séma az Egyeztetés hitelesítés, amely a Kerberos protokollt eredményezi.
A kiszolgálónak nem szabad például a WWW-Authentication fejléceiben szerepelnie), az olyan sémáknak, amelyeket nem hajlandó elfogadni, vagy amelyek nem biztosítják megfelelően a védett erőforrást. Az ügyfelek szabadon választhatnak a kiszolgáló által megadott hitelesítési sémák közül. Egyes ügyfelek alapértelmezés szerint gyenge hitelesítési sémát vagy a kiszolgáló listában szereplő első hitelesítési sémát használják.