问题描述
我有一个 SP2016 网站集。农场的组成如下: 域服务器:DomainSPxxx 前端服务器:FrontendSP 数据库服务器:DatabaseSP
网站集有两个扩展:
-
默认 (http) - 使用 Windows 身份验证访问 DomainSPxxx.com 域
-
具有混合访问 (https) 的互联网 - 对 DomainSPxxx.com 域的 Windows Auth 访问和基于表单的访问,LDAP 提供程序始终与 DomainSPxxx.com 域关联
当域帐户使用 Windows Auth 进行身份验证时,显示的用户名是:userx@DomainSPxxx.com,当它与 ldap 连接时,它将类似于 '0#.f|ldapmember:userx|userx@DomainSPxxx.com'
在扩展默认情况下,仅使用管理帐户。 此扩展专门用于服务/维护活动。比如对其进行文档搜索爬取。
问题。 我开发了一个对 SP 列表执行操作的工作流。 鉴于 : 工作流管理器配置正确 用户配置文件配置正确 这两个服务都处于活动状态。 该站点的 Worflow 应用程序处于活动状态且配置正确,抛出 appinv.asxp 页面 StsApplication 池负载配置文件为真 Worflow 可以使用应用功能已激活
说明问题 在实践中,当 https 互联网扩展的工作流启动时,对于执行的每个操作(例如读取记录),并且好像系统需要文档库的域用户在场。
示例: 用户“0#.f|ldapmember:userx|userx@DomainSPxxx.com”在列表“TestList”上的合作者。 如果工作流使用用户 '0#.f|ldapmember:userx|userx@DomainSPxxx.com' 对文档库 'TestList' 执行读取操作,则失败表明资源访问问题。我检查了 SP 日志。 下面是一个例外:
Exception occured in scope Microsoft.SharePoint.SPListItemEntityCollection.GetById. Exception =
System.ArgumentException: Element does not exist.
It may have been deleted by another user.*
实际上该元素存在我尝试使用Sharepoint api从url启动查询,用户'0#.f|ldapmember:userx|userx@DomainSPxxx.com'已连接并返回数据
就好像从工作流发出的调用仅通过 Windows 身份验证的域帐户声明访问权限。 在上述示例的情况下,仅为帐户“0#.f|ldapmember:userx|userx@DomainSPxxx.com”授予对集合的正确权限是不够的,但要使调用正常工作,您必须授予相同的权限帐户 userx@DomainSPxxx.com 的权限。 以下是日志的摘录,其中包含一些让我怀疑的记录:
这是我注意到的:
Medium Name=Request (GET:https://testsite.domainspxxx.com/_api/web/lists(guid'xxxxxxxxx')/Items(8))
High Reached maximum number of Failed machines based on ping results for this routing group
Unexpected User-Agent is empty
High Did not find token claim in token. ClaimType: 'scope'.
High Did not find token claim in token. ClaimType: 'scp'.
High Did not find token claim in token. ClaimType: 'clientappid'.
High Did not find token claim in token. ClaimType: 'appid'.
High Did not find token claim in token. ClaimType: 'roles'.
High Token is for a windows account.
Medium Couldn't find a user using property 'WorkEmail' of value 'userx@DomainSPxxx.it'
High GetUserProfile_RetrieveUser_Cache ExpectedFailure: Office.Server.UserProfiles. UserNotFoundException:
An error was encountered while retrieving the user profile. at Microsoft.Office.Server.UserProfiles.UserProfileCache.GetUserData
(UserProfileManager objManager,Nullable`1 recordId,Guid gAcct,String strAcct,Byte[] bSid,String strEmail,Boolean doNotResolvetoMasteraccount) at Microsoft.Office.Server.UserProfiles.UserProfile.RetrieveUser(String strAcct,Boolean doNotResolvetoMasteraccount,Boolean loadFullProfile,Boolean loadColleagueRecordIds,String strEmail)
Medium Leaving Monitored Scope: (UserProfile.RetrieveUserFromCache) Execution Time=8.87822334961566; cpu Milliseconds=3; sql Query Count=1;
Parent=Executing the user mapping operation in GetMappedIdentityClaim()
Medium Couldn't find a user using property 'SID' of value 'System.Byte[]'
Unexpected SPSecurityTokenServiceManager!EnsureSharePointlogonRequestClaims: InputIdentity doesn't conatin a PrimarySid claim.
Thanks
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)