使用REST API自动化代码流"后端"在不同的域名上

时间:2016-10-07 19:58:50

标签: asp.net-web-api openid identityserver3

我们在企业部署中使用OIDC和IdentityServer,目前我们控制所有内容(OP,客户端,资源,用户)。

我们有一个SPA客户端连接到其自己的" API并将通过它来完成它需要做的一切。然而,它们来自两个不同的领域。 (让我们说应用程序在" my.apps / app"以及" my.apis / api"中的API上运行。

在我们当前的设置中,我们使用Implicit Flow让用户在SPA中进行身份验证,然后调用API并验证其中的令牌。这非常有效。 我们将API视为"资源"即使我们不需要,我们也不要求用户同意。

如上所述,SPA需要通过API来完成它所做的一切,这还包括在身份验证时增加用户属性,因此客户端甚至不会真正让用户使用它而无需通过API。< / p>

鉴于这种情况,我们的想法是我们甚至可以使用授权代码流进行OIDC身份验证(将API视为后端)并获得安全性和效益#34;浏览器永远不能访问令牌。

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

  1. 在SPA中启动身份验证请求,获取片段中的授权代码,但稍后将其传递给API,后者将依次请求令牌并将其置于cookie或其他内容中。

  2. 在SPA中启动身份验证请求,但使用redirect_uri到API域,从而向其提供授权代码,该代理将请求令牌,让它们存在于cookie中,然后再次重定向到SPA。

  3. 基本上我们想知道这是否是您认为可行的设置,有什么安全问题,以及是否建议我们继续使用或继续使用隐式流(特别是来自安全立场)。

0 个答案:

没有答案