• Blog
  • Oferta
    • Oprogramowanie na zamówienie
    • Oprogramowanie dla firm
      • HostedSMS
      • HostedWindows
      • HostedExchange
      • Serwis eczaspracy.pl
    • Narzędzia administracyjne
      • DSM
      • FSM
      • SPM
      • ATC
    • Wdrożenia, migracje, support
      • Wdrożenia systemów
      • Migracja Exchange 2003 2007 2010 2013
      • Szkolenia Microsoft Exchange
      • Migracja Lotus Domino / Notes do Microsoft Exchange
    • Obsługa konkursów
    • Marketing SMS
    • Systemy intranetowe
      • Wdrożenia intranetów
      • Serwisy Microsoft SharePoint
      • Platforma intranetowa
    • Sprzedaż oprogramowania
      • VMware
      • Veeam
      • Proxmox
    • Wynajem specjalistów IT
    • Obsługa informatyczna firm i outsourcing IT
    • Audyty Informatyczne
    • Utrzymanie, rozwój i modernizacja starego oprogramowania
  • Dowiedz się więcej
    • Nasze realizacje
      • Bramka SMS
      • Konfigurator telefonów
      • Systemy finansowo ubezpieczeniowe
      • Wspomaganie zarządzania kryzysowego
      • Zarządzanie sprzedażą
      • Platforma komunikacji społecznościowej
      • CMS - Systemy zarządzania treścia
      • Wirtualna Recepcja
      • Projekt omnie.to
      • SMS Vote
    • Nasze technologie
    • Modele współpracy
    • Oprogramowanie jako usługa
  • O firmie
    • O nas
    • Nasz zespół programistów
    • Praca w dcs.pl
      • Junior Programista .NET
      • Programista .Net
      • Programista React
      • Programista Python
      • Inżynier DevOps
      • Inżynier Systemowy
      • IT Project Manager
      • Tester aplikacji
    • Nagrody i wyróżnienia
    • Partnerzy i Certyfikacje
      • Microsoft Partner
      • VMware Partner
      • Veeam Partner
      • Idera
      • Kentico
      • Unizeto
    • Polityka prywatności
  • Kontakt
PL EN
  • Blog
  • Oferta
    • Oprogramowanie na zamówienie
    • Oprogramowanie dla firm
      • HostedSMS
      • HostedWindows
      • HostedExchange
      • Serwis eczaspracy.pl
    • Narzędzia administracyjne
      • DSM
      • FSM
      • SPM
      • ATC
    • Wdrożenia, migracje, support
      • Wdrożenia systemów
      • Migracja Exchange 2003 2007 2010 2013
      • Szkolenia Microsoft Exchange
      • Migracja Lotus Domino / Notes do Microsoft Exchange
    • Obsługa konkursów
    • Marketing SMS
    • Systemy intranetowe
      • Wdrożenia intranetów
      • Serwisy Microsoft SharePoint
      • Platforma intranetowa
    • Sprzedaż oprogramowania
      • VMware
      • Veeam
      • Proxmox
    • Wynajem specjalistów IT
    • Obsługa informatyczna firm i outsourcing IT
    • Audyty Informatyczne
    • Utrzymanie, rozwój i modernizacja starego oprogramowania
  • Dowiedz się więcej
    • Nasze realizacje
      • Bramka SMS
      • Konfigurator telefonów
      • Systemy finansowo ubezpieczeniowe
      • Wspomaganie zarządzania kryzysowego
      • Zarządzanie sprzedażą
      • Platforma komunikacji społecznościowej
      • CMS - Systemy zarządzania treścia
      • Wirtualna Recepcja
      • Projekt omnie.to
      • SMS Vote
    • Nasze technologie
    • Modele współpracy
    • Oprogramowanie jako usługa
  • O firmie
    • O nas
    • Nasz zespół programistów
    • Praca w dcs.pl
      • Junior Programista .NET
      • Programista .Net
      • Programista React
      • Programista Python
      • Inżynier DevOps
      • Inżynier Systemowy
      • IT Project Manager
      • Tester aplikacji
    • Nagrody i wyróżnienia
    • Partnerzy i Certyfikacje
      • Microsoft Partner
      • VMware Partner
      • Veeam Partner
      • Idera
      • Kentico
      • Unizeto
    • Polityka prywatności
  • Kontakt
  1. dcs.pl
  2. Blog
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 firm 11
  • Wdrożenia, migracje, support 3
  • Oprogramowanie na zamówienie 2
  • Marketing SMS 3
  • Konkursy 2
  • Systemy intranetowe 2
  • Narzędzia administracyjne 6

Tagi

administracja administration bezpieczeństwo it case study django CMS dla firm featured głosowanie sms hostedsms hosting intranet kampanie sms kampanie SMS konferencja masowe wysyłki sms migracje monitorowanie aplikacji narzędzia .NET network resources o nas permissions portale firmowe prawybory programowanie proxmox python SQL system ubezpieczeniowy systemy intranetowe system zarządzania treścią testy produktów tools ubezpieczenia uprawnienia wdrożenia wybory prezydenckie
dcs.pl - linkedin
Bądź na bieżąco Śledź nas na LinkedIn, aby otrzymywać aktualizacje i informacje.

Kontakt

dcs.pl Sp. z o.o,
ul. Puławska 303,
02-785 Warszawa,
NIP: 951-20-63-362,
+48 22 5486000,
info@dcs.pl

O firmie

  • Kontakt z nami
  • O nas
  • Blog
  • Kariera

Zasoby

  • Polityka prywatności
  • Aktualności dcs.pl

Usługi

  • Projekty na zamówienie
  • Implementacja Systemów
  • Outsourcing

Produkty

  • Narzędzia administracyjne
  • Software as a Service
  • Produkty finansowe & ubezpieczeniowe

Nasze serwisy

  • Hosted SMS
  • Hosted Exchange
  • Hosted Windows
  • eczaspracy.pl
  • Przeglądy Budynku
  • Share File Safe
  • File Share Manager
dcs.pl - linkedin
Bądź na bieżąco Śledź nas na LinkedIn, aby otrzymywać aktualizacje i informacje.

Copyright ©dcs.pl 1995-2025 Sp. z o.o. All rights reserved.