Asp.net mvc 如何为单独的非Azure ASP.NET MVC web应用程序和web Api站点使用Azure AD身份验证?
我们有以下几点:Asp.net mvc 如何为单独的非Azure ASP.NET MVC web应用程序和web Api站点使用Azure AD身份验证?,asp.net-mvc,azure,asp.net-web-api,azure-active-directory,Asp.net Mvc,Azure,Asp.net Web Api,Azure Active Directory,我们有以下几点: ASP.NET MVC 5 web应用程序托管在公司服务器(非Azure)上,例如ourcompany.com。这不是AngularJS或单页应用程序 ASP.NET MVC WebApi 2托管在我们公司的服务器(非Azure)上,例如api.ourcompany.com。这是一个独立于网站的项目,因此可以由多个应用程序/网站访问 我们公司的Azure Active Directory 我们要做的是: 用户访问网站并通过Azure AD身份验证登录 Web应用程序使用Ja
- ASP.NET MVC 5 web应用程序托管在公司服务器(非Azure)上,例如ourcompany.com。这不是AngularJS或单页应用程序
- ASP.NET MVC WebApi 2托管在我们公司的服务器(非Azure)上,例如api.ourcompany.com。这是一个独立于网站的项目,因此可以由多个应用程序/网站访问
- 我们公司的Azure Active Directory
- Azure广告的Web应用程序
- Web应用程序到WebApi
- 从SPA到WebApi
如果API组件包含在web应用程序项目中,那么来自页面的JS调用将可以访问用户凭据。然而,与API不同的是,问题是如何利用#1中的身份验证来允许#3使用JS调用WebApi并访问所有身份验证信息?通过使用Azure AD和OpenID Connect从WebApp到WebApi示例,我能够得到一个类似的场景 该示例为web应用程序上的用户提供单一登录,并将用户身份从web应用程序委派给web api。它通过在web应用程序控制器中检索承载令牌并使用它调用web api来实现。 通过将承载令牌放在授权头上,我们可以轻松地使用相同的承载令牌进行javascript ajax调用:
//jQuery example
settings.headers = {
'Authorization': 'Bearer ' + bearerToken,
};
我能够在没有adal.js library的情况下实现这一点。仍然需要Cors来进行跨域ajax调用。。我需要做类似的事情。