1 s pirms šī lietotāja nav pieejamas lomas. Mulsinošākais dialoglodziņš Active Directory

29.10.2012 Tims Springstons

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

Tims Springstons ( [aizsargāts ar e-pastu]) - 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

Viena no aktīvāk apspriestajām Microsoft tehnoloģijām emuāros ir Kerberos autentifikācija. Tas ir dīvaini, ņemot vērā, ka pati tehnoloģija un tās funkcijas kopš tās izlaišanas nav būtiski mainījušās. Windows Server 2003. Tomēr Kerberos joprojām ir papildu dokumentācijas priekšmets.

Pastāvīgi ir jāmācās par Kerberos tehniskajiem aspektiem un kļūdu pamatcēloņiem, jo, lai gan pati tehnoloģija paliek nemainīga, pakalpojumi, kas to izmanto, un veids, kādā tā tiek lietota, bieži ir unikāli. Tomēr katrā scenārijā Active Directory (AD) iestatījumu mērķis un kļūdu ziņojumu nozīme paliek nemainīga.

Šajā rakstā es mēģināšu precizēt dažus aspektus “vismulsinošākajā AD dialoglodziņā”, kas ir cilne Delegācija Microsoft pārvaldības konsoles (MMC) Active Directory lietotāju un datoru papildprogrammas objekta rekvizītu logā ( dsa.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 AD lietojumprogrammas un pakalpojumus, kas 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 dažādu parametru darbības tehnisko aspektu ļaus veiksmīgāk labot kļūdas to uzstādīšanā. Tāpēc sāksim ar attieksmju nozīmes apzināšanu. Atverot Active Directory lietotāju un datoru papildprogrammu un pārejot uz datora konta rekvizītiem, 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 precizētu šīs cilnes slēdžu mērķi, 2. attēlā ir ieteikti alternatīvi nosaukumi, ko tiem piešķirt.

Pirms iedziļināties 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ģētā persona ir pakalpojums 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 ir tīmekļa serveris, kas izveido savienojumu ar SQL Server sistēmu, lai tīmekļa klientā parādītu datus, ko lietotājs vēlas.

Divas galvenās opcijas (“Neuzticieties datoram deleģēšanai” un “Uzticieties datoram, lai deleģētu jebkuru pakalpojumu”) 1. attēlā ir pašsaprotamas. Trešā iespēja ir Kerberos ierobežotā deleģēšana (KCD), kas ir gandrīz tāda pati kā vienkārša deleģēšana, bet deleģē uzdoto identitāti tikai noteiktiem pakalpojumiem vai datoriem. Šī opcija nodrošina vairāk augsts līmenis drošība, ierobežojot uzdotā lietotāja identitātes deleģēšanas apjomu, tādējādi, ja tiek apdraudēta pakalpojuma identitāte, kas ir uzticama deleģēšanai, sekas ir ierobežotas ar iespēju piekļūt tikai tiem resursiem attālie serveri kas ir 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 plašāku funkcionalitāti, piemēram, protokola maiņu. Protokola maiņa notiek, kad klients ienākošā savienojumā vispirms autentificējas ar protokolu, kas nav Kerberos, un pēc tam pārslēdzas uz Kerberos. Detalizēts apraksts S4U ir iekļauts S4U Kerberos paplašinājumu izpētē operētājsistēmā Windows Server 2003 (msdn.microsoft.com/en-us/magazine/cc188757.aspx) un tehniskajā papildinājumā Protokola pāreja ar ierobežotu deleģēšanu (msdn.microsoft.com/en-us / library / ff650469.aspx). Šie resursi ir paredzēti programmētājiem, nevis administratoriem, taču ir arī svarīgi, lai administrators saprastu, kas ir S4U, kā to konfigurēt un kad to izmantot. Šim nolūkam šeit ir īss administratoram paredzēto S4U funkciju saraksts.

Informācijas izgūšana par lietotāja pilnvaru, faktiski neiegūstot šo pilnvaru un uzticamajam pakalpojumam nesaņemot biļešu piešķiršanas biļeti (TGT) no uzticama lietotāja vai piekļūstot akreditācijas datiem. Iegūto informāciju pēc tam var izmantot, piemēram, autorizācijas pārbaudēm. Šis paplašinājums ir pazīstams kā Services-For-User-To-Self (S4U2Self).

Biļešu saņemšana bez nepieciešamības iegūt Kerberos pakalpojuma biļeti, bez piekļuves akreditācijas datiem, TGT pārsūtīšana vai vispār bez autentifikācijas - Services-For-User-To-Proxy (S4U2Proxy).

Iepriekš minētās protokola maiņas veikšana. Klients, kas piekļūst korporatīvajam pakalpojumam, sākotnēji autentificējas, izmantojot citu metodi, nevis Kerberos, un S4U ļauj uzticamajam pakalpojumam pārslēgt jau autentificēto lietotāja sesiju uz Kerberos. Šeit, visticamāk, rodas konfigurācijas kļūdas, jo lietojumprogrammas dokumentācijā bieži vien nav skaidrs, vai ir nepieciešamas protokola izmaiņas 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), lai apstrādātu Kerberos pakalpojuma biļešu pieprasījumus internetā. Protokola maiņa ļauj šī domēna lietotājam 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ākas darbības korporatīvais tīkls... Tā kā “mākonis” nozīmē savienojuma izveidi, izmantojot internetu, varat būt drošs, ka, ja izmantojat kādu “mākonis” risinājumu, agrāk vai vēlāk jūs nonāksit pie Kerberos protokola maiņas.

Zem ārējā apvalka

Tagad apskatīsim, kas patiesībā notiek, kad tiek iestatīti katrs no šiem četriem parametriem, izmantojot LDP, lai skatītu katrai konfigurācijai iestatītās atribūtu vērtības. LDP ir instalēts ar noklusējuma AD domēna pakalpojumu lomu, un to var izmantot kā rīku LDAP pieprasījumu apstrādei 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 aprēķināto parametru vērtību tulkošana cilvēkiem lasāmā formā, nevis skaitļu kombinācijā. Starp citu, vairāk jaunākās versijas Adsiedit.msc arī apstrādā aprēķinātās parametru vērtības līdzīgā veidā.

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

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

4. attēlā parādīts konts, kas tika uzticēts deleģēšanai. Var redzēt, ka atribūta userAccountControl vērtība ir pārtulkota uz TRUSTED_FOR_DELEGATION, kas norāda, ka šai pakalpojuma identitātei ir atļauta Kerberos vienkārša neierobežota 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 izvēlei Uzticēties šim datoram deleģēšanai tikai noteiktiem pakalpojumiem un izmantot tikai Kerberos. 5. attēlā var redzēt, ka šī atlase atgriež userAccountControl atribūtu WORKSTATION_TRUST_ACCOUNT, un atribūts MsDS-AllowedToDelegateTo tiek automātiski aizpildīts ar atlasītajiem pakalpojumiem, kuriem ir atļauta deleģēšana. Šis atribūts nav aizpildīts un to neietekmē neviena cita procedūra. Konkrēti pakalpojumi datorā, kuriem ir atļauta deleģēšana, tiek uzskaitīti kā ieraksti.

Otrā iespēja ir mazāk droša — izmantojiet jebkuru autentifikācijas protokolu, kas ļauj mainīt protokolu un citus paplašinājumus. Papildus atribūta MsDS-AllowedToDelegateTo ierakstiem šis iestatījums maina atribūtu userAccountControl, kas iegūst TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION (T2A4D), kā parādīts 6. attēlā. Bez karoga T2A4D var sagaidīt protokola maiņas kļūdu. Š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 izvēlēts, S4U2Self, S4U2Proxy un protokola maiņa darbosies atšķirīgi, kas var radīt problēmas lietojumprogrammām un pakalpojumiem, kas gaida atbilstošos biļešu veidus. Jo īpaši protokola maiņas rezultātā radīsies kļūda un biļete netiks izsniegta. S4U2Proxy un S4U2Self trūks pārsūtāmā karoga, kā rezultātā tiks parādīta kļūda: S4U2Proxy jebkurā gadījumā un S4U2Self situācijās, kad jums ir jānosūta biļete citam pakalpojumam vai mezglam.

"Dari pats"

Kas notiek, ja lietojumprogrammas vai pakalpojuma izmantotajam pakalpojuma kontam ir jāveic darbība, kurai nepieciešama protokola maiņa, un cilne Deleģēšana ir iestatīta uz Lietot tikai Kerberos, nevis Izmantot jebkuru autentifikācijas protokola autentifikāciju ")? Klienta lietojumprogrammai kļūda var izpausties kā piekļuve liegta, mēģinot piekļūt resursiem tīklā, vai arī tā var neizdoties, nepaziņojot NTLM autentifikāciju, vai negaidīta lietojumprogrammas kļūda. Nenoteiktība kļūdu izpausmes veidā vēl vairāk sarežģī uzdevumu. Tomēr visticamākais rezultāts būs piekļuve liegta. Šādā situācijā noteikti pārbaudiet lietojumprogrammas 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 puses, kas nav TGT. Problēma ir tā, ka lielākā daļa autoru īsti nesaprot KCD konfigurācijas nozīmi un tāpēc sniedz maz vai vispār nesniedz paskaidrojumus.

“dari pats” metode kļūdas cēloņa izmeklēšanai var būt tikpat vienkārša kā tīkla izsekošanas datu vākšana no servera, kas ir uzticams deleģēšanai. Filtrējiet savāktos datus, izmantojot Kerberos (Kerberosv5 programmā Microsoft Network Monitor vai kerberos programmā Wireshark). Biļetes pakalpojuma pieprasījums (TGS_REQ) tiek nosūtīts uz AD Kerberos izplatīšanas centru (KDC), un tajā ir ietverti KDC iestatījumi ar ierobežotu deleģēšanas karogu. Ja biļete tiek liegta, servera atbildē (TGS_REP) būs kļūda KDC_ERR_BAD_OPTION, ko var viegli redzēt tīkla izsekošanas rezultātos.

Plašāku informāciju par to, kā darbojas Microsoft Kerberos implementācijas, var atrast tiešsaistes atvērtā protokola specifikācijā. Kerberos protokola paplašinājumos (msdn.microsoft.com/en-us/library/cc233855%28v=PROT.13%29.aspx) ir ietverta vispārīga Kerberos dokumentācija un Kerberos protokola paplašinājumi: pakalpojums lietotājam un ierobežotas deleģēšanas protokola specifikācija "(Msdn. microsoft.com/en-us/library/cc246071%28v=PROT.13%29.aspx) — Kerberos un S4U ierobežotas deleģēšanas dokumentācija.

Perfekta pasaule

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



2 atbildes

atrisināms.

Pirmais puslaiks bija mana pārraudzība. Otra puse... nu, man nav ne vārda par to, kas nogāja greizi. Tā patiesībā 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ņojumā sniegtajiem ieteikumiem, šī nav konceptuālā modeļa (CSDL) problēma, 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 jaunā 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ādējādi ģ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 nogāja greizi?

Oracle neatbalsta "kods vispirms". Lai gan tas tika darīts ar rokām, EdmxWriter izmantošana ir Oracle koda aizmugures pieeja. Tātad, kad pirmā EDMX shēma tika izjaukta, tā atteicās no Būla kartējumiem. Risinājums bija īslaicīgi noņemt bools no maniem C # modeļiem, pievienot tos EDMX manuāli un izveidot Oracle web.config kartēšanu (kartot būtību ar NUMBER (1,0)).

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

Izstrādes procesa laikā dažādos laikos mainās daži līguma punkti — vai nu C #, EDMX vai Oracle. Un katru reizi, kad šķiet, ka kolonnas tika automātiski piešķirtas no jauna, un es nezināju. Ja EDMX 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 tie mēģināja saskaņot garus kolonnu nosaukumus, kas nebija Oracle.

Šīs pieejas problēma (vispirms hibrīda kods un modelis) ir tāda, ka, ja vēlos turpināt pārvaldīt savus modeļus un veikt pielāgojumus, kas nepieciešami mazām mazuļa attiecībām, man jābūt ļoti uzmanīgam un jāuzmanās no EDMX faila iezīmes.

Vietnes, lietojumprogrammas, spēles - informācijas resursi kurus pārvalda lietotāji. Lai atdalītu konkrētam lietotājam atļautās un aizliegtās darbības, tiek izmantotas piekļuves tiesības (PD). PD darbības joma veido lomas. Piemēram, apskatīsim pamata vietni ar iespēju reģistrēties.

Šā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 mēs vietnes apmeklētājiem dosim tiesības "Pievienot komentārus", tad lietotājs, kurš ieradīsies vietnē, varēs komentēt jūsu intereses. Ja nē, tad vispirms būs jāreģistrējas, lai komentētu saturu.

2.

Saņem autentificēti un pilnvaroti anonīmi lietotāji jauna loma... Tikai pilnvaroti lietotāji var pārvaldīt personīgais konts, pievienot un rediģēt personas datus, skatīt informāciju par citām rakstzīmēm. Nereģistrētiem lietotājiem nav tiesību uz šīm darbībām.

3. Administrators

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

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

Pirmkārt, mēģināsim neizdzēst "Super-admin", spēlējoties ar iestatījumiem.

  • Izveidojiet drošu raksturu

Lai tuvinātu reālās darbības projektā, pietiek ar papildu lietotāju ar līdzīgām administratora tiesībā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 lietotāja tiesību izmantošanu, tādējādi sadalot lietotāju sesijas.

  • Izpildiet tiešo saiti

Bloku ierobežojumu pārbaude, ejot uz tiem taisnā līnijā URL adrese... Dažu resursu datu skatīšana nedrīkst būt pieejama, izmantojot saiti, kas paredzēta neautorizētam vietnes viesim. Ja piekļuve ir ierobežota, tad viss ir ok: privātas informācijas vietā anonīmie lietotāji saņems brīdinājuma ziņojumu īpašas lapas veidā, visbiežāk ar 403 kodu.

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

Attiecībā uz tādiem resursiem kā biļešu tirdzniecība un ekskursijas ir svarīgi bloķēt vienumu, ja tam vienlaikus var piekļūt 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 tā ir, pašreizējais lietotājs atkārtoti ielādē šo entītijas gadījumu.

+ 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 mainās šo iespēju entītijām.

Varat pārbaudīt no viena datora vairākās pārlūkprogrammās vai dažādos kontos.

  • 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, variācijas par spēju ierobežojumiem.

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

Piekļuves kontrole ir viena no galvenajām pārbaudēm sistēmas ietvaros. Pat vietējās bibliotēkas vietnes pārbaude ar trim lomām testētājam draud ar grūtībām. Taču populāriem resursiem ar desmitiem lomu, tūkstošiem lietotāju un miljoniem atļauju ir nepieciešama vesela administratoru armija! Mums ir grūti iedomāties bojājumu apmērus, ja nespeciālists veic pārbaudi. Noalgojiet pareizos ekspertus un izvairieties no jebkādām drošības nepilnībām jūsu produktos!