Kötések és biztonság
A Windows Communication Foundation (WCF) rendszer által biztosított kötései gyors módot kínálnak a WCF-alkalmazások programozására. Egy kivétellel az összes kötéshez engedélyezve van egy alapértelmezett biztonsági séma. Ez a témakör segítséget nyújt a biztonsági igényeknek megfelelő kötés kiválasztásában.
A WCF biztonságának áttekintéséhez tekintse meg a biztonsági áttekintést. A WCF kötések használatával történő programozásával kapcsolatos további információkért lásd: Programming WCF Security.
Ha már kiválasztott egy kötést, többet is megtudhat a biztonsági viselkedések biztonságával kapcsolatos futásidejű viselkedésekről.
Egyes biztonsági függvények nem programozhatók a rendszer által biztosított kötések használatával. Az egyéni kötések használatának további szabályozását az egyéni kötésekkel rendelkező biztonsági képességek című témakörben találhatja meg.
Kötések biztonsági funkciói
A WCF számos rendszer által biztosított kötést tartalmaz, amelyek megfelelnek a legtöbb igénynek. Ha egy adott kötés nem elegendő, egyéni kötést is létrehozhat. A rendszer által biztosított kötések listáját a Rendszer által biztosított kötések című témakörben találja. Az egyéni kötésekről további információt az Egyéni kötések című témakörben talál.
A WCF minden kötésének két formája van: API-ként és XML-elemként egy konfigurációs fájlban. Az (API)-nak például WSHttpBinding
van egy megfelelője a <wsHttpBindingben>.
Az alábbi szakasz felsorolja az egyes kötések mindkét űrlapját, és összefoglalja a biztonsági funkciókat.
Alapszintűhttp
Kódban használja az BasicHttpBinding osztályt; konfigurációban használja az <alapszintűHttpBindinget>.
Ez a kötés számos meglévő technológiához használható, beleértve a következőket:
ASP.NET webszolgáltatások (ASMX), 1. verzió.
Webszolgáltatás-fejlesztések (W Standard kiadás) alkalmazások.
Alapprofil a Web Services együttműködési (WS-I) specifikációjában (https://go.microsoft.com/fwlink/?LinkId=38955).
Alapszintű biztonsági profil a WS-I-ben meghatározottak szerint.
Alapértelmezés szerint ez a kötés nem biztonságos. Úgy tervezték, hogy együttműködjön az ASMX szolgáltatásokkal. Ha a biztonság engedélyezve van, a kötés az Internet Information Services (IIS) biztonsági mechanizmusaival való zökkenőmentes együttműködésre szolgál, például az alapszintű hitelesítésre, a kivonatolásra és az integrált Windows-biztonságra. További információ: Transport Security Overview. Ez a kötés a következőket támogatja:
HTTPS átviteli biztonság.
ALAPSZINTŰ HTTP-hitelesítés.
WS-Security.
További információ: BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialTypeés BasicHttpSecurityMode.
WSHttpBinding
A kódban használja az WSHttpBinding osztályt; konfigurációban használja a <wsHttpBinding parancsot>.
Ez a kötés alapértelmezés szerint implementálja a WS-Security specifikációt, és interoperabilitást biztosít a WS-* specifikációkat megvalósító szolgáltatásokkal. Támogatja a következőket:
HTTPS átviteli biztonság.
WS-Security.
HTTPS átviteli védelem SOAP üzenet hitelesítő adatokkal a hívó hitelesítéséhez.
További információ: WSHttpSecurity, , MessageCredentialTypeMessageSecurityOverHttp, SecurityMode, HttpTransportSecurity, HttpClientCredentialTypeés HttpProxyCredentialType.
WSDualHttpBinding
A kódban használja az WSDualHttpBinding osztályt; konfigurációban használja a <wsDualHttpBinding parancsot>.
Ez a kötés kétoldalas szolgáltatásalkalmazások engedélyezésére szolgál. Ez a kötés implementálja az üzenetalapú átvitel biztonságának WS-Security specifikációját. Az átviteli biztonság nem érhető el. Alapértelmezés szerint a következő funkciókat biztosítja:
A WS-Reliable Messaging implementálása a megbízhatóság érdekében.
A WS-Security implementálása az átviteli biztonság és a hitelesítés érdekében.
HTTP-t használ az üzenetkézbesítéshez.
Szöveg-/XML-üzenetkódolást használ.
A WS-Security (üzenetréteg-biztonság) használatával a kötés lehetővé teszi a következő paraméterek konfigurálását:
A titkosítási algoritmus meghatározására használt biztonsági algoritmuscsomag.
Kötési lehetőségek a következőkhöz:
Az ügyfélnél sávon kívül elérhető szolgáltatás hitelesítő adatainak megadása.
Szolgáltatás hitelesítő adatainak megadása a szolgáltatásból a csatornabeállítás részeként.
További információ: WSDualHttpSecurity és WSDualHttpSecurityMode.
NetTcpBinding
A kódban használja az NetTcpBinding osztályt; konfigurációban használja a <netTcpBindinget>.
Ez a kötés gépközi kommunikációra van optimalizálva. Alapértelmezés szerint a következő jellemzőkkel rendelkezik:
Átviteli rétegbeli biztonságot valósít meg.
Kihasználja a Windows biztonságát az átvitelbiztonság és a hitelesítés érdekében.
TCP-t használ az átvitelhez.
Bináris üzenetkódolás implementálása.
A WS-Reliable Messaging implementálása.
A beállítások a következők:
Üzenetréteg biztonsága (a WS-Security használatával).
Átviteli biztonság üzenet hitelesítő adatokkal – a Transport Layer Security (TLS) által TCP-n keresztül biztosított titkosság és integritás, valamint a WS-Security által biztosított hitelesítési hitelesítő adatok.
További információ: NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcpés MessageCredentialType.
NetNamedPipeBinding
A kódban használja az NetNamedPipeBinding osztályt; konfigurációban használja a <netNamedPipeBinding parancsot>.
Ez a kötés folyamatközi kommunikációra van optimalizálva (általában ugyanazon a gépen). Alapértelmezés szerint ez a kötés a következő jellemzőkkel rendelkezik:
Átviteli biztonságot használ az üzenetátvitelhez és a hitelesítéshez.
Elnevezett csöveket használ az üzenetkézbesítéshez.
Bináris üzenetkódolás implementálása.
Titkosítás és üzenetaláírás.
A beállítások a következők:
- Hitelesítés Windows-biztonsággal.
További információ: NetNamedPipeSecurity, NetNamedPipeSecurityMode és NamedPipeTransportSecurity.
MsmqIntegrationBinding
A kódban használja az MsmqIntegrationBinding osztályt; konfigurációban használja az <msmqIntegrationBinding parancsot>.
Ez a kötés olyan WCF-ügyfelek és szolgáltatások létrehozására van optimalizálva, amelyek nem WCF Microsoft Message Queuing (MSMQ) végpontokkal működnek együtt.
Ez a kötés alapértelmezés szerint átviteli biztonságot használ, és a következő biztonsági jellemzőket biztosítja:
A biztonság letiltható (Nincs).
MSMQ átviteli biztonság (Transport).
További információ: NetMsmqSecurity és NetMsmqSecurityMode.
NetMsmqBinding
A kódban használja az NetMsmqBinding osztályt; konfigurációban használja a <netMsmqBindinget>.
Ez a kötés olyan WCF-szolgáltatások létrehozásakor használható, amelyek msMQ-üzenettámogatást igényelnek.
Ez a kötés alapértelmezés szerint átviteli biztonságot használ, és a következő biztonsági jellemzőket biztosítja:
A biztonság letiltható (Nincs).
MSMQ átviteli biztonság (Transport).
SOAP-alapú üzenetbiztonság (üzenet).
Egyidejű átvitel és üzenetbiztonság (mindkettő).
Az ügyfél hitelesítő adatainak típusai támogatottak: None, Windows, UserName, Certificate, IssuedToken.
A Certificate hitelesítő adatok csak akkor támogatottak, ha a biztonsági mód vagy BothMessagea .
További információ: MessageSecurityOverMsmq és MsmqTransportSecurity.
WSFederationHttpBinding
A kódban használja az WSFederationHttpBinding osztályt; konfigurációban használja a <wsFederationHttpBinding parancsot>.
Ez a kötés alapértelmezés szerint WS-Security (üzenetréteg-biztonság) protokollt használ.
További információ: ÖsszevonásWSFederationHttpSecurity és WSFederationHttpSecurityMode.
Egyéni kötések
Ha a rendszer által biztosított kötések egyike sem felel meg a követelményeknek, egyéni kötéseket hozhat létre egyéni biztonsági kötési elemekkel. További információ: Biztonsági képességek egyéni kötésekkel.
Kötési lehetőségek
Az alábbi táblázat összefoglalja a biztonsági mód beállításában kínált funkciókat, azaz felsorolja a biztonsági mód beállításakor Transport
Message
TransportWithMessageCredential
elérhető funkciókat. Ezzel a táblázatkal megtalálhatja az alkalmazás által igényelt biztonsági funkciókat.
Beállítás | Funkciók |
---|---|
Átvitel | Kiszolgálóhitelesítés Ügyfél-hitelesítés Pont–pont biztonság Együttműködési lehetőség Hardveres gyorsítás Nagy átviteli sebesség Biztonságos tűzfal Nagy késésű alkalmazások Újratitkosítás több ugrás között |
Üzenet | Kiszolgálóhitelesítés Ügyfél-hitelesítés Teljes körű biztonság Együttműködési lehetőség Gazdag jogcímek Összevonás Többtényezős hitelesítés Egyéni jogkivonatok Közjegyzői/időbélyegző szolgáltatás Nagy késésű alkalmazások Üzenetadák megőrzése |
TransportWithMessageCredential | Kiszolgálóhitelesítés Ügyfél-hitelesítés Pont–pont biztonság Együttműködési lehetőség Hardveres gyorsítás Nagy átviteli sebesség Gazdag ügyféljogcímek Összevonás Többtényezős hitelesítés Egyéni jogkivonatok Biztonságos tűzfal Nagy késésű alkalmazások Újratitkosítás több ugrás között |
Az alábbi táblázat felsorolja a különböző módbeállításokat támogató kötéseket. Válasszon ki egy kötést a táblából a szolgáltatásvégpont létrehozásához.
Kötés | Átviteli mód támogatása | Üzenetmód támogatása | TransportWithMessageCredential támogatás |
---|---|---|---|
BasicHttpBinding |
Igen | Igen | Igen |
WSHttpBinding |
Igen | Igen | Igen |
WSDualHttpBinding |
Nem | Igen | Nem |
NetTcpBinding |
Igen | Igen | Igen |
NetNamedPipeBinding |
Igen | Nem | Nem |
NetMsmqBinding |
Igen | Igen | Nem |
MsmqIntegrationBinding |
Igen | Nem | Nem |
wsFederationHttpBinding |
Nem | Igen | Igen |
Hitelesítő adatok átvitele kötésekben
Az alábbi táblázat felsorolja azokat az ügyfél-hitelesítő adatokat, amelyek átvitelbiztonsági BasicHttpBinding
módban vagy WSHttpBinding
átvitelbiztonsági módban érhetők el.
Típus | Leírás |
---|---|
Egyik sem | Megadja, hogy az ügyfélnek nem kell hitelesítő adatokat bemutatnia. Ez egy névtelen ügyfélre fordítható. |
Alap | Alapszintű hitelesítés. További információ: RFC 2617 – HTTP-hitelesítés: Alapszintű és kivonatos hitelesítés, amely a következő címen https://go.microsoft.com/fwlink/?LinkId=84023érhető el: . |
Digest | Kivonatoló hitelesítés. További információ: RFC 2617 – HTTP-hitelesítés: Alapszintű és kivonatos hitelesítés, amely a következő címen https://go.microsoft.com/fwlink/?LinkId=84023érhető el: . |
NTLM | NT LAN Manager (NTLM) hitelesítés. |
Windows | Windows-hitelesítés. |
Tanúsítvány | Tanúsítvány használatával végzett hitelesítés. |
IssuedToken | Lehetővé teszi, hogy a szolgáltatás megkövetelje az ügyfél hitelesítését egy biztonsági jogkivonat-szolgáltatás vagy a CardSpace által kibocsátott jogkivonat használatával. További információ: Összevonási és kibocsátott jogkivonatok. |
Üzenetügyfél hitelesítő adatai kötésekben
Az alábbi táblázat felsorolja azokat az ügyfél-hitelesítő adatokat, amelyek üzenetbiztonsági módban történő kötés használatakor érhetők el.
Típus | 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 a SOAP-üzenetek cseréjét a Windows-hitelesítő adatok hitelesített környezetében. |
UserName | Lehetővé teszi, hogy a szolgáltatás megkövetelje az ügyfél hitelesítését egy felhasználónév hitelesítő adataival. Vegye figyelembe, hogy ha a biztonsági mód be van állítva TransportWithMessageCredential , a WCF nem támogatja a jelszókivonat küldését vagy a kulcsok jelszóval történő származtatását, és az ilyen kulcsok használatát az Üzenet mód biztonságához. Ezért a WCF kikényszeríti, hogy az átvitel biztonságos legyen a felhasználónév hitelesítő adatainak használatakor. |
Tanúsí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. |
IssuedToken | Lehetővé teszi, hogy a szolgáltatás biztonsági jogkivonat-szolgáltatást használjon egy egyéni jogkivonat megadásához. |