我使用 MS 身份通过 cookie 和用户名/密码方法进行简单的身份验证。这是一个 MVC 应用程序,其中所有内容都使用标准 MS Identity AddAuthentication + AddCookie 连接。身份验证成功后,我还添加一些自定义声明,然后将其存储在加密的会话 cookie 中。
现在,这个 MVC 应用程序还调用我们的另一个内部 API。我想要的是能够将身份验证 cookie 从 MVC 应用程序传递到内部 API,并能够在内部 API 中解析这些声明和用户身份。请记住,内部 API 并不强制必须拥有这些数据,因为即使用户没有登录,它也能在大多数情况下正常工作。我们使用 apikey 作为 MVC 应用程序和这个不开放的内部 API 之间的安全机制走向世界。
我们没有也不想使用任何外部身份提供商。
是的,我可以手动解析声明,然后将它们添加为标题等,但我觉得它很难看,并且也可能由于长声明名称而中断。
对于身份验证会话的下游代理,是否有更优雅的方法?
据我所知,有两种方法可以实现这一目标,
Cookie 转发 我不喜欢这种 MVC 应用程序的方法,并且内部 API 将通过这种方法紧密耦合
代币兑换 您可以生成具有所需声明的 JWT 令牌并将其传递到 API。这样您就能够解耦 MVC 应用程序和 API。