首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Azure管理中保护API,然后通过角( Angular 5)访问?

如何在Azure管理中保护API,然后通过角( Angular 5)访问?
EN

Stack Overflow用户
提问于 2018-05-17 01:07:25
回答 1查看 2.1K关注 0票数 3

背景

  1. 我在Azure-中创建了一个测试API。只要我提供“订阅键”,我就可以从API中获取数据。我不知道如何设置安全连接到Azure AD。
  2. 我正在创建一个角度的SPA,并使用Angular 5。我遵循这个SpikesApps优秀指南,但是我使用的是adal-angular5 5而不是SpikesApps优秀指南。我能够获得登录用户的1296字符令牌。见下面的截图:

上面链接的SpikesApps指南是连接到一个作为Azure WebApp创建的API,而不是的一部分。指南使用用户令牌并将其作为HTTP中的标头提交。(授权:无记名用户1296字符令牌)。

我对Azure有限的知识告诉我,为Azure WebbApp API设置安全性与Azure- API管理中的API不同。

我对SpikesApps指南的不同之处在于,我希望安全地连接到Azure管理中的一个API。

我的问题

  1. 是否有可能在Azure- API管理中保护API,这样我的角度SPA就可以通过提供Authorization: Bearer <user 1296 char token>头来访问它?(即根据在SpikesApps指南中访问的API )。
  2. 如果没有,我有什么选择?
  3. 我在中读过一些关于API的“验证-jwt”策略的文章。如果这是唯一的方法,我如何获得一个JWT?我假设JWT与我已经拥有的1296 char用户令牌不一样?

截图

(显示由Angular 5获取的用户信息在我的角度SPA内)

(例如angular5 5如何将授权头添加到get请求.https://www.npmjs.com/package/adal-angular5中)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-17 02:57:50

已经想出了解决方案,实际上是在发布上述问题一小时后(在此之前,我浪费了许多时间!)

需要将验证-jwt添加到API的入站策略中。

我这样做是通过以下(一些)本页的说明:https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad#configure-a-jwt-validation-policy-to-pre-authorize-requests

实际上只需要做以下几件事:

  1. 在Azure AD中创建一个“应用程序注册”,以便与APIM中的API相关联。让我们称它为后端应用程序
  2. 在API管理中,修改有关API的入站组件的策略,按照下面的屏幕截图添加代码
  3. 在发出GET请求时,标头需要包括:<Authorization: Bearer {USER_TOKEN}> (如上面问题中的指南所示)
  4. 不要忘记在GET请求中包含订阅键。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50381936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档