加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在Web应用程序中使用声明进行身份验证和授权的实用工

发布时间:2020-12-16 09:40:09 所属栏目:asp.Net 来源:网络整理
导读:我还没有获得基于声明的身份验证/授权工作流程. 应用程序允许通过Facebook.com身份验证 用户通过身份验证后,管理员可以向其/她声明拥有管理员的角色,从而创建另一个声明(在哪里?) 当然,这个说法不会出现在facebook.com服务器上,问题1:该声明应该存储在哪里
我还没有获得基于声明的身份验证/授权工作流程.

应用程序允许通过Facebook.com身份验证

用户通过身份验证后,管理员可以向其/她声明拥有管理员的角色,从而创建另一个声明(在哪里?)

当然,这个说法不会出现在facebook.com服务器上,问题1:该声明应该存储在哪里?

当用户稍后再次登录时,我得到了facebook.com的声明,我应该从申请中获得索赔?合并他们?

工作流程如何?试图理解实际使用中的主张.

基本上,Facebook告诉我,我是john@doe.com和’空白领域’增加了一个声称,我也是domain.com的经理

然后我将这些声明传递给domain.com?

我应该如何在asp.net中配置domain.com上的应用程序以信任facebook并“填写空白部分”并请求声明表单?

我想我正在使用外部提供程序进行身份验证和我自己的授权提供程序,如何在ASP.NET上创建(web api / mvc)?

更新(澄清)

让我们倒退吧.我创建了一个用户可以注册的Web应用程序.
“某种程度上”某处存在一个受信任的ClaimsBased权限(这应该是另一个应用程序??),我请求特定用户声明是否对我的应用程序具有特定权限.

所以我想象的是:

/ authserver /权利要求

并且我的验证检查是否满足X声明以执行某些操作.

后来我加了脸书.我现在有

/ Facebook的/权利要求

这告诉我用户是X.

/ authserver /声明看是否可以在资源Y上执行操作X.

如何在ASP.NET上管理它?我应该创建/曝光/开发自己的主张?

我想我在这里缺少一些基本的东西.

解决方法

我认为重要的是要了解身份验证和授权之间的区别.

身份验证 – 确认数据或实体属性真实性的行为.

授权 – 指定对资源的访问权限的功能,通常与信息安全和计算机安全以及特别是访问控制有关.

因此,通常对于安全系统,工作流程从身份验证开始.当用户首次连接/使用系统时,则不进行身份验证(假设此用户属于匿名类型/组).确定用户未被认证的系统的行为是身份验证和自身身份验证.基于匿名,然后系统确定匿名用户类型的访问权限的行为现在授权用户可以做什么.对于非常安全的系统,唯一的匿名访问是登录屏幕/页面.登录后,将为用户分配唯一标识并分配某种类型的组策略/角色(如果尚未创建).
?使用基于Web的应用程序并拥有一个网站(#1)对另一个网站(#2)进行身份验证后,它会变得有点复杂.当我登录StackOverflow(#1)时,我使用了我的Gmail(#2)帐户.我通过一些特殊的方式将重定向到Google,以便我知道我来自/返回的页面.这可能是一个特殊的键/ url组合或限制较少的访问,通常与返回URL有关(在我说,是的,我回去的地方). Google将创建一个特殊的身份验证令牌,该令牌特定于我要返回的网址.它与URL绑定,因为这意味着我在StackOverflow上的令牌不允许我或其他任何人登录,例如说NewEgg(换句话说,StackOverflow上有权访问数据库的人不能使用我的令牌进行身份验证我在其他一些网站上,但从技术上讲,他们可以在StackOverflow上以我的身份登录,但他们拥有该网站,所以这并不重要).现在我在StackOverflow上进行了身份验证(但从技术上讲,StackOverflow甚至不需要知道关于我的任何信息,只需要知道我的令牌).

在StackOverflow上以新用户身份创建新帐户.此帐户可能与我在Stack Overflow上的唯一帐户和多个登录(以及登录类型,OAuth,OpenID或SO登录)之间存在一对多的关系.创建帐户后,我默认拥有他们设置的任何访问权限.如果我需要更多或某些触发器(假设基于我的声誉点:)我现在可以访问管理功能(给定一些角色).该角色与我的帐户绑定,并间接与我的身份验证相关联.这意味着我可以创建其他登录(例如本地SO登录)但保留我的帐户.

对于每个身份验证资源(Google,Facebook等),将存在身份验证的差异方案,但网站上始终至少会有一个令牌(或多个令牌)来说明我是谁(以通用方式) .

所以网站#1(Stack Overflow)已经要求网站#2(Google)对我进行身份验证.但只有网站#1知道我授权的内容.

对于特定于角色的功能,在处理ASP.Net Identity和Role Manager时,有很多答案:

Creating Roles in Asp.net Identity MVC 5

mvc 5 check user role

与MVC – Extending Identity Accounts and Implementing Role-Based Authentication in ASP.NET MVC 5更加深入地了解身份

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读