asp.net-mvc – 在客户端应用程序中配置用户授权
背景说明
谈到Identity Server 4,当我考虑客户端应用程序中的用户管理设计时,我遇到了障碍. 此时,我使用ASP身份用户帐户作为其用户存储设置Identity Server. 我已经构建了用于将用户添加到Identity Server用户存储的UI. 我已经测试过设置一个MVC应用程序的客户端,我正处于可以成功通过Identity Server进行身份验证并在我的客户端应用程序中接收openid身份令牌的位置. Identity Server为我的客户端应用程序提供身份验证. 现在,我需要专注于我的应用程序内的授权.这就是我遇到困难的地方,我需要在应用程序本地创建用户,其中存储了应用程序中的用户权限. 我需要将Identity Server中的用户链接/关联到客户端应用程序中的用户. 一种方法是将sub存储在身份令牌中作为客户端应用程序数据库中的用户声明(Asp Identity).这样,当用户进行身份验证时,我可以根据令牌中的sub在本地数据库中找到它们. sub必须是身份服务器用户存储中用户的唯一ID.这样,如果用户的电子邮件被更改,我们仍然可以链接这两个用户帐户. 客户端应用程序中的用户帐户不需要密码或电子邮件地址,它将纯粹是用于整个应用程序授权的声明和角色,以及任何其他特定于应用程序的信息. 题 在客户端应用程序中创建用户时,必须存在Identity Server和客户端应用程序之间的通信? >我们需要关联这两个帐户? 在这个过程中,这些任务应该完成吗?我正在寻找两个应用程序之间的通信流程的一些指导? 编辑 客户端应用程序中根本没有用户帐户是否可行? 这意味着用户的所有用户声明都存储在Identity Server的用户存储中. 当客户端使用IDP进行身份验证时,它仅请求特定于客户端应用程序的用户声明. 用户存储中的示例用户声明: – >“clientA_role”:“管理员” 当客户端应用程序A进行身份验证时,它仅请求范围clientA_role 这感觉很糟糕! 有什么建议? 解决方法
如果您有许多客户端应用程序,那么我建议用户管理的方式是:
用户管理服务: 为用户管理创建单独的服务,身份服务器将用作用户存储,并且当需要用户元数据时,应用程序将用作用户存储库. 你也为什么要这样做: 用户存储中的示例用户声明: – “clientA_role”:“管理员” “clientB_role”:“用户” 为什么不 不要为不同的应用程序创建不同的字段,将其视为一般用户管理服务,我很确定标准化您的身份管理将使其更容易,并将获得您的可维护性和灵活性. IdentityServer服务处理身份管理: 如果您认为您的应用程序没有如此深入的用户管理需求,那么将用户存储保留在提供授权的同一服务中可能是个好主意. 在这种情况下,再次存储标准声明并在id_token或access-token中返回您需要的声明. 更新: 对于在不同应用程序中具有不同角色的特定用户: 让我们说我们有以下几点: 1- User1在第一个app中具有用户角色,在第二个app中具有admin角色 User1.Roles{"FirstAppUser","SecondAppAdmin"} 2- User2在两个应用中都有管理员角色,然后: User2.Roles{"FirstAppAdmin","SecondAppAdmin"} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在IIS 7.5中配置应用程序池在停止时自动重新
- asp.net-mvc – ASP.NET WEB API将DateTime作为URI的一部分
- asp.net-mvc-3 – MVC ASP.NET日志显示 – 未找到路径’/sc
- asp.net-mvc – asp.net mvc – 如何强制执行控制器层超类型
- asp.net-mvc – Kendo UI窗口 – 阻止加载以前的内容
- asp.net – 更改ContentPlaceHolder的ID
- asp.net – ScriptManager必须出现在任何需要它的控件之前
- 在IIS服务器上运行哪个进程会为每个asp.net应用程序生成w3w
- asp.net – 具有一个无效的SelectedValue,因为它在项目列表
- asp.net-mvc – ASP.NET MVC:post-redirect-get模式,带有两
- .net – 我应该如何设计一个允许IoC的类库,但不依
- asp.net – FireFox中的默认表单按钮
- asp.net-ajax – system.web不包含脚本的定义
- 实体框架Core 1.0工作单元与Asp.Net Core中间件或
- asp.net-mvc – ASP.NET MVC应用程序性能分析
- ASP.Net的Web TWAIN扫描解决方案?
- asp.net-mvc – 创建/编辑父和子窗体MVC
- asp.net – ‘Owin.IAppBuilder’不包含’MapSig
- asp.net-mvc – Razor并在ActionLinks上指定css类
- asp.net – 如何从日历控件中获取所选日期?