Okta サービスアカウントの権限
ディレクトリの権限を調整する前に、Active Directory(AD)の権限がどのように設定されるかを理解し、環境内の権限の管理方法を計画してください。このタスクの実行に必要なアカウント要件の詳細については、Active Directory統合の前提条件を参照してください。
このトピックは3つの部分に分かれています。サービスアカウントに必要な権限、任意のユースケース、およびリファレンスについて説明します。
必要な権限
既存のアカウントが選択されていない場合は、デフォルトで、Okta AD AgentのインストーラーがOktaServiceというOktaサービスカウントを作成します。このアカウントはDomain Usersグループの権限を継承します。また、OktaServiceは、エージェントの実行中にAuthenticated UsersとEveryone特別IDグループのメンバーになります。デフォルトでは、Authenticated Usersグループは、Pre-Windows 2000 compatible Accessグループのメンバーです。Pre-Windows 2000 Compatible AccessグループからAuthenticated Usersグループを削除すると、増分インポートで問題が発生する可能性があります。増分インポートの問題を解決するためにお勧めの方法は、次のいずれかの変更を行うことです。
- OktaサービスアカウントをWindows 2000以前と互換性のあるアクセスグループに追加します。
- Oktaサービスアカウントに、同期されたすべてのADオブジェクトに対するすべて読み取り(Read all)権限があることを確認します。
Okta AD Agent管理ユーティリティには、OktaServiceアカウントをドメイン管理者グループに追加するオプションも含まれています。または、適切なユースケースに対して権限が設定されていることを確認します。これにより、サービスアカウントが完全な管理者になりません。
Okta AD Agentを実行するサービスアカウントごとに、これらの権限が必要です。
DirSyncによるインポートの権限
早期アクセスリリース。セルフサービス機能を有効にするを参照してください。
Active Directory DirSyncコントロールによるインポートを使用して、ADとの通信を最適化できます。これにより、増分インポートをより確実に実行し、ADの変更をより速く取り込むことができます。DirSyncによるインポートを使用するには、ディレクトリの変更を複製する権限をエージェントに付与する必要があります。
Server Managerコンソールから権限を付与するには、次の手順を実行します。
- Server Managerコンソールにサインインします。
- を選択します。
- ドメイン名を右クリックしてプロパティ(Properties)を選択します。
- セキュリティ(Security)タブを選択し、追加(Add)をクリックします。このタブは、表示(View)(Advanced Features)メニューから高度な機能(Advanced Features)(View)を選択した場合にのみ表示されます。
- ユーザー、コンピューター、サービスアカウント、またはグループの選択(Select User, Computers, Service Accounts, or Groups)ダイアログからOkta ADエージェントサービスアカウントを選択し、OKをクリックします。
- アクセス許可エントリー(Permissions Entry)ダイアログで、ディレクトリの変更を複製(Replicating Directory Change)(Replicating Directory Changes)を選択し、OKをクリックします。
コマンドラインから権限を付与するには、統合されたADドメインごとに次のPowerShellスクリプトを実行します。スクリプトを実行するたびに、OktaServiceとDOMAIN_DNS_NAMEがADドメインの適切な値に置換されます。
$Identity = "<DOMAIN\OktaService>"
$RootDSE = [ADSI]"LDAP://<DOMAIN_DNS_NAME>/RootDSE"
$DefaultNamingContext = $RootDse.defaultNamingContext
$UserPrincipal = New-Object Security.Principal.NTAccount("$Identity")
DSACLS "$DefaultNamingContext" /G "$($UserPrincipal):CA;Replicating Directory Changes"
ユースケース
これらは、任意のユースケースのいくつかで必要となる権限です。
ユーザーをプロビジョニングする
サービスアカウントがユーザープロビジョニングを行うには、次の権限が必要です。
- 対象組織単位(OU)でのユーザーオブジェクトの子の作成権限が必要です。
- 対象OUでのユーザーオブジェクトの子の削除権限が必要です。
- 対象OU内のユーザーオブジェクトに対するパスワードリセットのアクセス権の制御が必要です。
- 次の属性について、対象OU内のユーザーオブジェクトに対するプロパティの書き込み権限が必要です。
- userPrincipalName
- SAMaccountName
- givenName
- sn
- userAccountControl
- pwdLastSet
- lockoutTime
- cn
- name
- Okta内のADユーザープロファイルにマッピングされるその他すべての属性について、対象OU内のユーザーオブジェクトに対するプロパティの書き込み権限が必要です。マッピングは、
https://<org>/admin/universaldirectoryの ディレクトリ(Directories) にリスト表示されます。
このユースケースの権限を設定するには、PowerShellで次のコマンドを使用します。
dsacls "OU=targetOU,DC=domain" /G "domain\agentserviceaccount:CCDC;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;mail;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;userPrincipalName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sAMAccountName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;givenName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sn;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;userAccountControl;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;pwdLastSet;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;lockoutTime;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;cn;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;name;user"
ユーザー属性を更新する
サービスアカウントがユーザー属性を更新するには、次の権限が必要です。
- 次の属性について、対象OU内のユーザーオブジェクトに対するプロパティの書き込み権限が必要です。
- userPrincipalName
- SAMaccountName
- givenName
- sn
- userAccountControl
- pwdLastSet
- lockoutTime
- cn
- name
https://<org>/admin/universaldirectoryのADユーザープロファイルにマッピングされるその他すべての属性について、対象OU内のユーザーオブジェクトに対するプロパティの書き込み権限が必要です。
このユースケースの権限を設定するには、PowerShellで次のコマンドを使用します。
# include other attributes that are mapped in your org within Okta
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;mail;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;userPrincipalName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sAMAccountName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;givenName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sn;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;userAccountControl;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;pwdLastSet;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;lockoutTime;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;cn;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;name;user"
グループプッシュまたは双方向グループ管理
グループプッシュまたは双方向グループ管理を実行するには、サービスアカウントに次の権限が必要です。グループプッシュ(Group Push)とActive Directoryを使った双方向のグループ管理を参照してください。
- 対象OUでのグループオブジェクトに対する子の作成権限が必要です。
- 対象OUでのグループオブジェクトに対する子の削除権限が必要です。
- 次の属性について、対象OU内のグループオブジェクトに対するプロパティの書き込み権限が必要です。
- sAMAccountName
- description
- groupType
- member
- cn
- name
このユースケースの権限を設定するには、PowerShellで次のコマンドを使用します。
dsacls "OU=targetOU,DC=domain" /I:T /G domain\agentserviceaccount:CCDCDT;group
# If your use case requires that you grant the preceding permission only for child objects, you can replace /I:T with /I:S.
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sAMAccountName;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;description;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;groupType;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;member;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;cn;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;name;group"
パスワードをリセットする、忘れたパスワードを確認する、パスワードを同期する
パスワードリセット、同期、パスワード忘れのユースケースを処理するには、サービスアカウントに次の権限が必要です。
- 次の属性について、対象OU内のユーザーオブジェクトに対するプロパティの書き込み権限が必要です。
- lockoutTime
- pwdLastSet
- 対象OU内のユーザーオブジェクトに対する、パスワードのリセットのアクセス権の制御の権限が必要です。
このユースケースの権限を設定するには、PowerShellで次のコマンドを使用します。
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:CA;Reset Password;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;pwdLastSet;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;lockoutTime;user"
ユーザーをアクティブ化する/非アクティブ化する
サービスアカウントがユーザーのアクティベートとアクティベート解除を行うには、次の権限が必要です。
userAccountControl
このユースケースの権限を設定するには、PowerShellで次のコマンドを使用します。
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;userAccountControl;user"
ユーザーを別のOUに移動する
サービスアカウントがユーザーをOUから別のOUに移動するには、次の権限が必要です。
- ソースOUに対するユーザーの削除権限が必要です。
- 対象OUに対するユーザーの作成権限が必要です。
このユースケースの権限を設定するには、PowerShellで次のコマンドを使用します。
dsacls "OU=sourceOU,DC=domain" /I:T /G "domain\agentserviceaccount:DC;group"
dsacls "OU=targetOU,DC=domain" /I:T /G "domain\agentserviceaccount:CC;group"
コマンドリファレンス
リストされているコマンドを使用して権限を追加します。それをバッチファイルに保存し、環境に合わせて対象OUとサービスアカウント情報を変更します。必ず不要な権限を削除し、Okta内のプロビジョニング用にマッピングしたすべての属性を追加します。ユーザー属性の完全なリストは、https://<org>/admin/universaldirectoryのディレクトリユーザープロファイルから取得することができます。PowerShellからdsaclsコマンドを管理者権限で実行します。これらの権限を得るには、PowerShellの起動時に管理者として実行(Run as administrator)オプションを使用します。
# Create and Delete User
dsacls "OU=targetOU,DC=domain" /G "domain\agentserviceaccount:CCDC;user"
# Create or Update User
# include other attributes that are mapped in your org within Okta
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;mail;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;userPrincipalName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sAMAccountName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;givenName;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sn;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;userAccountControl;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;pwdLastSet;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;lockoutTime;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;cn;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;name;user"
# Create user/Password Reset
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:CA;Reset Password;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;pwdLastSet;user"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;lockoutTime;user"
# Group Push
dsacls "OU=targetOU,DC=domain" /I:T /G "domain\agentserviceaccount:CCDCDT;group"
# If your use case requires that you grant the preceding permission only for child objects, you can replace /I:T with /I:S.
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;sAMAccountName;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;description;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;groupType;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;member;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;cn;group"
dsacls "OU=targetOU,DC=domain" /I:S /G "domain\agentserviceaccount:WP;name;group"
# Move user to another OU
dsacls "OU=sourceOU,DC=domain" /I:T /G "domain\agentserviceaccount:DC;group"
dsacls "OU=targetOU,DC=domain" /I:T /G "domain\agentserviceaccount:CC;group"