可以在Angular 2应用程序中使用Kerberos吗?我们正在使用Spring,该Spring托管我们的REST服务,并使用Kerberos保护Angular 2资源。我们要添加角色并定义Angular2应用程序中的某些功能可用于某些角色。由于大多数人似乎已经去使用JWT或OAuth,因此关于如何执行此操作的信息似乎很少。
可以使用Kerberos进行初始身份验证,然后生成一个JWT,该JWT发送回浏览器吗?
目前,我正在考虑设置一个REST端点/ user,它返回有关当前登录用户的所有信息,包括其权限。然后,在Angular中,我可以读取这些权限并相应地操作UI和路由。来自服务器的数据已经受到Kerberos和Spring的保护。因此,如果用户仍然可以更改其本地Angular来访问某些受保护的路线,则他们将看不到任何数据。
最佳答案
你所说的完全正确。您可能希望通过后端处理身份验证,无论是Kerberos,OAuth还是其他。成功登录后,后端将返回元数据响应,该响应允许UI对其进行适当配置。由于后端是受保护资源所在的位置,因此UI并不是真正需要“保护”的,更多的是“动态配置”以适合给定用户。
您必须决定如何执行此操作,以及在哪里编写大多数逻辑。例如,后端可以返回简单的信息,例如角色或体验标识符(例如Admin,User,Guest)。 UI将从那里知道应该/可以执行哪些活动,可用的资源等等。UI可以例如知道Guest无法添加新用户,但是由于Guest先生可能会感到好奇,所以最重要的是问题是后端确实不允许他修改用户帐户。