【发布时间】:2017-06-17 08:23:05
【问题描述】:
当身份验证服务器与资源服务器分开时,我有什么方法可以访问设置在身份验证服务器上的身份验证票信息吗?
在身份验证服务器上,我可以访问我使用设置的所有票证属性
var authInfo = await Request.HttpContext.Authentication.GetAuthenticateInfoAsync(OAuthValidationDefaults.AuthenticationScheme);
var myProperty= authInfo.Properties.Items.FirstOrDefault(p => p.Key.Equals("property_name"));
但是,当我在资源服务器上尝试此操作时,我无法看到相同的属性。
【问题讨论】:
-
有趣,这应该可以。您确定您使用的是验证中间件(和默认令牌格式)吗?
-
我正在使用自省中间件。如果身份验证服务器与资源服务器分开,我不认为我可以使用验证中间件?
-
如果资源服务器配置为使用相同的 ASP.NET Core 数据保护密钥环并且在 DP 选项中配置了相同的应用程序名称,则可以为资源服务器使用验证中间件。您可以阅读docs.microsoft.com/en-us/aspnet/core/security/data-protection/… 了解更多信息。
-
情况已经如此,所以这将起作用。我明天试试。我觉得正确的解决方案在你下面的答案中。
标签: asp.net-core openid-connect openiddict