如何将 cookie 身份验证代理到内部 API

问题描述 投票:0回答:1

我使用 MS 身份通过 cookie 和用户名/密码方法进行简单的身份验证。这是一个 MVC 应用程序,其中所有内容都使用标准 MS Identity AddAuthentication + AddCookie 连接。身份验证成功后,我还添加一些自定义声明,然后将其存储在加密的会话 cookie 中。

现在,这个 MVC 应用程序还调用我们的另一个内部 API。我想要的是能够将身份验证 cookie 从 MVC 应用程序传递到内部 API,并能够在内部 API 中解析这些声明和用户身份。请记住,内部 API 并不强制必须拥有这些数据,因为即使用户没有登录,它也能在大多数情况下正常工作。我们使用 apikey 作为 MVC 应用程序和这个不开放的内部 API 之间的安全机制走向世界。

我们没有也不想使用任何外部身份提供商。

是的,我可以手动解析声明,然后将它们添加为标题等,但我觉得它很难看,并且也可能由于长声明名称而中断。

对于身份验证会话的下游代理,是否有更优雅的方法?

.net asp.net-core asp.net-identity
1个回答
0
投票

据我所知,有两种方法可以实现这一目标,

  1. Cookie 转发 我不喜欢这种 MVC 应用程序的方法,并且内部 API 将通过这种方法紧密耦合

  2. 代币兑换 您可以生成具有所需声明的 JWT 令牌并将其传递到 API。这样您就能够解耦 MVC 应用程序和 API。

© www.soinside.com 2019 - 2024. All rights reserved.