【发布时间】:2020-01-29 10:03:09
【问题描述】:
我知道这个话题已经有很多话题了,而且已经有很多票了。但是在查看了数百张票和页面后,我没有找到必要的架构信息。
我计划的是一个简单的 SPA (Angular) - REST 后端(单独的 .Net Core 2.1 WebApi)设置。我有 Keycloak 通过 OpenId Connect 提供身份验证。我正在使用 Angular 的 OpenId 包与 Keycloak 通信,以获取 id 和访问令牌。
我想要的是Angular客户端只能访问身份令牌并且信息是Authenticated/LoggedIn。 Angular 前端不应该对访问令牌感兴趣,对吧?所以我也可以加密访问令牌以保护信息?
然后,我将加密的访问令牌传递给我的 REST-Backend(可以访问应用程序机密),在那里我可以验证加密签名、令牌的加密主体以及可能在身份验证服务器上自省令牌以验证和授予访问权限资源?
但是为什么这么多文章指出 Keycloak 机密客户端(具有应用程序机密)不是 SPA 设置的正确方法? SPA 本身不需要秘密,只有后端需要,还是不需要?
如果有任何信息可以帮助我填补剩余的空白,我将不胜感激。
【问题讨论】:
标签: angular authentication asp.net-core-webapi openid-connect keycloak