JAAS,SAML和Realm有什么区别?
我试图学习JAAS
,然后我想出了SAML
和Realm
这两个术语,现在我感到困惑。
在JAAS
任何基本教程中,我们几乎都配置了一个普通的Realm
配置。 如果我阅读SAML
配置,那么它看起来与JAAS
类似。 我完全不知道为什么不同的名字。 可能SAML是建立在Realm和JAAS上的SAML ,不确定任何机构能否清楚说明差异。
如果您分享任何链接,请提出谦虚的要求,请定义一下它,以便在我阅读时帮助我。
我已经在JBOSS和Glassfish上成功配置了JAAS的基于BAS和FROM的身份验证。 它帮助我保护我的JSP
和Servelets
(Web Project)。 在哪里看看我是否想保护EJB作为我的应用程序的一部分。
JAAS是一组用于Java SE和EE的标准API,它们提供了实现身份验证和有限授权的基本方法。 JAAS用于身份验证的典型用法是通过LoginModules。 LoginModule接口(javax.security.auth.spi.LoginModule)的实现能够根据CallbackHandler中的调用者提供的凭据对用户进行身份验证。 大多数应用程序服务器允许您插入自己的LoginModule。 JAAS的其他关键概念是主体(关于用户的信息的集合)和主体(用户的单个属性 - ID,密码)。 JAAS授权的功能相当有限,很少直接使用。
Java Web应用程序的标准认证机制(如在您的web.xml描述符中声明的FORM,BASIC或DIGEST)通常将提供的凭证的验证委托给配置的JAAS LoginModules。
领域是一个用于表示不同应用程序/系统的身份验证和授权策略分离的概念。 例如,如果您想要使用LDAP对应用程序A中的用户进行身份验证,并且应用程序B使用数据库表,则可以将它们置于不同的安全领域,以便将他们的安全要求隔离并正确执行。 使用此术语的典型系统是Tomcat,但您也会在其他容器/应用程序服务器中找到相似之处。 在大多数情况下(例如,在删除单个应用程序时),您不必过于担心领域。
Java EE为使用基于角色的访问控制(RBAC)提供了保护EJB的标准机制。 您首先定义哪些角色适用于您的应用程序,然后定义哪些用户访问您的应用程序属于哪些角色。 然后,您可以使用声明式授权(=使用@RolesAllowed,@PermitAll,@DeclareRoles等安全注释来注释您的方法,或者使用XML描述符执行相同的操作)或编程式授权(=通过调用isCallerInRole来测试用户是否属于角色EJBContext直接在你的代码中)。 基本教程可以在这里找到http://docs.oracle.com/javaee/6/tutorial/doc/bnbyl.html
SAML是一个与以前不同的野兽。 以一种非常简单的方式,您可以将SAML WebSSO视为一种身份验证方法。 通常,SAML是一种标准,它定义了一种基于XML的协议,用于以安全的方式在远程系统之间传输用户信息,其身份验证事件和安全属性。 除了协议本身之外,SAML标准还定义了协议的典型用例,最常见的是Web单一登录(可以在一个称为身份提供商的实体上从应用程序向外部对用户进行身份验证,并登录到应用程序 - 服务提供商无需揭示用户的凭据)。 在这些使用案例中,SAML与OpenID或OAuth 2.0身份验证类似,您可以通过Facebook或Google向第三方开发人员提供这些身份验证。
希望这有助于弗拉基米尔谢弗
看看这是否有助于你。 领域是具有特定配置的区域。 JAAS和SAML都是可以配置为处理该认证的认证模块。 SAML是一种认证方案。 http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language
为了增加其他答案,我从本文中找到以下解释是有帮助的:
实际上,SAML和JAAS是两个截然不同的安全框架。 SAML是用于交换认证和授权信息的XML框架。 SAML为指定认证,属性和授权决策语句提供了一个标准XML模式,并且它还指定了一个基于Web服务的请求/回复协议来交换这些语句。
另一方面,JAAS通过特定于实现的登录模块接收关于用户的信息,验证用户并验证它们是否是有效的主题。
据我了解,JAAS可以用于为您的应用实现自定义身份验证和授权,并且有很多可能的方式来执行此操作,其中一些涉及SAML。 例如,您可以使用SAML获取用户的身份和角色/组信息; 这将存储在您的JAAS模块需要解析的XML令牌中。
链接地址: http://www.djcxy.com/p/22261.html