gpt4 book ai didi

asp.net-mvc - 如何对单独的非 Azure ASP.NET MVC Web 应用程序和 Web Api 站点使用 Azure AD 身份验证?

转载 作者:行者123 更新时间:2023-12-03 17:40:30 26 4
gpt4 key购买 nike

我们有以下内容:

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

我们想做的是:

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

我在 Azure 文档中看到以下文档/示例:

  • 到 Azure AD 的 Web 应用
  • Web 应用程序到 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 应用程序委托(delegate)给 Web api。它通过在 Web 应用程序 Controller 中检索不记名 token 并使用它来调用 Web API 来实现此目的。通过将不记名 token 放在授权 header 上,我们可以轻松地使用相同的不记名 token 进行 javascript ajax 调用:

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

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

关于asp.net-mvc - 如何对单独的非 Azure ASP.NET MVC Web 应用程序和 Web Api 站点使用 Azure AD 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37888956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com