Active Directory Security Descriptor ADSI - .Net
Upcoming SlideShare
Loading in...5
×
 

Active Directory Security Descriptor ADSI - .Net

on

  • 314 views

Security Descriptor の ADSI に対応する .NET の型

Security Descriptor の ADSI に対応する .NET の型

Statistics

Views

Total Views
314
Views on SlideShare
314
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Active Directory Security Descriptor ADSI - .Net Active Directory Security Descriptor ADSI - .Net Presentation Transcript

  • Active Directory Security Descriptor ADSI .NET Security Descriptor のADSIに対応する.NETの型 小山 三智男 mitchin
  • Security Descriptor って? Security Descriptor とはセキュリティ記述子のことで、ざっく り言えばセキュリティ(アクセス権)設定を記述したものです。 ここでは Active Directory オブジェクトに対するセキュリティ 設定情報です。 セキュリティ記述子の中に 随意アクセス制御リスト(DACL: Discretionary Access Control List)やシステム アクセス制御 リスト(SACL:System Access Control List)、所有者、プライ マリ グループがあります。 DACL はユーザやグループに対して 許可/拒否の権限を定義した アクセス規則であるアクセス制御エントリ(ACE:Access Control Entry)の集まりで、単にアクセス制御リスト(ACL)と 呼ぶことがあります。 SACL は監査規則である ACE の集まりです。 2
  • Active Directoryデータのプロパティ出力 以前、Active Directory データのプロパティ出力について紹介 しました。 初期版 http://www.slideshare.net/mitchin227/output-properties COM(ADSI)対応版 http://www.slideshare.net/mitchin227/security-descriptor これをサンプルアプリに組み込めば出力できるようになります。 サンプルアプリとスライドはこちら http://blogs.wankuma.com/mitchin/archive/2013/12/08/328279.aspx 3
  • アクセス制御エントリの出力の書式 ADSI 対応版はセキュリティ記述子の随意アクセス制御リストの 各アクセス制御エントリ(ACE)を 番号をつけて見やすい形で出 力しました。 出力項目は次の 5 つのプロパティです。 • Trustee(ユーザやグループの名前部分のみ) • AccessMask • AceFlags • AceType • Flags これらの値順に重複は除外して出力しました。 4
  • COM(ADSI)対応版の出力サンプル 5
  • プログラムから確認するには DirectoryEntry.Properties プロパティ(PropertyCollection クラス)からプロパティとその値(PropertyValueCollection ク ラス)を列挙して取得します。 サンプルコードは次の名前空間をインポートしています。 • ActiveDs(Active DS Type Library の参照設定が必要) • System.IO • System.Security.Principal 6
  • 属性は nTSecurityDescriptor セキュリティ記述子の属性は nTSecurityDescriptor で、その値 の型は ADSI の IADsSecurityDescriptor です。 値は DirectoryEntry オブジェクトを entry とすると、 VB entry.Properties.Item("nTSecurityDescriptor").Value C# entry.Properties["nTSecurityDescriptor"].Value で取得できます。 ADSI 対応版ではこの値を IADsSecurityDescriptor にキャスト しています。 また、関連するアクセス制御リストは IADsAccessControlList で、アクセス制御エントリは IADsAccessControlEntry です。 7
  • ADSIに対応する.NETのクラスは? MSDNのセキュリティ記述子の管理のページには次のように書かれ ています。 Active Directory オブジェクト セキュリティ記述子と共に使用 されるプライマリ クラスは ActiveDirectorySecurity で、 DirectoryEntry.ObjectSecurity プロパティを使用すると、 Active Directory オブジェクトのセキュリティ記述子を表す ActiveDirectorySecurity オブジェクトを取得できます。 8
  • DirectoryEntry.ObjectSecurityプロパティ 確かに DirectoryEntry.ObjectSecurity プロパティの型は ActiveDirectorySecurity クラスです。 更に次のことも書かれています。 随意アクセス制御リストのアクセス制御エントリは、アクセス規 則とも呼ばれます。アクセス規則を表すプライマリ クラスは、 ActiveDirectoryAccessRule クラスです。 ということは、IADsSecurityDescriptor に対応するのが ActiveDirectorySecurity で、IADsAccessControlEntry に対応 するのが ActiveDirectoryAccessRule ってこと?? なんか名前が似てない・・・ でもきっと似た名前のクラスがあるはず。 9
  • ということで調べてみたらありました! セキュリティ記述子 IADsSecurityDescriptor に対応するのは CommonSecurityDescriptor クラスです。 継承階層 System.Object System.Security.AccessControl.GenericSecurityDescriptor System.Security.AccessControl.CommonSecurityDescriptor 2ページに記載した4つの主なプロパティは 名前は同じですが型が 異なります。 項目 プロパティ AD SI .N ET 随意アクセス制御リスト Di screti onaryA cl O bject/dynam i c Di screti onaryA cl システム アクセス制御リスト S ystem A cl O bject/dynam i c S ystem A cl 所有者 O w ner S tri /stri ng ng S ecuri tyIdenti er fi プライマリ グループ G roup S tri /stri ng ng S ecuri tyIdenti er fi 10
  • アクセス制御リスト(ACL) アクセス制御リスト IADsAccessControlList に対応するのは、 随意アクセス制御リストが DiscretionaryAcl クラスで、システ ム アクセス制御リストが SystemAcl クラスです。 継承階層 System.Object System.Security.AccessControl.GenericAcl System.Security.AccessControl.CommonAcl System.Security.AccessControl.DiscretionaryAcl System.Security.AccessControl.SystemAcl 11
  • アクセス制御エントリ(ACE) アクセス制御エントリ IADsAccessControlEntry に対応するのは ObjectAce クラスまたは CommonAce クラスです。 継承階層 System.Object System.Security.AccessControl.GenericAce System.Security.AccessControl.KnownAce System.Security.AccessControl.QualifiedAce System.Security.AccessControl.CommonAce System.Security.AccessControl.ObjectAce 12
  • ACEの出力項目のプロパティ Trustee プロパティはユーザやグループの名前部分を出力してい ます。対応するのは SecurityIdentifier プロパティですが、 SID しか保持していないので、ユーザやグループの名前部分を別 途取得する必要があります。 例えば、objectSid 属性をフィルタに指定して検索して、cn 属 性の値を取得します。 ※所有者(Owner)やプライマリ グループ(Group)も同様。 AD SI プロパティ 型 T rustee S tri /stri ng ng A ccessM ask Integer/i nt A ceFl ags .N ET 対応する列挙体 ー プロパティ 型 対応する列挙体 S ecuri tyIdenti er fi S ecuri tyIdenti er fi ー A D S _R IG H T S _EN U M A ccessM ask Integer/i nt A cti veD i rectoryR i ghts Integer/i nt A D S _A C EFLA G _EN U M A ceFl ags A ceFl ags A ceFl ags A ceT ype Integer/i nt A D S _A C ET YPE_EN U M A ceT ype A ceT ype A ceT ype Fl ags Integer/i nt A D S _FLA G T YPE_EN U M O bjectA ceFl ags O bjectA ceFl ags O bjectA ceFl ags O bjectA ceFl ags プロパティは O bjectA ce クラスのプロパティで、C om m onA ce クラスにはありません。 13
  • 詳細や関連情報はブログ等で Active Directoryデータのプロパティ出力のCOM対応版 http://blogs.wankuma.com/mitchin/archive/2013/12/04/328271.aspx http://blogs.wankuma.com/mitchin/archive/2013/12/05/328273.aspx COM対応版の変更点の説明(セキュリティ記述子:SecurityDescriptor) http://blogs.wankuma.com/mitchin/archive/2013/12/09/328281.aspx DirectoryEntry.ObjectSecurityプロパティ http://blogs.wankuma.com/mitchin/archive/2013/12/20/328297.aspx セキュリティ記述子(SecurityDescriptor)のADSIに対応する.NETのクラス http://blogs.wankuma.com/mitchin/archive/2013/12/23/328302.aspx セキュリティ記述子(SecurityDescriptor)の出力の.NETクラス使用版 http://blogs.wankuma.com/mitchin/archive/2013/12/24/328303.aspx http://blogs.wankuma.com/mitchin/archive/2013/12/25/328308.aspx セキュリティ記述子(SecurityDescriptor)の出力の.NETクラス使用版の説明 http://blogs.wankuma.com/mitchin/archive/2013/12/26/328310.aspx http://blogs.wankuma.com/mitchin/archive/2013/12/27/328314.aspx http://blogs.wankuma.com/mitchin/archive/2013/12/28/328317.aspx 14