对于#1,没有人应该每次入住都登录,因为SPA1、SPA2和MVCApp1基本上都有不同的最终用户。我们不需要SSO。对于#2,不相关,因为我们永远不会允许这样。
这意味着我们有一个IdentityServer4项目,感觉有点矫枉过正,很难调试。比如用户将auth服务器而不是应用程序作为书签,重定向随机失败,等等。
我的问题是,我可以在API中切换到用户身份验证,然后杀死这个身份服务器吗?我们可以很容易地在API中添加Authenticateendpoint。有什么不安全的吗?
类似于这样:
[AllowAnonymous]
[HttpPost("authenticate")]
public IActionResult Authenticate([FromBody]UserDto userDto)
{
var user = _userService.Authenticate(userDto.Username, userDto.Password);
if (user == null)
return Unauthorized();
var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(_appSettings.Secret);
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new Claim[]
{
new Claim(ClaimTypes.Name, user.Id.ToString())
}),
Expires = DateTime.UtcNow.AddDays(7),
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
};
var token = tokenHandler.CreateToken(tokenDescriptor);
var tokenString = tokenHandler.WriteToken(token);
// return basic user info (without password) and token to store client side
return Ok(new {
Id = user.Id,
Username = user.Username,
FirstName = user.FirstName,
LastName = user.LastName,
Token = tokenString
});
}
我不能回答你的问题是否有必要,因为这可能是基于意见的。但我有些话要说。
IdentityServer是OpenID Connect在OAuth2之上的一个实现。如果您不想使用OpenID Connect和OAuth2,那么IdentityServer可能不是合适的工具。
但是,IdentityServer不仅仅实现规范。这也是关于责任的分离。
我不能告诉你该怎么做,我相信一切皆有可能。但是当你看一看设计原则时,我更喜欢分离关注点。
关于您的代码,七天的访问窗口是相当大的。尤其是在无法撤消令牌的情况下。
关于用户链接错误的页面,你不能阻止一切。
本文向大家介绍为什么我们需要微服务容器?相关面试题,主要包含被问及为什么我们需要微服务容器?时的应答技巧和注意事项,需要的朋友参考一下 要管理基于微服务的应用程序,容器是最简单的选择。它帮助用户单独部署和开发。您还可以使用Docker将微服务封装到容器的镜像中。没有任何额外的依赖或工作,微服务可以使用这些元素。
问题内容: 我想知道一个仅在Eclipse上使用Maven或Ant的具体示例。 当我在Eclipse中进行开发时,Eclipse会为我做所有事情,而我只需要单击run按钮。而且,Eclipse可以让您将代码导出到Windows的可运行jar或.exe中。 所以我真的不知道为什么我需要Maven或Ant。 而且,如果确实需要, 我应该选择Maven还是Ant? 问题答案: 因为您的同事可能更喜欢Ne
假设我是一个小型应用程序(),我正在与一个更大的企业()集成。 在此方案中,我是服务提供者,他们是标识提供者。他们的要求是,我使用 SSO(特别是 SAML 2.0)集成到他们的身份验证生态系统中。 对于标准的IdP发起的流程,用户将在他们的终端登录,他们将对我的应用程序的XML断言,然后将验证用户并将他们登录到我的应用程序(即设置浏览器会话)。 企业使用平联邦作为他们的身份服务器,他们很好奇我的
C++20概念的一个特点是,在某些情况下,您必须编写。例如,[expr.prim.req]/3中的这个示例:
这里有一个udemy课程(来自“Lets Kode IT”),用Selenium开发一个web自动化框架。教师已经用Maven创建了一个Java项目。主要需要的依赖物是hamcrest、testng和Selenium。但是,教师坚持认为selenium-server依赖项也应该包括在内,因为“Maven可能有一个小故障,它可能无法获得selenium-java的所有依赖项(屏幕截图附上)”。 我的
Segmentfault 存在的意义是什么? 尝试着 Stackoverflow 上找到过很多的答案