azure - SPA 应用程序 (Angular 5) 如何访问单独的 WebAPI(在 Azure AD 下)

标签 azure asp.net-web-api azure-active-directory single-page-application

我们有

  • SPA 应用程序,例如,SPAApp1(使用 ADAL 包的 Angular5)受 Azure AD 保护。
    注意:此解决方案没有 .NET 组件
  • WebAPI,例如受 AzureAD 保护的 WebAPI1 (.NET)。
  • 在 WebAPI1 中创建了名为 AllAccess 的范围
  • SPAApp1 授予对 Azure 门户中 AllAccess 范围 WebAPI1 的访问权限。

登录 SPA 应用程序时,我们会获取用户的 ID_Token。

  1. 我们如何从 SPAApp1 调用 WebAPI1 并传递 token 正确的范围?
  2. 此 token 是如何生成的,可用于 从 SPAApp1 访问 WebAPI1?

据我所知,要访问资源,我们需要获取一个访问 token ,其中包含所需的范围,aud(资源的)?我们如何在SPAApp中获取这个访问 token

最佳答案

由于您使用的是 adal 包,因此您需要的是资源(而不是 msal 所需的范围参数)。资源的值应为 api://{your_webapi_clientId}

可以引用代码here获取访问 token 。

关于azure - SPA 应用程序 (Angular 5) 如何访问单独的 WebAPI(在 Azure AD 下),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56962755/

相关文章:

c# - 在升级的MVC项目中使用ExceptionFilterAttribute

c# - 无法在最新版本的 IdentityModel.Tokens 中设置有效受众

python - Six.moves 中的关键错误返回 sys.modules[fullname]

sql-server - 将 Azure 数据库连接到 SQL Server 时出错

azure - 访问 Azure AD 图形资源管理器时出错

azure - 获取队列触发器 azure webjob 的消息元数据

sql-server - 是否可以创建 Entity Framework 上下文实例的副本来进行并行查询

.net - ASP.NET Web API - 来自 ASP.NET MVC 4 应用程序的 POST/PUT/DELETE 请求

azure - 如何以编程方式向外部用户授予对 azure 资源组的访问权限

Azure WebApp 与 Azure AD 应用程序返回 `auth/login/aad/callback` 权限