加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何将Azure AD身份验证用于单独的非Azure ASP.N

发布时间:2020-12-16 07:42:03 所属栏目:asp.Net 来源:网络整理
导读:我们有以下内容: 托管在我们公司服务器(非Azure)上的ASP.NET MVC 5 Web应用程序,例如ourcompany.com.这不是AngularJS或单页面应用程序. ASP.NET MVC WebApi 2托管在我们公司的服务器(不是Azure)上,例如api.ourcompany.com.这是一个与网站分开的项目,因此可
我们有以下内容:

>托管在我们公司服务器(非Azure)上的ASP.NET MVC 5 Web应用程序,例如ourcompany.com.这不是AngularJS或单页面应用程序.
> ASP.NET MVC WebApi 2托管在我们公司的服务器(不是Azure)上,例如api.ourcompany.com.这是一个与网站分开的项目,因此可以被多个应用/网站访问.
>我们公司的Azure Active Directory

我们想要做的是:

>用户访问网站并通过Azure AD身份验证登录.
> Web应用程序使用JavaScript呈现页面.
>页面JS调用Web API

我在Azure文档中看到了docs / samples:

> Web App到Azure AD
> Web App到WebApi
> SPA到WebApi

如果API组件包含在Web应用程序项目中,则来自页面的JS调用将可以访问用户凭据.但是,如果API分离,问题是如何利用#1中的身份验证来允许#3使用JS调用WebApi并访问所有身份验证信息?

解决方法

通过使用Azure AD和OpenID Connect从WebApp到WebApi示例,我能够获得类似的工作.

Calling a web API in a web app using Azure AD and OpenID Connect

该示例为Web应用程序上的用户提供单点登录,并将用户身份从Web应用程序委派给web api.它通过在Web应用程序控制器中检索承载令牌并使用它来调用Web api来实现.
通过将承载令牌放在Authorization标头上,我们可以轻松地使用相同的承载令牌进行javascript ajax调用:

//jQuery example
settings.headers = {
    'Authorization': 'Bearer ' + bearerToken,};

在没有adal.js liberary的情况下,我能够让它工作.仍需要Cors来进行跨域ajax调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读