开源软件加密授权方案_身份验证和授权作为开源解决方案服务
开源软件加密授权方案
通过实施身份验证和授权(a&a)机制为所有用户数据设计集中式服务。 我将分享我的经验并最终确定解决方案的结论。
该设计包括客户端(Web应用程序)和服务器(A&A中心)。
术语:
1.验证:
认证是系统可以安全地标识其用户的机制。 回答“用户是谁?”的问题 身份验证还包括SSO(单点登录)。 一种机制,使用户能够一次登录并获得所有参与资源的“免费通行证”,而无需附加标志。
2.授权:
授权是验证用户是否具有访问某些资源或部分的角色/权限的过程。
回答问题:用户X是否有权访问资源/操作Y?
3.受保护的客户:
通常,a&a机制与安全的客户端框架配合使用:Spring安全性,Apache Shiro,Wicket身份验证等。 我将在稍后的文章中对此进行回顾。
要考虑的主要主题:
- 认证服务器
- 安全的Web客户端框架
- 授权职责
完整的解决方案提供商:
在我的研究中,我遇到了完整的解决方案提供商:
- Open AM(称为OpenSSO)–他们声称是一个开源项目。 但是过了一会儿,您发现它确实是一个开放源代码,但并非用于商业用途。 您需要为他们的a&a配套支付大量的$$$。
- 人群– Atlassian。 似乎是一种快速,良好且非常便宜的解决方案。 但是,我们仍在走向完全商业化的开源解决方案。 这个也不符合我们的需求。
受保护的客户:
- Spring安全性:非常流行并且广泛使用。 当您想要拥有除基本设置以外的更多功能时,Spring Security需要大量的xml配置。
另外,如果您需要支持权限(而不仅是角色),Spring安全性不提供现成的支持。
- Apache Shiro:–很棒的产品。 开箱即用的配置和权限支持非常简单。
问题在于Shiro的社区仍然很小,而且这个项目还很新。
解:
- 认证服务器:
我遇到了CAS(中央身份验证服务)–伟大且完全开源的项目。 CAS提供SSO解决方案并支持流行的协议,例如SAML,OPENID,Auth。
因此,如果我们将CAS与LDAP服务器集成在一起(以保存用户的信息),我们就可以实现身份验证模型(并且开箱即用地拥有SSO)。
CAS基于Spring,如果我们要进行自定义更改,非常容易扩展。 您可以轻松下载源代码,并根据需要对其进行自定义。
CAS配置非常容易并且有据可查。
- 受保护的客户端框架:
我选择了Spring Security。 三个原因:
- 该Web应用程序是基于Spring的。
- 受欢迎和背后的社区绰绰有余。
- 与CAS完美集成。
*我提到Spring安全缺乏权限。 但是有一种解决方法。 可以在此处找到简短的示例: http : //en.tekstenuitleg.net/blog/spring-security-with-roles-and-rights
到目前为止,我们有Spring Security,Cas和LDAP(OpenLdap)服务器。
- 授权职责:
那可能很棘手,取决于您的项目要求。 您可以通过两种方式配置授权流:
- 集中授权:
CAS支持属性。 这意味着您可以在返回的响应中添加其他属性(角色/权限)(通过SAML,这非常简单)。
您实际上可以选择并配置从哪个源中提取其他属性(数据库,Ldap,Active Directory等)。
这是一个非常简洁而优雅的解决方案–一个中心,可以按要求提供每个用户的身份验证和授权角色/权限。
- 分散授权:
您可以通过扩展UserDetails接口来配置Spring Security。 然后,让每个应用程序在成功通过身份验证后控制授权逻辑。
*是否存在每个Web客户端应用程序应对其授权逻辑负责还是对其进行集中管理的公开辩论(正如我在第一点所述)。
- 集中授权:
我建议根据您的项目需求用例来确定正确的态度。
最后,我们有了一个完全用于商业用途的a&a开源解决方案。
翻译自: https://www.javacodegeeks.com/2013/11/authentication-and-authorization-as-an-open-source-solution-service.html
开源软件加密授权方案
开源软件加密授权方案_身份验证和授权作为开源解决方案服务相关推荐
- 身份验证和授权作为开源解决方案服务
通过实施身份验证和授权(a&a)机制为所有用户数据设计集中式服务. 我将分享我的经验并最终确定解决方案的结论. 该设计包括客户端(Web应用程序)和服务器(A&A中心). 术语: 1. ...
- 使用JWT的ASP.NET CORE令牌身份验证和授权(无Cookie)——第1部分
目录 介绍 JWT(JSON Web令牌) ASP.NET Core中的JWToken配置 用户模型类 创建令牌 第1步 第2步 第4步 令牌存储 中间件 自定义中间件app.Use() 中间件app ...
- AAA(身份验证,授权和记账)简介
AAA服务器 AAA是认证,授权和计费(认证,授权,计费)的三个英文字的缩写.其主要目的是管理哪些用户可以访问网络服务器,哪些服务可供具有访问权限的用户使用,以及如何考虑使用网络资源的用户.具体来说: ...
- iis授权mysql验证_ASP.NET Web API身份验证和授权
本文是作者所理解和翻译的内容. 这篇文章包括两部分:身份验证和授权. 身份验证用来确定一个用户的身份.例如,Alice用她的用户名和密码登陆系统,服务器用她的用户名和密码来确定她的身份. 授权是判断一 ...
- ASP.NET Web API身份验证和授权
英语原文地址:http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-a ...
- .NET6之MiniAPI(九):基于角色的身份验证和授权
身份验证是这样一个过程:由用户提供凭据,然后将其与存储在操作系统.数据库.应用或资源中的凭据进行比较. 在授权过程中,如果凭据匹配,则用户身份验证成功,可执行已向其授权的操作. 授权指判断允许用户执行 ...
- security工作笔记004---.NET Web安全性-身份验证和授权(一)之Principal
JAVA技术交流QQ群:170933152 1.概述 为了确保应用程序的安全,安全性有几个重要方面需要考虑.一是应用程序的用户,访问应用程序的是一个真正的用户,还是伪装成用户的某个人?如何确定这个用户 ...
- java验证身份证合法性_Java安全性,第2部分:身份验证和授权
关于本教程 本教程是关于什么的? 也许没有比应用程序安全更重要的软件工程主题. 攻击是昂贵的,无论是来自内部还是外部,而且某些攻击可能会使软件公司承担赔偿责任. 随着计算机(尤其是Internet)技 ...
- 安全性-身份验证和授权(一)之Principal
1.概述 为了确保应用程序的安全,安全性有几个重要方面需要考虑.一是应用程序的用户,访问应用程序的是一个真正的用户,还是伪装成用户的某个人?如何确定这个用户是可以信任的? 确保应用程序安全的用户方面是 ...
最新文章
- java如何对图片去除图片的白色的背景
- A-FRAME初体验
- 两个整数百分百C语言,2011年9月份计算机二级C语言上机题库(百分百准确),,,[1]
- Servlet3.0下配置Servlet
- pg加密扩展的安装_为编译安装的PG安装扩展
- IOS代理的设计模式
- opencv 识别机车
- 【kafka】kafka 同时建立很多消费者 会怎么样
- docker 镜像重命名_Docker使用技巧:你会正确导出Docker镜像?
- 魔都上海为什么被称为“魔都”
- Linux中vim编辑器常用命令、文件查找、磁盘挂载、用户管理
- python自动填表格_Python读写Excel自动填表
- 上海悠悠python培训视频教程
- Android 高级开发进阶图谱
- 微信小程序腾讯服务器地址要购买吗,微信小程序JavaScript SDK
- Git 初學筆記 - 指令操作教學
- Android键盘自定义表情包,关于自定义表情键盘...
- 具备3-5年工作经验的软件测试工程师,工资大概多少?
- OSDU(Open Group Open Subsurface Data Universe)数据平台研究笔记
- Unity3D实现谷歌数字地球