当前位置: 首页 > 知识库问答 >
问题:

如何在身份验证服务器上配置具有验证的SPA-REST架构的客户端?

鲍宁
2023-03-14

我知道这个话题已经出现了很多次,而且已经有很多票了。但是在看了数百张票和页面后,我没有找到必要的架构信息。

我计划的是一个简单的SPA(Angular)-REST后端(单独的.NETCore2.1WebAPI)设置。我有keydepot通过OpenId Connect提供身份验证。我正在为Angular使用一个OpenId包来与Key斗篷通信,以获取id和访问令牌。

我想要的是Angular客户端只能访问identity token,并且信息是经过身份验证的/LoggedIn。访问令牌对角度前端不感兴趣,对吗?所以我也可以加密访问令牌来保护信息?

然后,我将加密的访问令牌传递给我的REST-Backend(可以访问应用程序秘密),在那里我可以验证加密签名、令牌的加密主体,也许还可以在身份验证服务器上反省令牌,以验证和授予对资源的访问权限?

但为什么这么多的文章都说keydove机密客户端(有应用程序机密)不是SPA设置的合适方式?SPA本身不需要秘密,只有后端需要,还是不需要?

请,我将不胜感激任何信息,帮助我弥合剩余的差距。

共有1个答案

柯骏
2023-03-14

访问令牌对角度前端不感兴趣,对吗?

是的,您的客户端只需要验证和解码ID令牌就可以获得用户的配置文件信息。访问令牌是访问受保护的资源,不需要在客户端应用中验证访问令牌。

所以我也可以加密访问令牌来保护信息?

不确定我是否理解你的场景。JWT可以是签名的、加密的或两者兼而有之,这是由令牌服务控制的。当您的后端web api收到访问令牌时,它将验证访问令牌,并使用标识提供商发布的公钥验证签名。

但是为什么有这么多文章指出KeyCloak机密客户端(有一个应用程序秘密)不是SPA设置的正确方式?

如今,建议使用带有代码交换证明密钥(PKCE)的授权代码授予流来保护Angular应用。它比在水疗应用中保守客户秘密更安全。我不熟悉KeyCloak,但您可以单击此处获取关于如何在Angular应用程序中使用KeyCloak作为IDP使用代码流PKCE的文章。

 类似资料:
  • 问题内容: 我正在开发一个使用Jersey框架的REST应用程序。我想知道如何控制用户身份验证。我搜索了很多地方,最近的文章是:http : //weblogs.java.net/blog/2008/03/07/authentication- jersey 。 但是,本文只能与GlassFish服务器和附加数据库一起使用。无论如何,在到达请求的REST资源之前,我是否可以在Jersey中实现一个接

  • 想得到一些关于设置简单的双向ApacheSSL的建议。 我们使用openSSL创建了一个密钥文件和csr请求。然后,我们将其提交给CA,并收到一个crt文件与CA的crt文件一起返回。 我们已经配置了ApacheHTTP。conf文件,并在加载mod_ssl模块后添加了以下参数。 开启SSLEngine SSLCACertificateFile/local/fast/fcHome/deployme

  • 它总是导致带有错误消息的catch块 登录失败:未知的用户名或错误的密码。失败:未知的用户名或错误的密码。 我确信给定的密码是正确的。 如何使用给定的密码验证用户名?

  • 我已经浏览了很多帖子和文章,但没有找到一个简单的解决方案,下面我必须实现。 平台:Spring Boot 2。x、 嵌入Tomcat的x(Spring Security 5.x.x) 解决方案:使用许多客户端应用程序和许多最终用户的REST服务。 > 因此,我必须使用一次性令牌对上述应用程序进行身份验证。因此,我计划通过启用和来实现Spring OAuth2。对于每个应用程序客户端,我将生成一个令

  • 将配置服务器用户名和密码存储为环境变量(在客户端和服务器中)还是使用密钥库更好?密钥库密码无论如何都存储为环境变量,那么为什么实际使用密钥库呢?还是有更好的方法在SpringCloudConfig服务器中实现身份验证?

  • 任务:将Kerberos active directory身份验证添加到不安全的报告和数据操作桌面应用程序。此应用程序是。。。 用Stackless Python 2.7编写 使用Twisted进行客户端-服务器交互 客户端编译为exe并在Windows上运行 服务器在Linux(红帽)上运行 目前,我们从用户帐户中提取Windows网络ID(登录名)并传递到服务器,服务器会查找用户配置为具有的权