C# 在服务器边界针对AzureAD验证WebAPI

C# 在服务器边界针对AzureAD验证WebAPI,c#,azure,asp.net-web-api,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中的

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

对于Azure App Services中的部署,我正在尝试对Azure AD执行大致相同的操作—使用OAuth身份验证来允许特定Azure AD租户中的所有用户登录,这似乎不仅仅需要WebConfig中的一行代码

我一直在逐字逐句地遵循,直到涉及到登录和注销功能:它们只适用于MVC和
控制器
,而不适用于WebAPI和
ApiController

我发现了。但是我仍然停留在一个点上,
MS_UserPrincipal
属性无法从我的ApiController获得

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

我发现我可以使用

filters.Add(new System.Web.Mvc.AuthorizeAttribute());
在过滤器配置中,但我仍然既没有被转发到登录,也没有被转发到
MS_UserPrincipal
ApiController。用户
包含AzureAD IPrincipal

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