将逻辑应用程序凭据传递到自定义 SharePoint 客户端 C# 函数应用程序 SharePoint

Pass Logic App credential to custom SharePoint Client C# Function App SharePoint

我在 Azure 中创建了逻辑应用程序,它使用我的凭据连接到我们的 SharePoint Online 网站,然后 运行 我不在场。我想在 SharePoint 网站上执行更复杂的操作,并且更愿意创建 C# 函数应用程序。但是,我无法看到一种无需在场进行身份验证即可将我的凭据传递给 Microsoft.SharePoint.Client 的方法。我已经使用证书进行了研究,但这需要我无法获得的管理员批准。有没有办法让我使用现有的 SharePoint 逻辑应用程序连接(其中包含我的凭据信息)并将其传递给自定义函数应用程序?下面是连接在逻辑应用中的外观的快速图像。我不想使用内置的 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}");
                }

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

首先,您需要使用 appropriate permissions 注册 Azure AD 应用程序才能共享点。

然后,在创建自定义连接器时,security config 应该 Generic OAuth 2.0 包含您之前创建的 Azure AD 的适当详细信息。

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

有一个official doc for creating a custom connector for an Azure AD protected Azure Function非常相似,你可以参考。