通常使用SharePoint Online创建复杂的业务应用程序,我需要将业务逻辑外部化为外部服务,以便使用.net代码和第三方程序集。
就我而言,我正在开发一个由Azure网站托管的Rest服务。
我的问题是:
我是否可以从SharePoint获取包含当前用户信息的访问令牌,将其传递给外部Rest服务,然后重复使用它以使用当前用户凭据返回和验证用户到SharePoint?
此服务从两个JavaScript代码都调用2013工作流程
你能给我一些关于它的文件吗?
谢谢,
塞尔吉奥
答案 0 :(得分:0)
SharePoint Online的外部REST服务身份验证...此服务从两个JavaScript代码中调用2013工作流程
默认情况下,SharePoint在线受Azure AD保护。根据描述,有两种认证方案。首先,您希望在线登录SharePoint后无需身份验证即可调用自定义REST服务。 第二,您可以通过使用SharePoint在线用户的凭据进行令牌交换来调用REST服务。
在第一个场景中,我们可以集成Open Connect ID来验证REST服务。在第二种方案中,我们可以使用OAuth 2.0来集成Azure AD。
以下是演示解决方案的主要步骤:
在Azure AD上注册Web应用
创建MVC和Web API项目
添加以下代码以使用Open connect ID和OAuth 2.0 ConfigureAuth(IAppBuilder app)方法(Startup.Auth.cs)
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = "5efa8abc-13dc-4681-83f5-c6fde07116ac",
Authority = "https://login.windows.net/yourtenant.onmicrosoft.com",
PostLogoutRedirectUri = "http://localhost:24865/",
});
app.UseWindowsAzureActiveDirectoryBearerAuthentication(new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = "https://yourtenant-my.sharepoint.com/",
Tenant = "yourtenant.onmicrosoft.com"
});
您可以参考以下链接,了解有关Azure AD受保护资源的更多详细信息: