使用O365保护ASP.NET WebAPI

时间:2015-08-25 12:53:16

标签: c# asp.net-web-api office365 azure-active-directory

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

    使用位于here.

    的Azure Active目录的示例SPA

    在WebAPI中处理身份验证的代码位于App_Start/Startup.Auth.cs文件中。导入Microsoft.Owin.Security.ActiveDirectory名称空间并将pipepline设置为用户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]属性。