我正在添加Identity Server 4实现以为ASP.NET Core Web API提供身份验证和授权。客户端将是本机iOS应用程序,MVC Web应用程序,以及稍后的Angular SPA。
我能够使用AppAuth以“脱机访问”方式向iOS客户端提供令牌-很棒。
我只是不确定要做出的某些建筑选择:
1 /应该在哪里进行新用户注册?为了安全起见,文献建议将IS4服务器限制为登录和注销端点。这是否意味着客户端或API应该在商店中处理用户的创建?我以为IS4的全部目的是客户端和API无法访问商店?在系统中唯一有权访问商店的部分来处理用户的添加和修改是合理的,不是吗?
2 /是否可以安全地(1)令牌(2)用户存储和(3)业务数据保存在同一数据库中-不同的表但同一服务器上的同一数据库?分离数据库更好吗?
3 /将Identity Server应用程序托管在客户端应用程序所在的域的子域上是否安全?该API已经在同一域的另一个子域中。
谢谢
答案 0 :(得分:0)
1 /应该在哪里进行新用户注册?为了安全起见,文献建议将IS4服务器限制为登录和注销端点。这是否意味着客户端或API应该在商店中处理用户的创建?我以为IS4的全部目的是客户端和API无法访问商店?在系统中唯一有权访问商店的部分来处理用户的添加和修改是合理的,不是吗?
您可以扩展IDS4以添加用户管理。对于IDS4 docs,它是一种中间件,它将符合规范的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET Core应用程序中。但这并不意味着您不能扩展它。 Here是一个示例。
2 /是否可以安全地(1)令牌(2)用户存储和(3)业务数据保存在同一数据库中-不同的表但同一服务器上的同一数据库?分离数据库更好吗?
这更多地取决于您的部署模型以及对可用性和可伸缩性而不是安全性的考虑。我建议您阅读更多here,以便做出最佳决定。
3 /将Identity Server应用程序托管在客户端应用程序所在的域的子域上是否安全?该API已经在同一域的另一个子域中。
这又与安全无关,更多的是可用性/可伸缩性
答案 1 :(得分:0)
我的想法如下: