PHP*_*ger 4 java security saml jaas jdbcrealm
我努力学习JAAS,然后我想出的条款SAML和Realm,现在我很迷茫.
在任何基本教程中JAAS,我们几乎都配置了正常Realm配置的基本配置.如果我读取配置SAML然后它看起来像JAAS.我完全不知道为什么不同的名字.可SAML是建立在境界和JAAS对SAML,不知道任何机构可以请写明的差异.
如果你分享任何链接,请一个简单的请求,请定义一点,以便它在我阅读时帮助我.
我已经在JBOSS和Glassfish上成功配置了JAAS的BASIC和FROM身份验证.它帮助我保护我JSP和Servelets(Web项目).在哪里查看是否要保护EJB作为我的应用程序的一部分.
Vla*_*fer 10
JAAS是一组用于Java SE和EE的标准API,它提供了实现身份验证和有限授权的基本方法.JAAS用于身份验证的典型用法是通过LoginModules.LoginModule接口(javax.security.auth.spi.LoginModule)的实现能够根据CallbackHandler中调用者提供的凭据对用户进行身份验证.大多数应用程序服务器允许您插入自己的LoginModule.JAAS的其他关键概念是Subject(关于用户的信息的集合)和Principal(用户的单个属性 - ID,密码).JAAS授权的能力相当有限,很少直接使用.
Java Web应用程序的标准身份验证机制(如web.xml描述符中声明的FORM,BASIC或DIGEST)通常将提供的凭据的验证委派给配置的JAAS LoginModule.
Realm是一个概念,用于表示不同应用程序/系统的身份验证和授权策略的分离.例如,如果要使用LDAP对应用程序A中的用户进行身份验证,并且应用程序B使用数据库表,则可以将它们放入不同的安全领域,以便隔离并正确实施其安全要求.使用此术语的典型系统是Tomcat,但您也会在其他容器/应用程序服务器中找到相似之处.在大多数情况下(例如,在销毁单个应用程序时),您无需过多担心Realms.
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单点登录(可以在名为Identity Provider的实体上从应用程序向外部验证用户并登录到应用程序 - 无需服务提供商揭示用户的凭据).在这些用例中,SAML类似于OpenID或OAuth 2.0身份验证,您可以通过Facebook或Google向第三方开发人员提供这些身份验证.
希望这有帮助,弗拉基米尔谢弗