このセクションを完全にロック解除するには、ログインする必要があります
Active Directory(AD)委任は、多くの組織のITインフラストラクチャの重要な部分 管理を委任することで、ユーザーまたはグループに必要な権限のみを付与することができ、ユーザーを特権グループ(ドメイン管理者、アカウントオペレーターなど)に追 委任を実行する最も簡単な方法は、Microsoft管理コンソール(MMC)Active Directoryユーザーとコンピュータスナップインのコントロールの委任ウィザードを使用することです。
コントロールの委任ウィザードは、権限を委任する簡単な方法を提供しますが、委任された権限を削除するための対応するウィザードはありません。 Microsoftの誰かがこの欠点に気づき、Dsrevokeという名前のコマンドラインプログラムを作成したに違いありません。コントロールウィザードの委任によって追加された権限エントリを削除できるexe。
しかし、Dsrevoke。exeプログラムには、Microsoftの記事”Dsrevokeコマンドラインツールを使用して、Windows Server2003ベースのドメイン内のすべての組織単位のアクセス許可を報告すると、ツールがすべ”これらの制限は:
- Dsrevoke。exeは、単一の検索で最大1,000個のOuしか検索できません。 この制限の回避策として推奨されるのは、結果の数を減らすために、より深くネストされた組織単位(OU)でプログラムの検索を開始することです。
- いずれかのOuに名前にスラッシュ(/)文字が含まれている場合、exeは失敗します。 問題のあるOuの名前を変更する以外に、この制限の回避策はありません。
組織上の理由から、スラッシュ文字を削除するためにOuの名前を変更することは、通常はオプションではありません。 また、スラッシュはOU名の有効な文字であり、Dsrevokeです。exeは、ouに名前にスラッシュが含まれているかどうかに関係なく動作するはずです。 また、私の環境で1,000OUの制限を回避する作業には時間がかかりました。
最近のバージョンのWindowsでは、Dsaclsが使用されています。exeプログラムは、制御ウィザードの委任によって追加された権限を削除する方法を提供します。 Ouに名前にスラッシュが含まれている場合は失敗しませんが、Dsacls。exeは、Dsrevokeのような権限のサブコンテナを検索できません。exeはそうです。
exeとDsacls。exeは権限のリストを生成することができますが、出力は非常に長く技術的です。
制御の委任ウィザードを使用するときに何が起こるかについての背景情報と、いくつかの基本的なWindowsセキュリティの概念をカバーする必要があります。
あなたがいくつかの部門を持つ大企業の頭であると想像してみてください:財務、人事、営業、上級管理職。
パスワードを忘れたすべてのユーザーがITヘルプデスクに電話しなければならなかった場合、あなたは電話で圧倒されるでしょう。
代わりに、各部門の長に権限を委任して、自分のチームのパスワードをリセットできるようにすることができます。
委任のためのもう一つの古典的なユースケースは、スタッフがお互いに電子メールを送信する機能です,共有メールボックスのいずれか,または彼または彼女の上司に代わって電子メールを送信するPAのいずれか.
誰もがドメイン管理者を与えますか?
あなたは、各部門長ドメインの管理者権限を与えてみましょう、と思っているかもしれません。
これは技術的には真実ですが、彼らはユーザーデータへのアクセスを含め、あなたができることは何でもすることができます。
だから、管理タスクを下げるために非ITユーザーにドメイン管理者の役割を与えるように注意してください:このアプローチは、いくつかの問題につながる
詳細なセキュリティ設定ダイアログボックスで提供されている情報を理解するには、次のWindowsセキュリティの概念について知っている必要があ: アクセス制御リスト(ACL)、アクセス制御エントリ(ACE)、トラスティ、および継承。 また、Remove-DSACE.ps1を使用するには、これらの概念を理解する必要があります。
ACL:aclには、任意Acl(Dacl)とシステムAcl(Sacl)の2種類があります。 DACLは、オブジェクトへのアクセスが許可または拒否されているアカウントを識別します。 SACLは、管理者がオブジェクトへのアクセス試行をどのように記録するかを記述します(監査など)。
ACE:ACLはAceで構成されています。 各ACEはトラスティを識別し、オブジェクトに対するトラスティのアクセス(許可、拒否、または監査)を指定します。 コントロールウィザードの委任は、AdコンテナーのDACLにAceを追加します。 上の図は、すべてのユーザー OUのDACLを示しています。 この図では、permission entryという用語はACEと同義です。
トラスティ:トラスティは、ACEが適用されるエンティティ(ユーザー、セキュリティグループ、またはログオンセッション)です。 各ACEは、単一の受託者に適用されます。 図5では、プリンシパルという用語は受託者と同義です。 図5は、Password Resetグループに割り当てられたAceが2つあることを示しています。 つまり、パスワードリセットグループは、これら二つのAceのトラスティ(プリンシパル)です。
: ACEは、オブジェクトに直接適用することも、リソースの親オブジェクトから継承することもできます。 前の図では、パスワードリセットグループをトラスティとして含むすべてのユーザー OUの2つのAceは、コントロールの委任ウィザードがDACLに直接追加したため、親
ウィザードを使用した委任された権限の追加
制御の委任ウィザードを使用すると、権限を委任する簡単な方法が提供されます。 たとえば、Password Resetグループのメンバーが、ADドメインのAll Users OUのユーザーのパスワードをリセットできるようにするとします。 これを行うには、次の手順を実行する必要があります。
Active Directory Users and Computersコンソールを開き、All Users OU(またはwhatever OU)を右クリックし、図1に示すようにDelegate Controlを選択します。 “次へ”ボタンをクリックして、ウィザードの”ようこそ”ページを過ぎて進みます。
ウィザードの[ユーザーまたはグループ]ページで、[追加]ボタンをクリックします。
ユーザー、コンピューター、またはグループの選択ダイアログボックスで、グループ名(パスワードリセット)を入力し、名前の確認ボタンをクリックしてグループ名が正:
グループの名前が[ユーザーまたはグループ]ページに表示されていることを確認したら、次の図に示すように[次へ]をクリックします:
委任するタスクページで、次の図に示すように、ユーザーパスワードのリセットと次回のログオン時のパスワード変更の強制を選択し、次へをクリッ:
[完了]ボタンをクリックすると、[制御の委任]ウィザードにより、要求されたアクセス許可が[すべてのユーザー]OUに追加されます。 委任の効果を表示するには、”すべてのユーザー”OUを右クリックし、”プロパティ”を選択し、”セキュリティ”タブを選択します。 (セキュリティタブが表示されない場合は、Active Directoryユーザーとコンピュータコンソールの表示メニューの高度な機能オプションを有効にします。)
詳細表示については、詳細ボタンをクリックすることができます。 次の図は、表示されるセキュリティの詳細設定ダイアログボックスを示しています。
権限の確認(PowerShellを使用)
委任を発見したので、過去の従業員や悪意のある管理者のいずれかから知らない委任があるかどうか疑問に思うかもしれません。
委任可能な各オブジェクトタイプを検索し、パスワードのリセットとSend-as(Exchangeから)という2つの共通のアクセス許可委任を一覧表示する短いPowerShellスク
ドメインから実行するサンプルは次のとおりです:
ここでスクリプトコードは:
###### Search common delegation targets$filter = "(|(objectClass=domain)(objectClass=organizationalUnit)(objectClass=group)(sAMAccountType=805306368)(objectCategory=Computer))" ###### Search just OUs and Groups#$filter = "(|(objectClass=organizationalUnit)(objectClass=group))"###### More filters can be found here: http://www.ldapexplorer.com/en/manual/109050000-famous-filters.htm###### Connect to DOMAINCONTROLLER using LDAP path, with USERNAME and PASSWORD#$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP"), "USERNAME", "PASSWORD") ###### Connect to DOMAINCONTROLLER using LDAP path$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP") $dSearch = New-Object System.DirectoryServices.DirectorySearcher($bSearch)$dSearch.SearchRoot = $bSearch$dSearch.PageSize = 1000$dSearch.Filter = $filter #comment out to look at all object types$dSearch.SearchScope = "Subtree"####### List of extended permissions available here: https://technet.microsoft.com/en-us/library/ff405676.aspx$extPerms = '00299570-246d-11d0-a768-00aa006e0529', 'ab721a54-1e2f-11d0-9819-00aa0040529b', '0'$results = @()foreach ($objResult in $dSearch.FindAll()){ $obj = $objResult.GetDirectoryEntry() Write-Host "Searching... " $obj.distinguishedName $permissions = $obj.PsBase.ObjectSecurity.GetAccessRules($true,$false,) $results += $permissions | Where-Object { $_.AccessControlType -eq 'Allow' -and ($_.ObjectType -in $extPerms) -and $_.IdentityReference -notin ('NT AUTHORITY\SELF', 'NT AUTHORITY\SYSTEM', 'S-1-5-32-548') } | Select-Object ` @{n='Object'; e={$obj.distinguishedName}}, @{n='Account'; e={$_.IdentityReference}}, @{n='Permission'; e={$_.ActiveDirectoryRights}}}$results | Out-GridView
独自のドメインでこのスクリプトを使用するには:
- Active Directoryユーザーとコンピューターを開き、調査対象のドメイン(または組織単位)に移動します。
- 右クリックしてプロパティを選択します。
- 属性エディタタブで、distinguishedNameプロパティを探します。
- それを選択し、Viewを押して、LDAPパスをコピーします。 これは後で必要になります。
- 6行目を編集します(bs bSearch=…)、DOMAINCONTROLLERをドメインのDcのいずれかの名前に置き換えます。
- 6行目を編集し、LDAPを以前にコピーしたパスに置き換えます。
- スクリプトを保存し、実行を押します。進行状況はコンソールに報告され、完了すると、権限が委任されているオブジェクトの詳細を示すポップアップが表示されます。