【发布时间】:2018-04-17 08:42:50
【问题描述】:
对不起,这里的问题很长,但感觉就像我用谷歌搜索了有关该主题的所有内容......
我有 OpenID Connect - 兼容的第 3 方端点(服务 A),我想在我的 ASP.NET Core MVC 应用程序中将其用作身份提供者。该服务支持Implicit 和Code Flow。目前没有问题。此外,我希望能够代表登录用户调用服务A 的 api。我知道从Controller 内部通过:
var token = await HttpContext.GetTokenAsync("access_token");
var client = new HttpClient();
client.SetBearerToken(accessToken);
var content = await client.GetAsync("https://A.com/api");
但是如果我想在几个微服务之间分配这样的访问(或者如果我想安排一个后台延迟作业),就会出现一些问题:
- 在这种情况下如何共享“access_token”/“refresh_token”?我应该处理 OAuth 事件并在某处保留令牌吗?对此有何建议?
- 当我们在中间件中指定
SaveTokens = true时,令牌存储在哪里?
感谢您对此提供的任何帮助,这似乎是一个流行的案例,但网络上没有足够的信息。
【问题讨论】:
-
我自己在一次会议上提出了这个问题并得到了这个答复......首先是第 2 部分,因为这很容易......当你保存令牌 = true 时,它们会保存在 cookie 中。第 1 部分是一个设计选择,这就是为什么它上面的材料如此稀缺......我看到人们保存在存储中或在它持续时使用它,因为你可以使用令牌调用 API 多长时间不取决于你的 cookie生命周期而不是访问令牌的生命周期...希望我们在这里得到更好的答案...
标签: asp.net .net asp.net-mvc oauth asp.net-core