Authentication 将逻辑应用程序凭据传递给自定义SharePoint客户端C#功能应用程序SharePoint

Authentication 将逻辑应用程序凭据传递给自定义SharePoint客户端C#功能应用程序SharePoint,authentication,sharepoint,azure-functions,azure-logic-apps,sharepoint-clientobject,Authentication,Sharepoint,Azure Functions,Azure Logic Apps,Sharepoint Clientobject,我已经在Azure中创建了逻辑应用程序,它使用我的凭据连接到我们的SharePoint在线站点,然后在我不在场的情况下运行。我希望在SharePoint网站上执行更复杂的操作,并希望创建一个C#Function应用程序。但是,如果我不需要在那里进行身份验证,我就无法将凭据传递到Microsoft.SharePoint.Client。我已经研究使用证书,但这需要管理员批准,我不能得到。我是否可以使用现有的SharePoint Logic应用程序连接(其中包含我的凭据信息)并将其传递给自定义功能应用

我已经在Azure中创建了逻辑应用程序,它使用我的凭据连接到我们的SharePoint在线站点,然后在我不在场的情况下运行。我希望在SharePoint网站上执行更复杂的操作,并希望创建一个C#Function应用程序。但是,如果我不需要在那里进行身份验证,我就无法将凭据传递到Microsoft.SharePoint.Client。我已经研究使用证书,但这需要管理员批准,我不能得到。我是否可以使用现有的SharePoint Logic应用程序连接(其中包含我的凭据信息)并将其传递给自定义功能应用程序?下面是Logic应用程序中连接外观的快速图像。我不想使用内置的Azure操作,而是想用我的自定义函数应用程序替换它,将该连接传递给函数应用程序

然后我需要使用它以某种方式创建ClientContext:

                var ctx = new ClientContext(siteUrl);
                ctx.ExecutingWebRequest += (s, e) =>
                {
                    e.WebRequestExecutor.RequestHeaders["Authorization"] = "Bearer " + authenticationResult.AccessToken;
                };
                return ctx;
然后可用于SharePoint网站:

                using (ClientContext ctx = await csomHelper.GetClientContext(siteUrl))
                {
                    Web web = ctx.Web;
                    ctx.Load(web);
                    ctx.ExecuteQuery();
                    log.LogInformation($"found site : {web.Title}");
                }

虽然我认为无法从现有连接获取访问令牌,但您可以将函数应用公开为逻辑应用中使用的应用

首先,您需要向sharepoint注册Azure广告应用程序

然后,在创建自定义连接器时,应该是
通用OAuth 2.0
,其中包含您先前创建的Azure广告的适当详细信息

然后,您可以在逻辑应用程序中使用自定义连接器,这将触发类似于其他连接器的OAuth流


有一个非常相似的例子,你可以参考。

我研究和思考得越多,我就越觉得你是正确的,这是不可能做到的。