SharePoint 2016 工作流权限问题

问题描述

我有一个 SP2016 网站集。农场的组成如下: 域服务器:DomainSPxxx 前端服务器:FrontendSP 数据库服务器:DatabaseSP

网站集有两个扩展:

  1. 认 (http) - 使用 Windows 身份验证访问 DomainSPxxx.com 域

  2. 具有混合访问 (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 (将#修改为@)