info@dcs.pl

+48 22 548 60 00
Microsoft Partner, VMWare Partner - logo
PL EN
  • Blog
  • Aktualności
  • Oferta
    • Oprogramowanie na zamówienie
    • Oprogramowanie dla firm
    • Narzędzia administracyjne
    • Wdrożenia, migracje, support
    • Obsługa konkursów
    • Marketing SMS
    • Systemy faksowe
    • Systemy intranetowe
    • Sprzedaż oprogramowania
    • Wynajem specjalistów IT
    • Obsługa informatyczna firm i outsourcing IT
  • Dowiedz się więcej
    • Nasze realizacje
    • Nasze technologie
    • Modele współpracy
    • Oprogramowanie jako usługa
  • O firmie
    • O nas
    • Nasz zespół programistów
    • Praca w dcs.pl
    • Nagrody i wyróżnienia
    • Partnerzy i Certyfikacje
    • Polityka prywatności
  • Kontakt
  1. dcs.pl
  2. Blog
  3. Zarządzanie uprawnieniami w Microsoft .NET
05-02-2016 Marcin Zawadzki uprawnienia, .NET, programowanie

Zarządzanie uprawnieniami w Microsoft .NET

W poprzednim poście dotyczącym migracji pracowników w działach IT wspominałem o narzędziu wspomagającym zarządzanie udziałami sieciowymi w Microsoft Windows. Kontynuując ten temat chciałbym skupić się na jednym z problemów, o którym warto pamiętać tworząc tego typu rozwiązanie.

Przechodząc bezpośrednio do tematu, programiści są przyzwyczajeni, że pobrany dowolny obiekt zapisany bez żadnych zmian nie powinien wprowadzić żadnych zmian w systemie.  W ten sposób działa np. wykrywanie zmian w ORM takich jak Entity Framework.

Z przyczyn znanych tylko programistom Microsoftu pracującym nad rozwojem .NET frameworka zasada ta niestety nie obowiązuje w przypadku reguł dostępu do plików i folderów. W środowisku, w którym istnieje wiele domen może okazać się, że sam proces odczytania a następnie zapisania ponownie „tych samych” reguł może zmodyfikować fizyczne uprawnienia na dysku.

GetAccessRules 

Pisząc kod pobierający i modyfikujący uprawnienia użytkowników możemy posługiwać się zarówno nazwą konta (System.Security.Principal.NTAccount) albo jego identyfikatorem SID (System.Security.Principal.SecurityIdentifier).  Chociaż wygodniejsze wydaje się posługiwanie zrozumiałą nazwą konta, niż technicznym identyfikatorem, to w przypadku wyboru pierwszej metody mogą nas czekać niemiłe niespodzianki. 

Rozważmy następujący przypadek. 

  1. W organizacji istnieją równolegle dwie domeny STARA i NOWA.
  2. Użytkownicy zostali przeniesieni ze starej do nowej.
  3. Mamy następujące konta STARA\marcinz (SID1) i NOWA\marcinz (SID2).
  4. Mamy serwer w domenie NOWA z uprawnieniem na pliku dla konta STARA\marcinz

Jeżeli pobierzemy uprawnienia drugą metodą to pobierzemy uprawnienie dla SID1 i dokładnie tak samo zapiszemy. Jeżeli pobierzemy uprawnienia z nazwami kont, wówczas jako nazwa konta dla SID1 zostanie zwrócona nazwa „NOWA\marcinz”. Zapisując tą regułę zmienimy uprawnienia na dysku, mimo że nic nie zmienialiśmy.

Dzieje się tak z uwagi na parametr konta w AD o nazwie SID-History. Konto NOWA\marcinz oprócz identyfikatora SID2 ma również ustawiony parametr SID-History=SID1. Dlatego kod .NET działając w domenie NOWA zwróci nazwę NOWA\marcinz gdyż znalazł, że konto NOWA\marcinz jest zmigrowane konto STARA\marcinz. 

Jest to tylko jeden z przypadków pokazujących, że tworzenie oprogramowania do zarządzania infrastrukturą IT w firmach nie jest tak proste, jak mogłoby się na pierwszy rzut oka wydawać.

Grafika tytułowa http://negativespace.co/photos/computer-stock-photo-3/

Powiązane

Zarządzanie uprawnieniami (nie dla) każdego
Jak zarządzać migracją pracowników w IT
Tweet

0 komentarze

Kategorie

  • Oprogramowanie dla firm11
  • Wdrożenia, migracje, support3
  • Oprogramowanie na zamówienie2
  • Marketing SMS3
  • Konkursy2
  • Systemy intranetowe2
  • Narzędzia administracyjne6

Tagi

administracja bezpieczeństwo it case study django CMS dla firm hosting intranet kampanie sms kampanie SMS konferencja masowe wysyłki sms migracje monitorowanie aplikacji narzędzia .NET o nas portale firmowe programowanie python SQL system ubezpieczeniowy systemy intranetowe system zarządzania treścią testy produktów ubezpieczenia uprawnienia wdrożenia zasoby sieciowe

Kontakt

dcs.pl Sp. z o.o

  • ul. Puławska 303
  • 02-785 Warszawa
  • tel. +48 22 5486000
  • NIP: 951-20-63-362
  • www.dcs.pl
  • Dział handlowy - sales@dcs.pl
  • Biuro informacyjne - info@dcs.pl
  • Kariera - praca w dcs.pl
  • Polityka prywatności
Na urządzeniu Użytkownika Serwis może zapisywać dane w formie tzw. plików cookies (czyli krótkich plików tekstowych zawierających informacje o aktywności Użytkownika w Serwisie), które mogą służyć poprawianiu jakości świadczonych usług w Serwisie, optymalizacji wyświetlanych stron, określaniu preferencji Użytkownika i dopasowywaniu do nich naszych usług, a przypadku Użytkowników zalogowanych utrzymania sesji, przez co Użytkownik nie musi logować się na każdej z odwiedzanych stron Serwisu. Pliki cookies nie służą do identyfikacji Użytkowników, mogą być jedynie wykorzystywane w formie zanimizowanej do opracowań analitycznych i statystycznych, również przez podmioty, z których usług korzystamy w naszym Serwisie (Google Analytics). Użytkownik może zablokować możliwość zapisywania na jego urządzeniu plików cookies poprzez zmianę ustawień swojej przeglądarki, co spowoduje brak możliwości zagwarantowania Użytkownikowi Serwisu pełnej funkcjonalności, z brakiem możliwości logowania się do Serwisu. Więcej informacji na ten temat znajdziesz w Polityce prywatności.

Nasze usługi

  • Hosted SMS
  • Hosted Exchange
  • Hosted Windows
  • Serwis eczaspracy.pl

Realizacje

Jak sprytnie zarządzać udziałami sieciowymi? Czyli Network Share self-service On-Premise
Czym powinien charakteryzować się dobry hosting? Wyniki ankiety
Zawładnij Exchange'em - czyli zarządzanie skrzynkami współdzielonymi

© dcs.pl

  • Blog
  • Aktualności
  • Kontakt