我试图使用AspNet.Security.OpenIdConnect.Server
来强制使用OpenID Connect服务器。
是否可以在授权服务器上发出令牌时将一些自定义用户数据放入访问令牌,然后在令牌验证和请求处理期间在资源服务器上检索它?
示例:我想在访问令牌中写入用于获取用户令牌的IP地址。然后在资源服务器上,我想在令牌验证期间比较来自令牌的当前用户IP地址和IP地址。
另一个例子:我想将用户的角色写入令牌,然后在WebApi操作过滤器或操作本身中检索它们
答案 0 :(得分:2)
考虑简单地将IP地址存储为声明:
identity.AddClaim("ip_addr", HttpContext.Connection.RemoteIpAddress.ToString(),
OpenIdConnectConstants.Destinations.AccessToken);
然后,在您的API控制器中,使用以下命令检索它:
var address = User.FindFirst("ip_addr").Value;