SharePoint Server 2013 にActive Directory セキュリティ グループを使用して権限を付与している場合、権限の変更反映に時間がかかる

現象
SharePoint Server 2013 に Active Directory セキュリティ グループを使用して権限を付与している場合、ユーザーが所属するセキュリティ グループにユーザーを追加した場合や、セキュリティ グループからのユーザー削除の反映に時間がかかることがあります。
原因
Active Directory セキュリティ グループの変更の反映に時間を要する事象は、クレーム ベース認証におけるセキュリティ トークンの有効期限、およびトークン キャッシュの有効期限に影響を受けます。SharePoint Server 2013 では、Web アプリケーションが既定でクレームベース認証を使用するように変更されており、ユーザーの認証情報や所属するグループの情報はWindows トークンや FBA トークン等のクレーム ベースのセキュリティ トークンによって管理されます。セキュリティ トークン、およびトークン キャッシュにはそれぞれ有効期限が設定されており、その期限が有効な間は、生成されているセキュリティ トークンやトークン キャッシュを使用し、ユーザーの所属するセキュリティ グループを認識します。そのため、Active Directory 上でセキュリティ グループからユーザーが削除された場合などに、変更内容が即時に反映しないという現象が発生することがあります。
回避策
トークン キャッシュのタイムアウト値、Security Token Service の WindowsTokenLifetime、FormsTokenLifetime (フォーム認証を使用している場合)、LogonTokenCacheExpirationWindow の値を変更します。Active Directory のセキュリティ グループの変更が反映されるまでの時間を短縮する場合には、これらの値を既定より小さく設定します。上記の値を極端に短くした場合、SharePoint の利用に影響が生じる場合があるため、適切な値の設定を設定し、操作に問題が無いことを確認します。

1. 任意の SharePoint サーバーに管理者権限のあるアカウントでログインし、管理者権限でコマンド プロンプトを起動します。

2. 以下のディレクトリに移動します。
C:\Program Files\Common Files\Microsoft Shared\web server extensions\15\BIN

3. 以下のコマンドを実行し、トークン キャッシュのタイムアウト値を変更します。 
stsadm.exe -o setproperty -propertyname token-timeout -propertyvalue 180

補足 : propertyvalue には環境に併せた値を分単位で指定します。上記の例は 180 分です。
token-timeout の既定値は、24 時間です。

設定値を確認する場合には、以下のコマンドを実行します。
stsadm.exe -o getproperty -propertyname token-timeout

4. 設定後、SharePoint 2013 管理シェルを、管理者権限で起動します。

5. 以下のコマンドを実行し、Security Token Service の  WindowsTokenLifetime、FormsTokenLifetime、LogonTokenCacheExpirationWindow の有効期限を変更します。
$sts = Get-SPSecurityTokenServiceConfig 
$sts.WindowsTokenLifetime = "03:00:00" 
$sts.FormsTokenLifetime = "03:00:00"
$sts.LogonTokenCacheExpirationWindow = (New-TimeSpan –minutes 10)
$sts.Update()

補足 : フォーム認証を使用していない場合には、FormsTokenLifetime の設定を実施する必要はありません。
また、各プロパティの値は、環境に併せた値を指定します。上記の例は 3 時間です。
WindowsTokenLifetime、FormsTokenLifetime の値は、LogonTokenCacheExpirationWindow 以上の値に設定します。

各プロパティの既定値は、以下の通りです。
WindowsTokenLifetime : "10:00:00" (10 時間)
FormsTokenLifetime : "10:00:00" (10 時間)
LogonTokenCacheExpirationWindow  "00:10:00" (10 分)

現在設定されている値を確認する場合は、以下のコマンドを実行します。
Get-SPSecurityTokenServiceConfig

6.すべての SharePoint サーバーで IISRESET を実行します。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:3028822 - 最終更新日: 09/29/2016 12:10:00 - リビジョン: 6.0

Microsoft SharePoint Foundation 2013, Microsoft SharePoint Server 2013

  • kbtshoot kbexpertiseadvanced kbexpertiseinter KB3028822
フィードバック