因此,我正在开发.NET Core MVC应用程序,供公司内部使用。我刚刚使用AWS Cognito和Cognito .NET identity provider
实施了用户帐户我也有一个与MVC应用程序进行交互的API。我想使用相同的用户池来保护此API,因此用户只需登录MVC应用程序,然后他们就可以同时使用该应用程序,而不必担心在后台访问该API。
我同时从应用程序的服务器端和JavaScript发出混合调用。
我知道如何从应用程序的服务器端获取访问令牌,但是我不确定一旦获得该令牌我应该实际做什么。我希望我在服务器端获得的所有访问令牌也可以在客户端使用。这是因为要从JavaScript获取新的访问令牌需要重新输入用户名和密码(请参见此处的第5步:https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-integrating-user-pools-javascript.html)。
我最初的想法是在用户登录(服务器端)并将其存储在cookie中时请求访问令牌。我了解到,当您在Cookie中存储敏感信息时,应该始终启用HttpOnly
和Secure
。这意味着JavaScript无法访问cookie,从而阻止了XSS攻击。可悲的是,这意味着当我需要从应用程序的客户端对API进行调用时,我将无法检索访问令牌。我认为令牌可能太大了,无论如何都无法存储在Cookie中?
我也知道敏感信息绝对应该not be stored in local storage,所以这不是一种选择。
这是我第一次处理访问令牌的世界,如果这是重复的,我深表歉意。