Asp.net web api 使用REST API的自动化代码流;后端“;在不同的领域

Asp.net web api 使用REST API的自动化代码流;后端“;在不同的领域,asp.net-web-api,openid,identityserver3,Asp.net Web Api,Openid,Identityserver3,我们在企业部署中使用OIDC和IdentityServer,目前我们控制一切(OP、客户端、资源、用户) 我们有一个SPA客户端,它连接到“自己的”API,并将对它进行所有需要执行的操作。然而,它们是从两个不同的领域提供服务的。(假设应用程序在“my.apps/app”和“my.API/API”中运行) 在我们当前的设置中,我们使用隐式流在SPA中对用户进行身份验证,然后调用API并验证其中的令牌。这很有效。 我们将API视为“资源”,即使我们不需要,也不需要用户同意 如前所述,SPA所做的一切

我们在企业部署中使用OIDC和IdentityServer,目前我们控制一切(OP、客户端、资源、用户)

我们有一个SPA客户端,它连接到“自己的”API,并将对它进行所有需要执行的操作。然而,它们是从两个不同的领域提供服务的。(假设应用程序在“my.apps/app”和“my.API/API”中运行)

在我们当前的设置中,我们使用隐式流在SPA中对用户进行身份验证,然后调用API并验证其中的令牌。这很有效。 我们将API视为“资源”,即使我们不需要,也不需要用户同意

如前所述,SPA所做的一切都需要通过API,这还包括在身份验证时增加用户属性,因此客户端甚至不允许用户在不通过API的情况下使用它

考虑到这种情况,我们的想法是,我们甚至可以使用授权代码流进行OIDC身份验证(将API视为后端),并获得浏览器永远无法访问令牌的安全“好处”

但是,由于应用程序单独托管,我们认为这需要我们:

  • 在SPA中启动身份验证请求,在片段中获取授权代码,但稍后将其传递给API,API将依次请求令牌,并让它们生活在cookie或类似的东西中

  • 在SPA中启动身份验证请求,但使用重定向uri到API域,从而向其提供授权代码,授权代码将请求令牌,使令牌驻留在cookie中,然后再次重定向到SPA

  • 基本上,我们想知道这是否是一个您认为会起作用的设置,安全问题是什么(如果有的话),以及是否建议我们继续这样做,或者继续使用隐式流(特别是从安全角度来看)