SharePoint Server 2016 のエラー "ワークフローマネージャーから返されなかった応答が返されました"

現象

単一の WFM サーバーを使用して SharePoint Server 2016 を Windows Server 2016 にセットアップした場合、SharePoint でワークフローマネージャーをインストールして構成すると、sharepoint Designer を使用するワークフローは次のエラーで失敗します。

Microsoft.Workflow.Client.AuthenticationException: A response was returned that did not come from the Workflow Manager. Status code = 401:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
<style type="text/css">
<!--
body{marg

原因

開発ファームの WFM サーバーで、"匿名" 認証が無効になっています。

解決方法

"Anonymous" 認証を再度有効化すると、問題を解決できます。

詳細情報

問題を絞り込んだ方法

 
Client (SharePoint) Request
=======================

PUT http://<WFMENDPOINT>/SharePoint/default/23fc1ff1-0a17-41dd-862a-6d7b13be1435  HTTP/1.1
Host: <WFMENDPOINT>
<ScopeInfo xmlns="http://schemas.microsoft.com/workflow/2012/xaml/activities" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><DefaultWorkflowConfiguration><appSettings><AppSetting><Key>Microsoft.SharePoint.ActivationProperties.SiteId</Key><Value>23fc1ff1-0a17-41dd-862a-6d7b13be1435</Value></AppSetting><AppSetting><Key>Microsoft.SharePoint.ActivationProperties.Host</Key><Value><SITE URL></Value></AppSetting><AppSetting><Key>Microsoft.SharePoint.ActivationProperties.HostUri</Key><Value>http://<SITE URL> </Value></AppSetting></appSettings></DefaultWorkflowConfiguration><Description>23fc1ff1-0a17-41dd-862a-6d7b13be1435</Description></ScopeInfo>


Server (WFM) Response
====================

HTTP/1.1 401 Unauthorized
Content-Type: text/html
Server: Microsoft-IIS/10.0
<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>
  <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>

(サーバー応答の下の "HTTP/1.1 401 が承認されていません" ということに注意してください)。

  • 作業 条件では、スコープ情報をそのように更新します。
Client (SharePoint) Request
======================

PUT http://wfm.contoso.com:12291/SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8  HTTP/1.1
Host: wfm.contoso.com:12291
<ScopeInfo xmlns="http://schemas.microsoft.com/workflow/2012/xaml/activities" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><DefaultWorkflowConfiguration><appSettings><AppSetting><Key>Microsoft.SharePoint.ActivationProperties.SiteId</Key><Value>09d8c9b6-1994-4dad-bf46-cf5de701c0c8</Value></AppSetting><AppSetting><Key>Microsoft.SharePoint.ActivationProperties.Host</Key><Value>sp</Value></AppSetting><AppSetting><Key>Microsoft.SharePoint.ActivationProperties.HostUri</Key><Value>http://sp</Value></AppSetting></appSettings></DefaultWorkflowConfiguration><Description>09d8c9b6-1994-4dad-bf46-cf5de701c0c8</Description></ScopeInfo>

Server (WFM) Response
====================

HTTP/1.1 201 Created
Location: http://wfm.contoso.com:12291/SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8
Server: Microsoft-IIS/10.0

(サーバーの応答で "HTTP/1.1 201 が作成されました" というメモ)。

  • ワークフローの発行中にワークフローマネージャーの内部アクティビティを読み取る ETL トレースをキャプチャしました。
  • エラーが発生しました。要求は、内部的にはまだ WFM に到達していないことを示しています。
  • 作業条件では、スコープ情報をそのように更新します。
WFM Server Internal Activities 
=========================

The gateway received an HTTP request. Method: PUT, Uri: http://wfm.contoso.com:12291/SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8, Scope path: 
Gateway received request details: Method: PUT, RequestUri: 'http://wfm.contoso.com:12291/SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
 Accept: application/xml
 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImRWaWQ1MFpHYzVuLWh1TXdEc1V3bVdCQ2hZSSJ9.eyJhdWQiOiIwMDAwMDAwNS0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAvd2ZtLmNvbnRvc28uY29tOjEyMjkxQGVhZWQ2MzJkLTEyZjMtNDNlNS1iYmU5LTkwMDhjOGU3YWIxYyIsImlzcyI6IjAwMDAwMDAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMEBlYWVkNjMyZC0xMmYzLTQzZTUtYmJlOS05MDA4YzhlN2FiMWMiLCJuYmYiOiIxNTY0MDMyNTMwIiwiZXhwIjoiMTU2NDE2MjEzMCIsIm5hbWVpZCI6IjAwMDAwMDAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMEBlYWVkNjMyZC0xMmYzLTQzZTUtYmJlOS05MDA4YzhlN2FiMWMifQ.gIvnI1f9EpgCaZMZ7lp-ryq9u_xJ5eVCPv-EGzqBjU_99anCgw64HsU8wCmtvYarj8Qt6XzjrNbY1eXIXLcSTyLsiww26w-OJIxYbKZgX0wvTehyzgY3k_LdkVOae--RkAZ5jRTSZ2hr_nTMbTNj0kJ8ZmLYkSEqhuuZHtqXLcaOSXXQ0xPosBElr_U513P7n8meFfty624l_WcB99wtCPAmA8_kPNhZp6vrcxVuj6vkqz7lcCzTZY0d2qcDGuW1d5DsZwcNKQ7SSdVC1tbK7VYNDi5qdHSBaaZrHWn70FwMdt_nCRLDpEbd8K2tn6w6Ssnbtdb697TqeIRKsyZ_Ew
 Expect: 100-continue
 Host: wfm.contoso.com:12291
 User-Agent: Microsoft-WF/1.0.1
 E2EActivity: nvOccj36scBdKMCu3bsJLQ==
 client-request-id: 729cf39e-fa3d-c0b1-5d28-c0aeddbb092d
 Content-Length: 636
 Content-Type: application/xml
}
Start retrieving scope security settings from database.
Creating Scope /SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8
Successfully created scope /SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8
Workflow Manager frontend completed HTTP request successfully and is <mark>returning status code 201 (Created).
Gateway sending HTTP response: StatusCode: 201, ReasonPhrase: 'Created', Version: 1.1, Content: <null>, Headers:
{
 Location: http://wfm.contoso.com:12291/SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8
 Server: Microsoft-WF/1.0.1
}

(「スコープ/SharePoint/default/09d8c9b6-1994-4dad-bf46-cf5de701c0c8 が正常に作成されました」と「(作成された状態コード 201 (作成)」を参照)。

出力

  • これは、要求が WFM サーバーに到達していますが、それ以上、SB またはバックエンドに到達していないことを示しています。 そのため、問題のコンポーネントは IIS でした。
  • ワークフローの発行中に、社内の WFM に IIS ログをキャプチャしました。 公開中に IIS が実際にイベントを持つことがわかりました。
2019-07-25 05:28:49 192.168.2.104 PUT /$Scope - 12291 - 192.168.2.102 Microsoft-WF/1.0.1 - 401 0 0 1477
2019-07-25 05:28:52 192.168.2.104 PUT /$Scope - 12291 - 192.168.2.102 Microsoft-WF/1.0.1 - 201 0 0 562
2019-07-25 05:28:52 192.168.2.104 PUT /$Scope - 12291 - 192.168.2.102 Microsoft-WF/1.0.1 - 201 0 0 78
2019-07-25 05:28:53 192.168.2.104 PUT /$Activities/WorkflowXaml_1a80aab2_6f61_4cc9_a8ca_47b599ceb796 $overwriteXClass=true 12291 - 192.168.2.102 Microsoft-WF/1.0.1 - 201 0 0 1558
2019-07-25 05:29:05 192.168.2.104 PUT /$Workflows/607e3d78-07fd-4b3b-99c1-2197768e7db1 - 12291 - 192.168.2.102 Microsoft-WF/1.0.1 - 201 0 0 6741
2019-07-25 05:29:06 192.168.2.104 GET /$Scope - 12291 - 192.168.2.102 Microsoft-WF/1.0.1 - 200 0 0 15
  • "指定した資格情報を使用してこのディレクトリまたはページを表示するアクセス許可がありません" というエラーに基づいて、ラボの WFM 上の「ワークフロー管理サイト」の IIS 仮想サーバーのアクセス許可について説明しました。 [匿名] と [Windows 認証] が有効として設定されています。
  • "匿名" 認証を無効にすると、エラーが瞬時に再現されます。
  • クレーム認証 (Windows クレーム、フォーム認証、または信頼できる Id プロバイダー) を使用している場合、アプリケーションは、匿名認証とフォーム認証が IIS 構成で有効になっていることを確認すると共に、web.config のフォーム認証用に構成されます (https://support.microsoft.com/en-in/help/2655719/sharepoint-authentication-settings-in-central-administration-do-not-ma)
  • 既定では、windows クレーム認証を使用して、SP 2013 を開始し、その上で Oauth を使用して、WFM > SP 通信が行われます。
  • 開発ファームの WFM サーバーで "Anonymous" 認証が無効になっていることを確認しました。 これを有効にすると、問題が修正されます。
  • ワークフローを正常に公開して実行することができました。

さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。