【问题标题】:How to call an secured webapi from another webapi which is invoked from angular2 client如何从从 angular2 客户端调用的另一个 webapi 调用安全 webapi
【发布时间】:2018-03-20 10:27:43
【问题描述】:
我有一个使用 openid-connect 和 oauth2 保护的 angular2 应用程序。用户通过身份验证后,应用程序访问受保护的 webapi1。到这里为止一切正常。
现在我想访问另一个安全的 webapi,例如:webapi1 方法中的 webapi2。如何做到这一点,即。如何让不记名令牌传入httpclient?
我正在使用 localstorage 将访问令牌存储在 Angular 应用程序中。
谢谢
【问题讨论】:
标签:
angular
asp.net-web-api2
openid-connect
angular-local-storage
【解决方案1】:
首先您需要明确哪个是主要的身份验证服务器(Web API 1 或 Web API 2)。
- 如果 Web API 2 是主要的身份验证服务器,那么您需要使用 API 1 和 API 2 之间的服务器到服务器通信来获取不记名令牌,然后进行令牌转发。
- 如果两个 API 都有自己的身份验证机制,那么在对 API 1 进行身份验证之前,您需要从 API 2 获取令牌,然后将 API 2 令牌添加到 API 1 的声明中,并将 API 1 令牌颁发给客户端。 (注意:向 API 2 发送请求时,使用存储在声明中的 API 2 令牌)。