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.
A Windows Communication Foundation (WCF) biztonsága három fő funkcionális területre oszlik: a biztonság átvitele, a hozzáférés-vezérlés és a naplózás. Az átviteli biztonság integritást, bizalmasságot és hitelesítést biztosít. Az átvitel biztonságát az alábbiak egyike biztosítja: átviteli biztonság, üzenetbiztonság vagy TransportWithMessageCredential.
A WCF-üzenetek biztonságának áttekintését a Biztonsági áttekintés című témakörben tekintheti meg. A WCF biztonságának másik két részével kapcsolatos további információkért lásd: Engedélyezés és naplózás.
Átviteli biztonsági forgatókönyvek
A WCF átviteli biztonságát alkalmazó gyakori forgatókönyvek a következők:
Biztonságos átvitel a Windows használatával. A WCF-ügyfél és -szolgáltatás windowsos tartományban (vagy Windows-erdőben) van üzembe helyezve. Az üzenetek személyes adatokat tartalmaznak, ezért a követelmények közé tartozik az ügyfél és a szolgáltatás kölcsönös hitelesítése, az üzenetek integritása és az üzenetek bizalmassága. Emellett igazolni kell, hogy egy adott tranzakció történt, például az üzenet fogadójának rögzítenie kell az aláírási adatokat.
Biztonságos átvitel a
UserNameés a HTTPS használatával. A WCF-ügyfelet és -szolgáltatást az interneten keresztüli munkavégzéshez kell fejleszteni. Az ügyfél hitelesítő adatai felhasználónevek/jelszópárok adatbázisán hitelesíthetők. A szolgáltatás egy HTTPS-címen van üzembe helyezve egy megbízható Secure Sockets Layer (SSL) tanúsítvánnyal. Mivel az üzenetek az interneten keresztül utaznak, az ügyfelet és a szolgáltatást kölcsönösen hitelesíteni kell, és az üzenetek bizalmasságát és integritását meg kell őrizni az átvitel során.Biztonságos átvitel tanúsítványok használatával. Egy WCF-ügyfelet és -szolgáltatást kell fejleszteni a nyilvános interneten keresztüli munkavégzéshez. Az ügyfél és a szolgáltatás egyaránt rendelkezik az üzenetek védelmére használható tanúsítványokkal. Az ügyfél és a szolgáltatás az interneten keresztül kommunikál egymással, és olyan nagy értékű tranzakciókat hajt végre, amelyek üzenetintegritást, bizalmasságot és kölcsönös hitelesítést igényelnek.
Integritás, bizalmasság és hitelesítés
Három függvényt – az integritást, a titkosságot és a hitelesítést – együttesen átviteli biztonságnak nevezünk. Az átviteli biztonság biztosítja azokat a funkciókat, amelyek segítenek enyhíteni az elosztott alkalmazást fenyegető veszélyeket. Az alábbi táblázat röviden ismerteti az átviteli biztonságot alkotó három függvényt.
| Funkció | Leírás |
|---|---|
| Integritás | Az integritás a garancia arra, hogy az adatok teljesek és pontosak, különösen azután, hogy átjárták azokat egyik pontról a másikra, és valószínűleg sok szereplő olvasta. Az integritást meg kell őrizni az adatok illetéktelen befolyásolásának megakadályozása érdekében, és általában egy üzenet digitális aláírásával érhető el. |
| Titoktartás | A bizalmasság azt a biztosítékot nyújtja, hogy a kívánt olvasón kívül senki nem olvasta el az üzenetet. Egy hitelkártyaszámot például bizalmasan kell kezelni, mivel az interneten keresztül kerül elküldésre. A titkosságot gyakran az adatok nyilvános kulcs/titkos kulcssémával történő titkosítása biztosítja. |
| Hitelesítés | A hitelesítés az igényelt identitás ellenőrzése. Ha például bankszámlát használ, elengedhetetlen, hogy csak a számla tényleges tulajdonosa vonhasson be pénzt. A hitelesítés többféle módon is biztosítható. Az egyik gyakori módszer a felhasználó/jelszó rendszer. A második egy harmadik fél által biztosított X.509-tanúsítvány használata. |
Biztonsági módok
A WCF többféle átviteli biztonsági móddal rendelkezik, amelyeket az alábbi táblázat ismertet.
| Üzemmód | Leírás |
|---|---|
| Egyik sem | Az átviteli rétegben vagy az üzenetrétegben nincs biztonsági beállítás. Az előre definiált kötések egyike sem használja alapértelmezés szerint ezt a módot, kivéve az <alapszintűHttpBinding> elemet, vagy kód használatakor az osztályt BasicHttpBinding . |
| Szállítás | Biztonságos átvitelt, például HTTPS-t használ az integritás, a bizalmasság és a kölcsönös hitelesítés érdekében. |
| Üzenet | A SOAP-üzenet biztonságát használja az integritás, a bizalmasság és a kölcsönös hitelesítés érdekében. A SOAP-üzenetek a WS-Security szabványnak megfelelően vannak védve. |
| Vegyes mód | Átviteli biztonságot használ az integritás, a bizalmasság és a kiszolgálóhitelesítés érdekében. Üzenetbiztonságot (WS-Security és egyéb szabványokat) használ az ügyfél-hitelesítéshez. Ennek a módnak az enumerációja TransportWithMessageCredential. |
| Mindkettő | Mindkét szinten végez védelmet és hitelesítést. Ez a mód csak a <netMsmqBinding> elemben érhető el. |
Hitelesítő adatok és az átvitel biztonsága
A hitelesítő adatok olyan adatok, amelyek egy igényelt identitás vagy képességek létrehozásához jelennek meg. A hitelesítő adatok bemutatása magában foglalja az adatok bemutatását és az adatok birtoklásának igazolását. A WCF számos hitelesítő adattípust támogat mind az átviteli, mind az üzenetbiztonsági szinten. A WCF-kötéshez megadhatja a hitelesítő adatok típusát.
Számos országban vagy régióban a jogosítvány példa a hitelesítő adatokra. A licencek az identitást és képességeket képviselő adatokat tartalmaznak. Ez a birtokos képe formájában tartalmazza a birtoklás igazolását. A licencet egy megbízható hatóság, általában egy kormányzati licencelési részleg adja ki. A licenc lezárt, és tartalmazhat egy hologramot, amely azt mutatja, hogy nem módosították vagy hamisították.
Vegyük például a WCF által támogatott hitelesítő adatok két típusát: a felhasználónevet és az (X.509) tanúsítvány hitelesítő adatait.
A felhasználónév hitelesítő adatainál a felhasználónév az igényelt identitást jelöli, a jelszó pedig a birtoklás igazolását. Ebben az esetben a megbízható szolgáltató az a rendszer, amely ellenőrzi a felhasználónevet és a jelszót.
A tanúsítvány hitelesítő adataiban a tulajdonos neve, a tulajdonos alternatív neve vagy a tanúsítvány adott mezői használhatók az igényelt identitás és/vagy képességek megjelenítésére. A hitelesítő adatok birtoklásának igazolása a társított titkos kulcs használatával történik aláírás létrehozásához.
További információ a programozási átvitel biztonságáról és a hitelesítő adatok megadásáról: Kötések, biztonsági és biztonsági viselkedések.
Átviteli ügyfél hitelesítő adatainak típusai
Az alábbi táblázat az átviteli biztonságot használó alkalmazások létrehozásakor használt lehetséges értékeket mutatja be. Ezeket az értékeket kód- vagy kötésbeállításokban is használhatja.
| Beállítás | Leírás |
|---|---|
| Egyik sem | Megadja, hogy az ügyfélnek nem kell hitelesítő adatokat bemutatnia. Ez egy névtelen ügyfélre fordítható. |
| Alapszintű | Alapszintű hitelesítést ad meg. További információ: RFC2617: "HTTP-hitelesítés: Alapszintű és kivonatoló hitelesítés". |
| Összefoglaló | Kivonatos hitelesítést ad meg. További információ: RFC2617: "HTTP-hitelesítés: Alapszintű és kivonatoló hitelesítés". |
| Ntlm | Windows-hitelesítést ad meg SSPI-egyeztetéssel egy Windows-tartományban. Az SSPI-egyeztetés a Kerberos protokoll vagy az NT LanMan (NTLM) használatát eredményezi. |
| Windows | A Windows-tartományon futó SSPI használatával történő Windows-hitelesítést adja meg. Az SSPI a Kerberos protokollból vagy az NTLM-ből választ hitelesítési szolgáltatásként. Az SSPI először a Kerberos protokollt próbálja meg; ha ez nem sikerül, akkor az NTLM-et használ. |
| Bizonyítvány | Az ügyfélhitelesítést általában X.509-tanúsítvánnyal hajtja végre. |
Üzenetügyfél hitelesítő adatainak típusai
Az alábbi táblázat az üzenetbiztonságot használó alkalmazások létrehozásakor használt lehetséges értékeket mutatja be. Ezeket az értékeket kód- vagy kötésbeállításokban is használhatja.
| Beállítás | Leírás |
|---|---|
| Egyik sem | Lehetővé teszi a szolgáltatás számára a névtelen ügyfelekkel való interakciót. |
| Windows | Lehetővé teszi, hogy a SOAP-üzenetek cseréje windowsos hitelesítő adatok hitelesített környezetében történjen. SSPI-egyeztetési mechanizmussal választhat a Kerberos-protokollból vagy az NTLM-ből hitelesítési szolgáltatásként. |
| Felhasználónév | Lehetővé teszi a szolgáltatás számára, hogy megkövetelje az ügyfél hitelesítését felhasználónév hitelesítő adatokkal. Vegye figyelembe, hogy a WCF nem engedélyezi a felhasználónévvel rendelkező titkosítási műveleteket, például aláírást vagy titkosítási adatokat. Ezért a WCF kikényszeríti, hogy az átvitel biztonságos legyen a felhasználónév hitelesítő adatainak használatakor. |
| Bizonyítvány | Lehetővé teszi, hogy a szolgáltatás megkövetelje az ügyfél hitelesítését tanúsítvány használatával. |
| CardSpace | Lehetővé teszi a szolgáltatás számára, hogy megkövetelje az ügyfél hitelesítését egy CardSpace használatával. |
Programozási hitelesítő adatok
A WCF programozási modell minden ügyfél-hitelesítő adattípus esetében lehetővé teszi a hitelesítő adatok értékeinek és hitelesítőadat-érvényesítőinek megadását szolgáltatás- és csatornaviselkedések használatával.
A WCF-biztonság kétféle hitelesítő adattal rendelkezik: a szolgáltatás hitelesítő adatainak viselkedése és a csatorna hitelesítő adatainak viselkedése. A WCF hitelesítő viselkedése határozza meg a tényleges adatokat, nevezetesen a kötéseken keresztül kifejezett biztonsági követelmények teljesítéséhez használt hitelesítő adatokat. A WCF-ben az ügyfélosztály az a futtatókörnyezeti összetevő, amely a művelethívás és az üzenetek között konvertálódik. Minden ügyfél örököl az ClientBase<TChannel> osztálytól. Az ClientCredentials alaposztály tulajdonsága lehetővé teszi az ügyfél hitelesítő adatainak különböző értékeinek megadását.
A WCF-ben a szolgáltatás viselkedését a szolgáltatásszerződést (interfészt) megvalósító osztályra alkalmazott attribútumok szabályozzák a szolgáltatást programozott módon. Az ServiceCredentials osztály lehetővé teszi a különböző ügyfél-hitelesítő adatok tanúsítványainak és ügyfélérvényesítési beállításainak megadását.
Az üzenetbiztonság tárgyalási modellje
Az üzenetbiztonsági mód lehetővé teszi az átvitel biztonságát, hogy a szolgáltatás hitelesítő adatai sávon kívül konfigurálva legyen az ügyfélnél. Ha például a Windows tanúsítványtárolóban tárolt tanúsítványt használ, akkor olyan eszközt kell használnia, mint a Microsoft Management Console (MMC) beépülő modul.
Az üzenetbiztonsági mód lehetővé teszi az átvitel biztonságát is, hogy a szolgáltatás hitelesítő adatai egy kezdeti egyeztetés részeként kicserélődjenek az ügyféllel. Az egyeztetés engedélyezéséhez állítsa a NegotiateServiceCredential tulajdonságot true értékre.