現象
サーバーの全体管理サイト以外の SharePoint サイトにサインインすると、空白の画面が表示されます。 さらに、次の問題が発生します。
エラーが発生すると、エラー メッセージに要求の関連付け ID が含まれません。
統合ログ システム (ULS) ログに次のエラー メッセージが記録されます。
Foundation General 8nca Medium Application error when access /, Error=Exception of type 'System.ArgumentException' was thrown. Parameter name: encodedValue at Microsoft..Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(String encodedValue) at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(IClaimsIdentity claimsIdentity, String encodedIdentityClaimSuffix) at Microsoft..Administration.Claims.SPClaimProviderManager.GetProviderUserKey(String encodedIdentityClaimSuffix) at Microsoft.SharePoint.ApplicationRuntime.SPHeaderManager.AddIsapiHeaders(HttpContext context, String encodedUrl, NameValueCollection headers) at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PreRequestExecuteAppHandler(Object oSender, EventArgs ea) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
SharePoint Health Analyzer アラートをチェックすると、どの SharePoint サーバーもトークンを発行していないと表示されます。 ただし、セキュリティ トークン サービス (STS) ページを参照できます。
STS がトークンを生成しているかどうかをチェックするには、次のスクリプトを使用します。
$farm = [Microsoft.SharePoint.Administration.SPFarm]::Local $webServiceCollection = new-object Microsoft.SharePoint.Administration.SPWebServiceCollection($farm) foreach ($service in $webServiceCollection) { foreach ($webApp in $service.WebApplications) { $firstWebApp = $webApp #Get the context $context = $firstWebApp.GetResponseUri([Microsoft.SharePoint.Administration.SPUrlZone]::Default) Write-Host "Web Application Context:" $context.AbsoluteUri #Call the token generator function $token = [Microsoft.SharePoint.SPSecurityContext]::SecurityTokenForContext($context) Write-Host "Token:" $token.InternalTokenReference Write-Host "**************************" } }
次のエラー メッセージが表示されます。
Token: ************************** Web Application Context: [http://Contoso.com/](http://contoso.com/) Exception calling "SecurityTokenForContext" with "1" argument(s): "The serverwas unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults(either from ServiceBehaviorAttribute or from the< serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs."
原因
この問題は、SharePoint サーバーで Federal Information Processing Standard (FIPS) が有効になっている場合に発生します。
解決方法
この問題を解決するには、SharePoint Server がインストールされているコンピューターで次の手順に従って FIPS を無効にします。
- ローカル セキュリティ ポリシー コンソール (secpol.msc) を起動します。 [セキュリティ設定]>[ローカル ポリシー][セキュリティ オプション] の順に>移動します。
- システム暗号化: 暗号化、ハッシュ、署名アルゴリズムポリシーなど、FIPS 140 準拠の暗号化アルゴリズムを使用します。
- ポリシーが有効になっている場合は、ポリシーを右クリックし、[ プロパティ] をクリックし、[ 無効] を選択して、[OK] をクリック します。
- レジストリ エディターを開き、次のレジストリ サブキーを見つけます。
HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
- [有効] の値が 1 の場合は、[有効] を右クリックし、[変更] をクリックし、[値データ] に「0」と入力して、[OK] をクリックします。
- コンピューターを再起動します。
詳細情報
SharePoint Server では、連邦情報処理標準 (FIPS) 140-2、暗号化モジュールのセキュリティ要件に準拠していないハッシュ値を計算するために、いくつかの Windows 暗号化アルゴリズムが使用されます。 これらのアルゴリズムは、セキュリティ上の目的では使用されません。 これらは内部処理に使用されます。 たとえば、SharePoint Server では、一意の識別子として使用されるハッシュ値を作成するために MD5 を使用します。 SharePoint Server はこれらのアルゴリズムを使用するため、プログラムは暗号化とハッシュに FIPS 準拠のアルゴリズムを必要とする Windows セキュリティ ポリシー設定をサポートしていません。
さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。