要求ベースの認証で内部 URL にアクセスするときに、指定したドメイン名とユーザー ID エラーを持つユーザーが存在しません

この記事では、要求ベースの認証を使用して内部 URL にアクセスするときに発生する、指定したドメイン名とユーザー ID を持つユーザーが存在しないMicrosoft Dynamics CRMエラーの解決策について説明します。

適用対象: Microsoft Dynamics CRM 2011
元の KB 番号: 2809818

現象

クレーム ベース認証が有効になっている Microsoft Dynamics CRM 2011 の内部 URL にアクセスすると、ユーザーがMicrosoft Dynamics CRM サイトにアクセスできない可能性があります。 Internet Facing Deployment (IFD) が設定されている場合、ユーザーは IFD URL を使用して引き続きMicrosoft Dynamics CRM サイトにアクセスできる可能性があります。

IIS で開発者エラーを有効にすると、次のエラーが表示されることがあります。

指定したドメイン名とユーザー ID を持つMicrosoft Dynamics CRMユーザーは存在しません。 (0x80040354)

Microsoft Dynamics CRM プラットフォーム トレースでは、次のメッセージが表示される場合があります。

次に示す SID は、実際に認証しようとしているユーザー以外のユーザーに対するものです。

[DateTime]プロセス: w3wp |Organization:000000000-0000-0000-0000000000000000 |スレッド: 13 |カテゴリ: Platform.Sql |ユーザー: 0000000000-0000-0000-000000000000000000 |レベル: 詳細 |ReqId: ReqId |CrmDbConnection.InternalExecuteReader ilOffset = 0x16
at CrmDbConnection.InternalExecuteReader(IDbCommand コマンド, Boolean capturePerfTrace) ilOffset = 0x16
at CrmDbConnection.ExecuteReader(IDbCommand コマンド, Boolean impersonate, Boolean capturePerfTrace) ilOffset = 0x10
at ServerLocatorService.TryGetDefaultUserOrganizationFromDatabase(String authenticationInfo, Guid& organizationId) ilOffset = 0x66
at ServerLocatorService.TryGetDefaultOrganization(String authenticationInfo, Guid& orgId) ilOffset = 0x40
at ServerLocatorService.GetDefaultOrganization(String authenticationInfo) ilOffset = 0x16
at WindowsAuthenticationProvider.QueryForOrganizationId(String userToken) ilOffset = 0xC
at WindowsAuthenticationProviderBase.Authentication(HttpApplication application, WindowsIdentity userIdentity) ilOffset = 0x90
at AuthenticationStep.Authentication(HttpApplication application) ilOffset = 0x31
at AuthenticationPipeline.Authentication(HttpApplication application) ilOffset = 0x11
at AuthenticationEngine.Execute(Object sender, EventArgs e) ilOffset = 0x10D
at SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() ilOffset = 0x5D
at HttpApplication.ExecuteStep(IExecutionStep ステップ, Boolean& completedSynchronously) ilOffset = 0x15
at ApplicationStepManager.ResumeSteps(Exception error) ilOffset = 0x10E
at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) ilOffset = 0x5C
at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) ilOffset = 0xFC
at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType) ilOffset = 0x45
>exec p_GetDefaultOrgFromAuthInfo 'W: S-1-5-21-1229272821-1580436667-839522115-500'

[DateTime]プロセス: w3wp |Organization:000000000-0000-0000-0000000000000000 |スレッド: 15 |カテゴリ: プラットフォーム |ユーザー: 0000000000-0000-0000-000000000000000000 |レベル: 詳細 |ReqId: ReqId |ClaimsIdentityAuthorizationManager.Authenticate ilOffset = 0x1E4
at ClaimsIdentityAuthorizationManager.Authenticate(OperationContext operationContext) ilOffset = 0x1E4
at ClaimsIdentityAuthorizationManager.CheckAccessCore(OperationContext operationContext) ilOffset = 0xA0
at AuthorizationBehavior.Authorize(MessageRpc& rpc) ilOffset = 0x28
at ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) ilOffset = 0x293
at MessageRpc.Process(Boolean isOperationContextSet) ilOffset = 0x62
at ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext) ilOffset = 0x1D7
at ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext) ilOffset = 0xF1
at ChannelHandler.AsyncMessagePump(IAsyncResult result) ilOffset = 0x21
at AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) ilOffset = 0x0
at AsyncResult.Complete(Boolean completedSynchronously) ilOffset = 0xC2
at ReceiveItemAndVerifySecurityAsyncResult'2.InnerTryReceiveCompletedCallback(IAsyncResult result) ilOffset = 0x55
at AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) ilOffset = 0x0
at AsyncResult.Complete(Boolean completedSynchronously) ilOffset = 0xC2
at AsyncQueueReader.Set(Item item) ilOffset = 0x21
at InputQueue'1.EnqueueAndDispatch(Item item, Boolean canDispatchOnThisThread) ilOffset = 0xDD
at InputQueue'1.EnqueueAndDispatch(T item, Action dequeuedCallback, Boolean canDispatchOnThisThread) ilOffset = 0x0
at SingletonChannelAcceptor'3.Enqueue(QueueItemType item, Action dequeuedCallback, Boolean canDispatchOnThisThread) ilOffset = 0x35
at HttpChannelListener.HttpContextReceived(HttpRequestContext context, Action callback) ilOffset = 0x109
at HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result) ilOffset = 0x52
at HostedHttpRequestAsyncResult.HandleRequest() ilOffset = 0x101
at HostedHttpRequestAsyncResult.BeginRequest() ilOffset = 0x0
at HostedHttpRequestAsyncResult.OnBeginRequest(Object state) ilOffset = 0x9
at AspNetPartialTrustHelpers.PartialTrustInvoke(ContextCallback コールバック, オブジェクトの状態) ilOffset = 0x19
at HostedHttpRequestAsyncResult.OnBeginRequestWithFlow(Object state) ilOffset = 0x30
at ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) ilOffset = 0x22
at IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) ilOffset = 0x5
at _IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) ilOffset = 0x3C
>CrmSessionAuthenticationManager は、CrmClaimsIdentity [UserToken:C:admin@contoso.local] [UserId:{UserId}] を公開しました。

原因

物理パスの資格情報は IIS で指定されます。 これらの資格情報は、実行されている Kerberos 認証を上書きするため、配置しないでください。

解決方法

この問題を解決するには、次の手順を実行します。

  1. [スタート] に移動し、[ 管理ツール] をポイントし、 インターネット インフォメーション サービス (IIS) マネージャーを開きます。
  2. [サーバー] を展開し、[サイト] を展開します。
  3. Microsoft Dynamics CRM サイトを右クリックし、[Web サイトの管理] を選択し、[詳細設定] を選択します。
  4. 表示されたウィンドウで、[ 物理パスの資格情報 ] 行を見つけて、資格情報が含まれていないことを確認します。