在服务器边界对AzureAD进行WebAPI身份验证

时间:2016-04-28 09:46:27

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

我有一个.NET 4.5 WebAPI应用程序,它使用“集成Windows身份验证”对Active Directory进行身份验证。允许本地Active Directory中的每个用户进行身份验证。身份验证完全在应用程序外部完成,我可以通过ApiController.User访问当前用户主体。

对于Azure App Services中的部署,我尝试使用Azure AD进行大致相同的操作 - 使用OAuth身份验证允许来自特定Azure AD租户的所有用户登录,这看起来需要的不仅仅是WebConfig中的单行。

我跟随Azure AD Quickstart逐字逐句,直到SignIn和SignOut函数:它们只适用于MVC和Controller,而不适用于WebAPI和ApiController

我发现ApiController works differently。但我仍然停留在我的ApiController无法提供MS_UserPrincipal属性的位置。

This tutorial使用WebAPI和EntityFramework,但在Api启动之前不需要身份验证。此外,它创建了一个用户帐户数据库 - 在我的例子中,Azure AD将是该数据库。

我发现我可以使用

强制执行所有控制器的登录要求
filters.Add(new System.Web.Mvc.AuthorizeAttribute());
过滤器配置中的

,但我仍未转发登录,MS_UserPrincipalApiController.User也不包含AzureAD IPrincipal。

那么,我如何针对整个应用程序(“在服务器边界”)实施OAuth身份验证要求(针对特定租户的Azure AD)?

0 个答案:

没有答案