1s šim lietotājam nav pieejamas lomas. Mulsinošākais dialoglodziņš Active Directory. Kā mēs pārbaudām un kam pievēršam uzmanību

2 atbildes

atrisināms.

Pirmais puslaiks bija mana pārraudzība. Otrais puslaiks... nu, man nav vārda par to, kas bija nepareizi. Patiesībā tā nav kļūda vai nesaderība, bet gan kaut kas ļoti neērts, periodisks un grūti saprotams. Vispirms kopsavilkums un pēc tam garuma skaidrojums tiem, kam tas rūp:

Neskatoties uz kļūdas ziņojuma ieteikumiem, tā nav problēma ar konceptuālo modeli (CSDL), bet gan kolonnu kartēšanas problēma, kas periodiski ir radusies no jauna.

Konceptuāls modelis tika izveidots, izmantojot EdmxWriter, lai parsētu DbContext un tā galvenās daļas.

Pēc tam modelis tika izmantots, lai ģenerētu SQL skriptus, lai pārveidotu shēmu jaunajā datu bāzē. Viltība ir tāda, ka datu bāze ir Oracle.

Oracle ir bērns un nepieņem garus kolonnu nosaukumus. Tāpēc ģenerētie EDMX un SQL skripti bija jāmaina, lai izveidotu un kartētu konceptuālā modeļa daļas ar saīsinātiem kolonnu nosaukumiem.

Nav nekas liels. Tas darbojas labi. Tātad, kur tas viss nogāja greizi?

Oracle neatbalsta "kods vispirms". Lai gan tas tika darīts manuāli, EdmxWriter izmantošana ir uz kodu balstīta pieeja Oracle. Tāpēc, kad tika izjaukta pirmā EDMX shēma, tā bija bināra par loģisko kartēšanu. Risinājums bija uz laiku noņemt bools no maniem C# modeļiem, pievienot tos EDMX manuāli un veikt Oracle web.config kartēšanu (bool kartēšana uz NUMBER(1,0)).

Viss atkal ir burvīgi. Bet kāpēc tas nemitīgi atkārtojas?

Izstrādes procesa laikā dažādos laikos mainās daži konvencijas punkti — vai nu C#, EDMX vai Oracle. Un katru reizi, kad šķiet, ka kolonnas tika automātiski piešķirtas no jauna, man nezinot. Ja EDMX modelis tika atjaunināts no Oracle, kartējumi norādīja uz C# rekvizītiem, kas tur nebija (īsie kolonnu nosaukumi). Ja modelis tika atjaunināts no C# koda, kartējumi netika saglabāti un viņi mēģināja kartēt garus kolonnu nosaukumus, kas nebija Oracle.

Šīs pieejas problēma (pirmais hibrīda kods un modelis) ir tāda, ka, ja vēlos turpināt pārvaldīt savus modeļus un apstrādāt iestatījumus, kas nepieciešami mazu bērnu attiecībām, man jābūt ļoti uzmanīgam un jāseko līdzi EDMX faila īpašībai.

29.10.2012 Tims Springstons

Šajā rakstā es mēģināšu precizēt dažus aspektus “vismulsinošākajā AD dialoglodziņā”, kas ir cilne Deleģēšana Microsoft pārvaldības konsoles (MMC) Active Directory lietotāju un datoru papildprogrammas (dsa) objekta rekvizītu logā. .msc). Mēs apskatīsim dažādu konfigurāciju atribūtu vērtības. Iestatījumu mērķa izpratne ļaus pareizi konfigurēt lietojumprogrammas un pakalpojumus, kas AD izmanto Kerberos deleģēšanu.

Tims Springstons ( [e-pasts aizsargāts]) – vecākais servisa inženieris tehniskā palīdzība Microsoft Komerciālā tehniskā atbalsta nodaļa, kas ir atbildīga par drošību un autorizāciju

Viens no aktīvāk apspriestajiem emuāros Microsoft tehnoloģijas– autentifikācija, izmantojot Kerberos protokolu. Tas ir dīvaini, ņemot vērā, ka pati tehnoloģija un tās funkcijas kopš tās izlaišanas nav piedzīvojušas būtiskas izmaiņas Windows Server 2003. Tomēr Kerberos joprojām ir papildu dokumentācijas priekšmets.

Pastāvīgā nepieciešamība apgūt Kerberos darbības tehniskos aspektus un kļūdu rašanās iemeslus ir tāpēc, ka, lai gan pati tehnoloģija paliek nemainīga, pakalpojumi, kas to izmanto, un veidi, kā to izmanto, bieži vien ir unikāli. Tomēr tas, kas katrā scenārijā paliek nemainīgs, ir Active Directory (AD) iestatījumu nolūks un kļūdu ziņojumu nozīme.

Šajā rakstā es mēģināšu precizēt dažus aspektus “vismulsinošākajā AD dialoglodziņā”, kas ir cilne Deleģēšana Microsoft pārvaldības konsoles (MMC) Active Directory lietotāju un datoru papildprogrammas (dsa) objekta rekvizītu logā. .msc). Mēs apskatīsim dažādu konfigurāciju atribūtu vērtības. Izpratne par iestatījumu mērķi ļaus pareizi konfigurēt lietojumprogrammas un pakalpojumus, kas AD izmanto Kerberos deleģēšanu.

Vienkāršs interfeiss

Kāpēc tērēt laiku “vienkāršas” saskarnes apguvei? Ir nepieciešams iedziļināties detaļās, jo izpratne par tehnisko aspektu, kā darbojas dažādi parametri, ļaus veiksmīgāk labot kļūdas to konfigurācijā. Tāpēc sāksim ar attieksmju nozīmes izpratni. Atverot Active Directory lietotāju un datoru papildprogrammu un atverot datora konta rekvizītus, tiks parādīta cilne Deleģēšana (pieņemot, ka jūsu mežs atrodas Server 2003 funkcionālajā līmenī). Šī cilne ir parādīta 1. attēlā. Lai palīdzētu izskaidrot šīs cilnes slēdžu mērķi, 2. attēlā ir ieteikti alternatīvi nosaukumi, kurus varat tiem piešķirt.

Pirms iedziļināmies parametru nozīmē, paskaidrosim, kas ir Kerberos delegācija. Deleģēšana (saukta arī par uzdošanos vai vienkāršu deleģēšanu) ir process, kurā lietojumprogramma vai pakalpojums iegūst Kerberos biļetes, lai piekļūtu resursiem vai attālais dators lietotāja vārdā. Deleģēšanai uzticama entītija ir pakalpojuma entītija. Konts, kuras vārdā darbojas lietojumprogramma. Deleģēšana ļauj lietojumprogrammai piekļūt tikai tiem resursiem, kuriem lietotājs varētu piekļūt, un piegādāt informāciju lietotājam. Scenārija piemērs varētu būt tīmekļa serveris, kas savienojas ar sistēmu SQL serveris lai tīmekļa klientā parādītu lietotājam nepieciešamos datus.

Divas galvenās opcijas (“Neuzticieties datoram, lai deleģētu” un “Uzticieties datoram, lai deleģētu jebkādus pakalpojumus”) 1. attēlā ir pašsaprotamas. Trešā iespēja ir Kerberos ierobežotā deleģēšana (KCD), kas būtībā ir tāda pati kā vienkārša deleģēšana, bet deleģē uzdoto identitāti tikai noteiktiem pakalpojumiem vai datoriem. Šī opcija nodrošina augstāku drošības līmeni, ierobežojot uzdotā lietotāja identitātes deleģēšanas apjomu, tādējādi, ja tiek apdraudēta deleģēšanai uzticamā pakalpojuma identitāte, sekas ir ierobežotas ar iespēju piekļūt tikai tiem resursiem attālie serveri, kas tiek manuāli atlasīti ierobežotai deleģēšanai.

Ceturtā opcija 1. attēlā ļauj izmantot KCD un paplašinājumu Services for User (vai S4U). S4U paplašinājums nodrošina uzlabotas funkcijas, piemēram, protokola maiņu. Protokolu maiņa notiek, kad klients ienākošā savienojumā vispirms autentificējas ar citu protokolu, nevis Kerberos, un pēc tam pārslēdzas uz Kerberos. Detalizēts apraksts S4U ir ietverts dokumentācijā "S4U Kerberos paplašinājumu izpēte operētājsistēmā Windows Server 2003" (msdn.microsoft.com/en-us/magazine/cc188757.aspx) un "Protokola pāreja ar ierobežotu deleģēšanu tehniskajā papildinājumā" (msdn.microsoft.com/ lv/library/ff650469.aspx). Šie resursi ir paredzēti programmētājiem, nevis administratoriem, taču arī administratoram ir svarīgi saprast, kas ir S4U, kā to konfigurēt un kad to izmantot. Šim nolūkam šeit ir īss administratoram paredzēto S4U iespēju saraksts.

Informācijas iegūšana par lietotāja pilnvaru, faktiski neiegūstot šo marķieri un bez uzticamā biļešu pakalpojuma iegūšanas no uzticamā lietotāja biļešu piešķiršanas biļetes (TGT) vai piekļuves akreditācijas datiem. Pēc tam iegūto informāciju var izmantot, piemēram, atļauju pārbaudēm. Šis paplašinājums ir pazīstams kā Services-For-User-To-Self (S4U2Self).

Biļešu iegūšana, nepieprasot Kerberos pakalpojuma biļeti, nepiekļūstot akreditācijas datiem, neizturot TGT vai vispār bez autentifikācijas — pakalpojumi lietotājam starpniekserverim (S4U2Proxy).

Veiciet iepriekš minētās protokola izmaiņas. Klients, kas piekļūst uzņēmuma pakalpojumam, sākotnēji autentificējas, izmantojot citu metodi, nevis Kerberos, un S4U ļauj uzticamam pakalpojumam pārslēgt jau autentificēta lietotāja sesiju, lai izmantotu Kerberos. Šeit visbiežāk rodas kļūmes, ko izraisa konfigurācijas kļūdas, jo lietojumprogrammas dokumentācijā bieži vien nav skaidri paskaidrots, vai ir nepieciešama protokola maiņa un kā to konfigurēt AD. Tomēr šī tēma ir aktuāla, jo šodien gandrīz neviens raksts nav pilnīgs, nepieminot “mākoni”. Klienti, kas izveido savienojumu, izmantojot mākoni, visbiežāk izmantos NTLM autentifikāciju, jo trūkst domēna kontrolleru (DC), kas apstrādā Kerberos pakalpojuma biļešu pieprasījumus internetā. Mainot protokolu, šī domēna lietotājs var izveidot savienojumu, izmantojot programmatūra ugunsmūris vai starpniekserveri, izmantojot kādu no autentifikācijas metodēm (piemēram, NTLM), un pēc tam pārslēdzieties uz Kerberos autentifikāciju, lai veiktu turpmākās darbības iekšā korporatīvais tīkls. Tā kā "mākonis" nozīmē savienojumu, izmantojot internetu, varat būt drošs, ka, izmantojot jebkuru mākoņa risinājumu, agrāk vai vēlāk jūs izmantosit Kerberos protokola mainītāju.

Zem ārējā apvalka

Tagad apskatīsim, kas patiesībā notiek, kad katrs no šiem četriem parametriem tiek iestatīts, izmantojot LDP, lai apskatītu katrai konfigurācijai iestatīto atribūtu vērtības. LDP pēc noklusējuma ir instalēts ar AD domēna pakalpojumu lomu, un to var izmantot kā LDAP vaicājumu apstrādes rīku ar grafiskais interfeiss. LDP ļauj jums izveidot savus LDAP vaicājumus un skatīt rezultātus viegli lasāmā formātā. Papildu ieguvums, izmantojot LDP, lai skatītu atribūtu vērtības (piemēram, userAccountControl), ir tas, ka tā pārvērš aprēķinātās parametru vērtības cilvēkam lasāmā formā, nevis skaitļu kombinācijā. Starp citu, arī jaunākās adsiedit.msc versijas nodrošina līdzīgu aprēķināto parametru vērtību apstrādi.

Tāpēc operētājsistēmā Windows Server 2008 un jaunākās versijās ldp.exe un adsiedit.msc nodrošina automātisku atribūtu vērtību tulkošanu (piemēram, userAccountControl), novēršot nepieciešamību atvērt calc.exe un meklēt tiešsaistes MSDN dokumentāciju vai Microsoft zināšanu bāzi.

Tagad apskatīsim atribūtu vērtību maiņas LDP atkarībā no veiktajiem iestatījumiem. Sāksim ar kontu, kas nav uzticams deleģēšanai. 3. attēlā parādīts, ka Test2 konts nav uzticams un ka atribūta userAccountControl heksadecimālā vērtība 1020 (atbilst decimālskaitlim 4128) tiek pārtulkota uz WORKSTATION_TRUST_ACCOUNT un PASSWD_NOTREQD.

4. attēlā parādīts konts, kas ir uzticams deleģēšanai. Var redzēt, ka atribūta userAccountControl vērtība ir tulkota uz TRUSTED_FOR_DELEGATION, kas norāda, ka šai pakalpojuma identitātei ir atļauta vienkārša neierobežota Kerberos deleģēšana.

Uzticieties deleģēšanai konkrētiem pakalpojumiem

Šie iestatījumi ir ļoti svarīgi, ja plānojat izmantot S4U vai KCD. Pirmais gadījums atbilst Trust this option izvēlei dators priekš deleģēšana tikai noteiktiem pakalpojumiem un izmantot tikai Kerberos. 5. attēlā parādīts, ka ar šo atlasi atribūts userAccountControl atkal ir iestatīts uz WORKSTATION_TRUST_ACCOUNT un atribūts MsDS-AllowedToDelegateTo tiek automātiski aizpildīts ar atlasītajiem pakalpojumiem, kuriem ir atļauts deleģēt. Šis atribūts nav aizpildīts un to neietekmē neviena cita procedūra. Ierakstos ir uzskaitīti konkrēti pakalpojumi datorā, kuriem ir iespējota deleģēšana.

Otrā iespēja ir mazāk droša – izmantojiet jebkuru autentifikācijas protokolu, kas ļauj mainīt protokolu un citas paplašinājuma iespējas. Papildus atribūta MsDS-AllowedToDelegateTo ierakstiem šis iestatījums maina atribūtu userAccountControl, kas saņem TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION (T2A4D), kā parādīts 6. attēlā. Bez karoga T2A4D var rasties protokola maiņas kļūda. Šo karogu neizmanto neviens cits komponents. Ņemiet vērā, ka šis vienkāršais slēdzis ir ārkārtīgi svarīgs, jo, ja tas nav atlasīts, S4U2Self, S4U2Proxy un protokola maiņa darbosies atšķirīgi, kas var radīt problēmas lietojumprogrammām un pakalpojumiem, kas sagaida atbilstošos biļešu veidus. Jo īpaši neizdosies mainīt protokolu, un biļete netiks izsniegta. S4U2Proxy un S4U2Self nebūs pārsūtāmā karoga, kas radīs kļūdu: S4U2Proxy - jebkurā gadījumā un S4U2Self - situācijās, kad jums ir jānosūta biļete uz citu pakalpojumu vai mezglu.

"Dari pats"

Kas notiek, ja pakalpojuma kontam, ko izmanto lietojumprogramma vai pakalpojums, ir jāveic darbība, kurai nepieciešama protokola maiņa, un cilne Delegācija ir iestatīta uz Lietot tikai Kerberos, nevis Izmantot jebkuru autentifikācijas protokola autentifikāciju")? Klienta lietojumprogrammai kļūda var būt: Piekļuves forma Tiek liegta, mēģinot piekļūt resursiem tīklā, vai var rasties NTLM autentifikācijas kļūda bez paziņojuma vai neparedzēta no lietojumprogrammas atkarīga kļūda. Nenoteiktība par to, kādā veidā kļūda izpaudīsies, vēl vairāk sarežģī uzdevumu. Tomēr visticamākais rezultāts būs piekļuve liegta. Šādā situācijā noteikti izskatiet pieteikumu vai pakalpojuma dokumentāciju, lai redzētu, vai tajā ir norādīts, ka tiks veiktas protokola izmaiņas vai biļešu pieprasījumi no pakalpojuma bez TGT. Problēma ir tā, ka lielākā daļa dokumentācijas autoru īsti neizprot KCD konfigurācijas nozīmi un tāpēc sniedz maz vai vispār nesniedz paskaidrojumus.

“dari pats” metode kļūdas cēloņa noteikšanai būtu vienkārši vākt tīkla izsekošanas datus no deleģēšanai uzticama servera. Filtrējiet savāktos datus, izmantojot Kerberos (Kerberosv5 programmā Microsoft Network Monitor vai kerberos programmā Wireshark). Biļešu izdošanas pakalpojuma pieprasījums (TGS_REQ) tiek nosūtīts uz AD Kerberos izplatīšanas centru (KDC), un tajā ir ietverti KDC parametri ar iestatīto ierobežoto deleģēšanas karogu. Ja biļete tiek atteikta, servera atbildē (TGS_REP) būs kļūda KDC_ERR_BAD_OPTION, ko var viegli redzēt tīkla izsekošanas rezultātos.

Vairāk Detalizēta informācija Microsoft Kerberos implementāciju darbību var atrast tiešsaistes atvērto protokolu specifikācijā. "Kerberos Protocol Extensions" (msdn.microsoft.com/en-us/library/cc233855%28v=PROT.13%29.aspx) satur vispārīgu Kerberos dokumentāciju un Kerberos protokola paplašinājumus: pakalpojumu lietotājam un ierobežotas deleģēšanas protokola specifikāciju. » (msdn.microsoft.com/en-us/library/cc246071%28v=PROT.13%29.aspx) — dokumentācija par Kerberos un S4U ierobežoto deleģēšanu.

Perfekta pasaule

Es ceru, ka šī Kerberos interfeisa loga iestatījumu analīze un to atbilstība AD palīdzēs jums labāk izprast to nozīmi. Ideāla pasaule būtu tāda, kurā pārvaldīto pakalpojumu dokumentācija sniegtu tehniskus norādījumus par to darbību. pareizs iestatījums autentifikācijai. Tomēr, ja realitāte nav ideāla, šai informācijai vajadzētu palīdzēt uzlabot jūsu rīku komplektu. Izpratne par parametru darbības tehnisko aspektu būs panākumu atslēga.



Vietnes, lietojumprogrammas, spēles ir informācijas resursi, kurus pārvalda lietotāji. Lai atdalītu atļautās un aizliegtās darbības konkrētam lietotājam, tiek izmantotas piekļuves tiesības (AP). PD formu lomu piemērošanas joma. Piemēram, apskatīsim pamata vietni ar reģistrācijas iespējām.

Šādā vietnē “dzīvo” 3 lomas ar savām tiesībām un pienākumiem:

1.

Visi anonīmie lietotāji šajā lomā darbojas pēc noklusējuma. Ja vietnes viesiem piešķirsim tiesības “Pievienot komentārus”, lietotājs, kurš apmeklē vietni, varēs komentēt jūsu interesējošās lietas. Ja nē, jums vispirms būs jāreģistrējas, lai komentētu saturu.

2.

Saņem anonīmas personas, kuras ir nokārtojušas autentifikāciju un autorizāciju jauna loma. Var pārvaldīt tikai pilnvaroti lietotāji personīgais konts, pievienot un rediģēt personas datus, skatīt informāciju par citām rakstzīmēm. Nereģistrēti lietotāji nav tiesīgi veikt šīs darbības.

3. Administrators

Šī noklusējuma loma nodrošina lietotājam pilnīgu piekļuvi vietnei. Resursu administrators pievieno un dzēš blokus un piešķir vai atņem citiem lietotājiem tiesības piekļūt noteiktai funkcionalitātei.

Kā mēs pārbaudām un kam pievēršam uzmanību?

Pirmkārt, mēs centīsimies neizdzēst “Super Admin”, spēlējoties ar iestatījumiem.

  • Droša rakstura veidošana

Lai tuvinātu reālām projekta aktivitātēm, pietiks ar papildu lietotāju ar līdzīgām administratora pilnvarām. Un ar šo varoni mēs pārbaudām resursu un mainām citu lietotāju piekļuves tiesības.

  • Pārbaude vairākās pārlūkprogrammās

Mēs to darām vienlaikus: vienā mainām PD, otrā pārbaudām tiesību pielietojumu lietotājam, tādējādi atdalot lietotāju sesijas.

  • Izpildiet tiešo saiti

Mēs pārbaudām bloķēšanas ierobežojumus, pārejot uz tiem, izmantojot tiešo URL. Dažu resursu datu skatīšana nedrīkst būt pieejama, izmantojot saiti nesankcionētam vietnes viesim. Ja piekļuve ir ierobežota, tad viss ir ok: klasificētas informācijas vietā anonīmie lietotāji saņems brīdinājuma ziņojumu īpašas lapas veidā, visbiežāk ar kodu 403.

  • Testēšanas entītijas bloķēšana

Tādiem resursiem kā biļešu iegāde un ceļojumu pakalpojumi ir svarīgi bloķēt elementu, ja tam var piekļūt vienlaikus vairāki lietotāji. Ir divas bloķēšanas iespējas:

+ Optimistiska bloķēšana saglabājot, pārbauda datu bāzē vairāk jauna versija dati, ko atstājis cits lietotājs. Ja eksistē, tad pašreizējais lietotājs atkārtotas lejupielādes šī kopija būtība.

+ Pesimistiska bloķēšana Entītijas tiek izmantotas, ja optimistisks rada pārāk daudz sadursmju. Šajā gadījumā tikai viens lietotājs pašlaik izmanto un maina šo entītijas versiju.

Varat pārbaudīt no viena datora vairākās pārlūkprogrammās vai ar dažādiem kontiem.

  • Izmantojot testa matricu

Tas vienkāršo testētāja darbu, skaidri parāda atļautās un aizliegtās darbības un vienkārši palīdz neko nepalaist garām. Mēs tajā aprakstām visas mūsu varoņu lomas, lietotājus, ierobežojumu variācijas.

Un šeit ir vienkāršākais testa matricas piemērs:

Piekļuves kontrole ir viena no galvenajām pārbaudēm . Pat vietējās bibliotēkas tīmekļa vietnes testēšana ar trim lomām testētājam rada izaicinājumus. Taču populāriem resursiem ar desmitiem lomu, tūkstošiem lietotāju un miljoniem atļauju ir nepieciešama visa administratoru armija! Mums ir grūti iedomāties bojājumu apmērus, ja amatieris uzņemas testēšanu. Noalgojiet kompetentus speciālistus un izvairieties no trūkumiem savu produktu drošībā!