开源软件加密授权方案_身份验证和授权作为开源解决方案服务

开源软件加密授权方案

通过实施身份验证和授权(a&a)机制为所有用户数据设计集中式服务。 我将分享我的经验并最终确定解决方案的结论。

该设计包括客户端(Web应用程序)和服务器(A&A中心)。

术语:



1.验证:

认证是系统可以安全地标识其用户的机制。 回答“用户是谁?”的问题 身份验证还包括SSO(单点登录)。 一种机制,使用户能够一次登录并获得所有参与资源的“免费通行证”,而无需附加标志。

2.授权:

授权是验证用户是否具有访问某些资源或部分的角色/权限的过程。
回答问题:用户X是否有权访问资源/操作Y?

3.受保护的客户:

通常,a&a机制与安全的客户端框架配合使用:Spring安全性,Apache Shiro,Wicket身份验证等。 我将在稍后的文章中对此进行回顾。

要考虑的主要主题:

  1. 认证服务器
  2. 安全的Web客户端框架
  3. 授权职责

完整的解决方案提供商:

在我的研究中,我遇到了完整的解决方案提供商:

  • Open AM(称为OpenSSO)–他们声称是一个开源项目。 但是过了一会儿,您发现它确实是一个开放源代码,但并非用于商业用途。 您需要为他们的a&a配套支付大量的$$$。
  • 人群– Atlassian。 似乎是一种快速,良好且非常便宜的解决方案。 但是,我们仍在走向完全商业化的开源解决方案。 这个也不符合我们的需求。

受保护的客户:

  • Spring安全性:非常流行并且广泛使用。 当您想要拥有除基本设置以外的更多功能时,Spring Security需要大量的xml配置。
  • 另外,如果您需要支持权限(而不仅是角色),Spring安全性不提供现成的支持。

  • Apache Shiro:–很棒的产品。 开箱即用的配置和权限支持非常简单。
  • 问题在于Shiro的社区仍然很小,而且这个项目还很新。

解:

  1. 认证服务器:

    我遇到了CAS(中央身份验证服务)–伟大且完全开源的项目。 CAS提供SSO解决方案并支持流行的协议,例如SAML,OPENID,Auth。

    因此,如果我们将CAS与LDAP服务器集成在一起(以保存用户的信息),我们就可以实现身份验证模型(并且开箱即用地拥有SSO)。

    CAS基于Spring,如果我们要进行自定义更改,非常容易扩展。 您可以轻松下载源代码,并根据需要对其进行自定义。

    CAS配置非常容易并且有据可查。

  2. 受保护的客户端框架:

    我选择了Spring Security。 三个原因:

    1. 该Web应用程序是基于Spring的。
    2. 受欢迎和背后的社区绰绰有余。
    3. 与CAS完美集成。

    *我提到Spring安全缺乏权限。 但是有一种解决方法。 可以在此处找到简短的示例: http : //en.tekstenuitleg.net/blog/spring-security-with-roles-and-rights

    到目前为止,我们有Spring Security,Cas和LDAP(OpenLdap)服务器。

  3. 授权职责:

    那可能很棘手,取决于您的项目要求。 您可以通过两种方式配置授权流:

    1. 集中授权:

      CAS支持属性。 这意味着您可以在返回的响应中添加其他属性(角色/权限)(通过SAML,这非常简单)。

      您实际上可以选择并配置从哪个源中提取其他属性(数据库,Ldap,Active Directory等)。

      这是一个非常简洁而优雅的解决方案–一个中心,可以按要求提供每个用户的身份验证和授权角色/权限。

    2. 分散授权:

      您可以通过扩展UserDetails接口来配置Spring Security。 然后,让每个应用程序在成功通过身份验证后控制授权逻辑。

      *是否存在每个Web客户端应用程序应对其授权逻辑负责还是对其进行集中管理的公开辩论(正如我在第一点所述)。

我建议根据您的项目需求用例来确定正确的态度。

最后,我们有了一个完全用于商业用途的a&a开源解决方案。

参考: IdanFridman.com博客上的JCG合作伙伴 Idan Fridman提供的身份验证和授权作为开源解决方案服务 。

翻译自: https://www.javacodegeeks.com/2013/11/authentication-and-authorization-as-an-open-source-solution-service.html

开源软件加密授权方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python如何设计系统界面教程_python中pycharm软件界面介绍与配置

知识回顾: 上节内容我们学习了下载和安装pycharm,从本节开始,我们很多情况下都会使用pycharm这个集成开发工具来开发一些小程序。 本节知识视频教程 文字教程讲解开始: 一、界面初始化 我们在使用pycharm这个工具的时候&#xff0…

mysql字段编码转换_mysql字符集编码转换

mysql库编码修改,库默认的编码为拉丁文,我创建的agilefant库编码也就是拉丁文的 不支持中文。整个操作过程切记务必先备份库再操作。mysql> show variables like collation_%;-----------------------------------------| Variable_name | Value |---…

怎么配置在谷歌和ie内核时使用不同的_重磅!微软竟然研发了谷歌内核的edge

走过路过不要错过点击蓝字关注我们很I高I兴I你I能I来小水GOOD NIGHT 希I望I你I别I离I开软件目录第三十九期▼物致于此小得盈满序言上周小编们期末考试已经结束了,从这周开始,推文将会开始有所更新,希望喜爱我们公众号的你们都还在。但由于小编…

Java 8过滤器,地图,收集和流示例

大家好,许多读者给我发了电子邮件,写了一篇有关Java 8的地图和过滤器功能的文章,因为他们发现它们难以理解和使用。 即使我以前同时写过有关map()和filter()的博客,我仍在写这篇文章…

使用mysql命令行的工具_[MySQL]命令行工具和基本操作

一 MySQL命令行工具 (查看帮助 ---help,或 -?)1)MySQLMySQL是一个简单的SQL外壳(有GNUreadline功能)。它支持交互式和非交互式使用。当交互使用时,查询结果采用ASCII表格式。当采用非交互式(例如,用作过滤器)模式时,结…

matlab simulink_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号

##MATLAB之Simulink(二)##利用switch模块将正弦信号变为方波信号今天给大家展示一个simulink电路仿真,将正弦信号转化为方波信号。下面开始教程:1.首先直接在MATLAB命令行中输入simulink或者直接点击图标运行。2.新建一个空白编辑界面。3.打开模型库&…

web.xml.jsf_使用JSF 2.2功能来开发可滚动,可延迟加载的Ajax数据表

web.xml.jsf这次,我想与您分享我最近从JSF 2.2功能中学到的知识。 为此,我决定创建一个简单的ajax,可滚动,延迟加载的数据表。 请注意, 绝不这是相当大的库如Primefaces , RichFaces的或ICEFaces的 。 这只…

logistic回归 如何_R_语言 logistic回归分析

当涉及到二分类时,我们第一想到的就是logistic回归。前面也讲解过其他的二分类其的构建。本文主要分享logistic有关的二分类,无序多分类,有序多分类和条件logistic回归。本文因没有配图,略显枯燥,建议在运行本代码的过…

mysql 并发 锁表_MySQL中的锁(表锁、行锁) 并发控制锁

https://github.com/MrLining/mysql/wiki/MySQL%E4%B8%AD%E7%9A%84%E9%94%81%EF%BC%88%E8%A1%A8%E9%94%81%E3%80%81%E8%A1%8C%E9%94%81%EF%BC%89-%E5%B9%B6%E5%8F%91%E6%8E%A7%E5%88%B6%E9%94%816、 表锁差异MyISAM:只支持表级锁,用户在操作myisam表时&a…

jwt获取token_Koa开发之koa-jwt工作过程

最近的工作是开发一个分布式的服务系统,选用的环境是node开发环境,由于需要全面的进行异步开发所以使用Koa框架,开发Web服务需要对用户进行身份认证,所以就使用koa-jwt,为什么使用token这种方式网上有很多介绍token和s…

JDK 8 BigInteger精确缩小转换方法

在博客文章“ Java中Long到Int的精确转换 ”中,我讨论了使用Math.toIntExact(Long)来将Long精确地转换为int ,如果无法缩小转换范围,则抛出ArithmeticException 。 该方法是在JDK 8中引入的,后者还向BigIn…

sqoop hive导出到mysql_Sqoop hive导出到mysql[转]

通过Sqoop将Hive表数据导入到MySQL通常有两种情况。第一种是将hive上某张表的全部数据导入到mysql对应的表中。第二种是将hive上某张表中的部分数据导入到mysql对应的表中。两种方式的区别在于第二种情况需要指定要导入数据的列名称。两种情况的导入方式分别如下:1.…

c语言大作业_2018 C语言大作业--21_Ekko制作教程

同学们实现的效果:https://www.zhihu.com/video/1066249425780809728以下是开发同学的相关文档:《Ekko》设计报告本组设计并编写的游戏《Ekko》,是一款引用了当下红火的网络游戏《英雄联盟》中的游戏角色Ekko为主角,由本组三名成员…

Nutshell中的Java 8语言功能-第1部分

你好朋友, Java 8发布已经很长时间了,现在越来越多地被使用。 在本文中,我们将讨论以下Java 8主题。 1.功能接口 2,Lambda表达式 3.默认方法 1.功能界面 什么是功能接口? 与一种并且只有一种抽象方法的接口是功能…

mysql怎么查看代码_MySQL中的编码查看与设置(转载)

1.查看数据库编2.查看数据表的编码格式3.创建数据库时指定数据库的字符集mysql>create database character set utf8;4.创建数据表时指定数据表的编码格式create table tb_books (name varchar(45) not null,price double not null,bookCount int not null,author varchar(4…

做ppt用的小插图_如何用PPT做随机抽奖?

每到年底,每个公司都开始筹备年会活动。年会在员工们最期待的就是抽奖环节了。除了用专门的抽奖软件之外,PPT也可以做随机抽奖。今天就来解锁这个动画的做法。1,先设置好图片和文本;2,选中每一张幻灯片,选择…

mysql 隔离级别 快照_MySql的四种事务隔离级别

一、事务的四大特性(ACID)了解事务隔离级别之前不得不了解的事务的四大特性。1、原子性(Atomicity)事务开始后所有操作,要么全部做完,要么全部不做。事务是一个不可分割的整体。事务在执行过程中出错,会回滚到事务开始之前的状态,…

jsp mysql论坛_使用SSM和ajax做一个简易的论坛-01(简介和建表)

三月底刚学完SSM试着做了个简单的论坛,想分享一下,顺便整理一下自己的收获。一、demo介绍一个具有登录、注册功能,发帖、回帖功能的简易论坛。没有后台系统。设计逻辑类似于贴吧,发帖时自动附带一个一楼。二、使用的框架/库前端&a…

elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议

elastic 修改mapApache Mahout是一个“可扩展的机器学习库”,其中包括各种单节点和分布式推荐算法的实现。 在上一篇博客文章中, 我描述了如何在单个节点上实现在线推荐系统来处理数据。 如果数据太大而无法放入内存(> 100M首选项数据点&a…

mysql 更新时间加数字_Mysql实战45讲笔记:8、聚合函数count

count(*)的实现方式在不同的MySQL引擎中,count()有不同的实现方式 1. MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count()的时候会直接返回这个数,效率很高; 2. 而InnoDB引擎就麻烦了,它执行count(*)的时候&…