我目前正在使用ionic2和.net核心后端创建一个Web和移动应用程序 . 在从包含身份实体框架的identityserver4文档快速启动后,我意识到我没有办法从移动应用程序创建用户 .
我的解决方案由以下项目组成:
-
Project.Api
-
Project.Web
-
Project.IdentityServer
第三个实现身份,我可以从Web重定向到identityServer进行登录和注册 . 在api中我已经为identityserver项目配置了权限,如果我从identityserver获取一个令牌并将其附加到我的http请求的授权头,我完全能够访问受保护的 endpoints . 但我必须直接在数据库中创建用户 .
有一种方法可以直接在identityServer项目中注册用户吗?
2 回答
听起来,你的移动应用程序想要模仿IdentityServer功能,在这种情况下我建议有一个API项目(确保保护IdentityServer备份的这个资源) . 然后,您向api endpoints 发出请求以创建/修改用户 .
理想的方法是重定向到Idm服务器页面,您已经集中了用户创建的逻辑和工作流程 .
我建议您实现自己的用户管理,有一些选项可以轻松地与IdentityServer4一起使用 .
例如,您可以创建自己的用户存储并在IdentityServer4中使用它 .
这是一个关于如何做的快速演示 . https://github.com/IdentityServer/IdentityServer4.Quickstart.UI
基本上你需要做的就是:
直接在帐户控制器上实施身份验证 .
实施IProfileService以返回令牌的声明
如果您已经熟悉ASP.NET Identity,IdentityServer也支持它,请查看:
http://docs.identityserver.io/en/release/reference/aspnet_identity.html
IdentityServer4还支持Windows身份验证(如果您想使用域用户)并且实现起来非常简单,请查看以下内容:
http://docs.identityserver.io/en/release/topics/windows.html