使用 O365 保护 ASP.NET WebAPI

Secure ASP.NET WebAPI with O365

我正在尝试为这种情况找到解决方案: 我们创建了一个提供商托管的共享点应用程序,它基本上是一个 SPA 网站。 当然,每个 SPA 网站都有一个 Web API。我想保护此 Web API 并使用有效的 O365 令牌强制执行身份验证。 我如何使用 O365 保护 Web API?只能通过AAD直接获取吗?

感谢您的任何提示。 最好 劳林

Office365 在幕后使用 Azure AD,因此为了保护您的 API 您必须通过 Azure Active Directory。

配置身份验证有几个步骤:

  1. Register your application with ADD
  2. 通过 ADAL Javascript library
  3. 从 ADD 为您的用户获取访问令牌
  4. 使用访问令牌
  5. 调用api

有一个使用 Azure 活动目录的示例 SPA 位于 here.

在 WebAPI 中处理身份验证的代码位于 App_Start/Startup.Auth.cs 文件中。导入 Microsoft.Owin.Security.ActiveDirectory 名称 space 并为用户 Azure Active Directory 身份验证设置管道:

public partial class Startup
{
    public void ConfigureAuth(IAppBuilder app)
    {
        app.UseWindowsAzureActiveDirectoryBearerAuthentication(
            new WindowsAzureActiveDirectoryBearerAuthenticationOptions
            {
                Audience = ConfigurationManager.AppSettings["ida:Audience"],
                Tenant = ConfigurationManager.AppSettings["ida:Tenant"]
            });
    }

}

要锁定 API 路由,请务必在控制器或操作上放置 [Authorize] 属性。