【发布时间】:2018-07-26 20:52:40
【问题描述】:
我目前有两个应用服务
- Web 应用程序(Asp.net core 2 w/react 前端)
- Web Api (Asp.net core 2)
注意:两者都配置了不同的 Azure Active Directory 应用程序 ID。
- 用户登录 Web 应用程序并为其自己的 appId/ClientId/ClientSecret 检索令牌,该令牌存储在令牌缓存中。
- 从 WebApp,用户想要与 WebAPI 对话,但需要获取令牌,因为它也受 AAD 保护,但它是不同的应用 ID/客户端 ID/客户端密码。
问题: 当我尝试为 web api 执行 AcquireTokenSilentAsync() 时,我收到一个错误,提示我令牌不在缓存中?
似乎还取决于您使用 AAD v2.0 还是 v1.0 将确定 Web 应用程序和 Web api 是否可以具有不同的应用程序 ID。所以看来我必须使用 AAD v1.0。对于 Asp.net core 2,我不清楚 OpenIdConnect 在幕后使用或配置为使用什么。
问题:
- 我不清楚为什么获取令牌静默异步不起作用并且失败。是否只在缓存中查找令牌?否则会失败?
- 是否可以从 Web 应用程序配置令牌以获得访问 Web api 资源的权限。我注意到在 azure 门户中,您可以选择 microsoft graph 等资源,但我不知道您将如何关联自定义 API。就我而言,我希望在将其全部迁移到 azure 之前让它在我的本地计算机上运行。
- 如果 Web 应用程序令牌没有访问 Web api 的权限,我是否需要对用户进行另一次登录身份验证,即使你们都在同一个租户内?
任何建议表示赞赏, 德里克
【问题讨论】:
标签: azure-active-directory asp.net-core-2.0 openid-connect