Informații de bază despre nivelul de protecție

Informațiile de bază despre funcția nivelului de protecție sunt prezentate mai jos.

Pentru orice parte a mesajului, există trei niveluri de bază de protecție. Pentru o proprietate (oriunde apare), se specifică una dintre valorile enumerării ProtectionLevel. Aceste valori sunt enumerate mai jos, în ordinea cresterii nivelului de protecție.







Sign. Partea protejată este semnată cu o semnătură digitală. Aceasta asigură protecția părții protejate a mesajului de orice fals.

EncryptAndSign. Pentru a asigura confidențialitatea, o parte a mesajului este criptată înainte de semnare.

Cu această funcție, puteți specifica cerințe de protecție numai pentru aceste aplicații. De exemplu, antetele WS-Addressing sunt date de infrastructură și, prin urmare, ProtectionLevel nu le afectează.

Când modul de securitate este setat la Transport. întregul mesaj este protejat de un mecanism de transport. Prin urmare, stabilirea unui nivel de securitate separat pentru diferite părți ale mesajului nu are efect.

ProtectionLevel permite dezvoltatorului să stabilească un nivel minim. care trebuie să se potrivească obligatoriu. Când serviciul este implementat, legarea reală specificată în configurație poate sau nu să accepte acest nivel minim. De exemplu, în mod implicit, clasa BasicHttpBinding nu oferă securitate (deși securitatea poate fi activată). Prin urmare, utilizarea acestei clase cu un contract al cărui parametru este diferit de nici unul. va face ca o excepție să fie aruncată.

Dacă serviciul impune ca Nivelul minim de protecție pentru toate mesajele să fie Semn. client (tehnologia WCF, probabil, nu a fost creat), poate cripta și semna toate mesajele (care depășesc minimul necesar). În acest caz, WCF nu va cauza o excepție, deoarece acțiunea clientului depășește cerința minimă. Cu toate acestea, trebuie să se țină seama de faptul că aplicațiile WCF (servicii sau clienți), cu cât nu sunt protejează în mod nejustificat o parte a mesajului, și va asigura respectarea nivelului minim. Rețineți, de asemenea că, atunci când utilizați modul de transport în fluxul de mesaje poate supra-proteja ca regimul de securitate de transport, deoarece acesta nu este în măsură să ofere protecție la un nivel mai detaliat.







Dacă setarea ProtectionLevel este setată în mod explicit la Semnare sau CriptareAndSignat. Este necesar să se utilizeze o legare cu o securitate autorizată. În caz contrar, o excepție va fi aruncată.

Dacă este selectată o legare de securitate și proprietatea ProtectionLevel nu este specificată nicăieri în contract, toate datele aplicației vor fi criptate și semnate.

Dacă selectați o legare care nu permite securitatea (de exemplu, în clasa BasicHttpBinding, securitatea nu este permisă în mod implicit) și nivelul ProtectionLevel nu este setat explicit, datele aplicației nu vor fi protejate.

Dacă se folosește o legare care asigură securitate la nivelul transportului, toate datele aplicației vor fi protejate în conformitate cu capacitățile de transport.

Dacă utilizați o legare care oferă securitate la nivel de mesaj, datele aplicației vor fi protejate în conformitate cu nivelurile de securitate specificate în contract. Dacă nivelul de protecție nu este setat, toate datele aplicației din mesaje vor fi criptate și semnate.

ProtectionLevel poate fi setat la diferite nivele de domeniu. Există o ierarhie asociată scopului, care este discutată în secțiunea următoare.

La stabilirea ProtectionLevel stabilește nivelul pentru toate nivelurile din partea de sus a API-ului de mai jos. În cazul în care ProtectionLevel dat o valoare diferită la un nivel inferior, toate interfețele API se află mai jos în ierarhia sunt setate la nivelul următor (cu toate acestea, interfețele API sunt situate deasupra acestui nivel va rămâne sub influența nivelului superior). Ierarhia are forma de mai jos. Atributele la același nivel sunt peer-to-peer.







Articole similare

Trimiteți-le prietenilor: