【发布时间】:2018-08-11 09:00:43
【问题描述】:
我正在开发一个项目,这是我第一次遇到具有 API 架构的 SPA(以及我的第一个 .NET Core 项目)。我试图弄清楚身份验证/授权流程应该如何工作,因为它有点复杂。身份将由本地 ADFS 通过 OAuth 提供。 Angular 前端重定向到 ADFS 登录页面,并使用“code”参数重定向回 SPA,然后应用程序将其发布到 API 后端中的控制器方法。然后 API 回调 ADFS 并用身份验证代码交换令牌,然后根据签名证书验证令牌。
这就是我对如何进行有点模糊的地方。 API 使用 ASP.NET Core 标识,我们需要定义将应用于系统用户的“本地”(应用程序)角色。 Angular 应用程序需要知道这些角色,所以我想在 JWT 中将它们传递给客户端。是否可以从 ADFS 中“增加”令牌以包含其他声明?我是否应该创建并发布与本地用户关联的不同令牌并在会话期间使用它?
基本上,我很困惑的是来自 IdP 的“身份”令牌(我将用于实际验证用户)与 Angular 应用程序将用于对其签名的令牌之间的关系是什么API 请求(我想这也需要对用户进行身份验证)。在一个更简单的模型中,我假设您可以对两者使用相同的模型,但是如果有针对这种场景的任何最佳实践。谢谢!
【问题讨论】:
标签: angular oauth .net-core asp.net-identity jwt