Keycloak SSO Pentaho集成

时间:2016-01-06 12:48:00

标签: authentication single-sign-on pentaho keycloak

我对Pentaho很新。 这是我的用例: 我使用SSO Jboss Keycloak作为我在服务器上的单点登录。我已经开发了一些已经使用它的应用程序,现在是时候将Pentaho BI包装在SSO机制中了。

我读过Pentaho身份验证基于Spring Security,幸运的是Keycloak提供了一个Spring安全适配器,通过它可以使用keycloak身份验证来保护spring应用程序。 有人可以通过列出我必须做的一些步骤来帮助我,以便开发一个身份验证密钥泄露提供程序,以便集成在pentaho身份验证过程中吗? 我的意思是: - 当我尝试登录pentaho Web应用程序时,我将被重定向到keycloak SSO登录表单。 - 当我尝试访问pentaho Web应用程序时,已经通过其他应用程序进行身份验证,我可以在没有任何凭据请求的情况下执行此操作。

更多细节,我已成功尝试使用keycloak SSO开发弹簧安全应用程序。 可以通过将security-context.xml修改为以下列表来完成:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">

    <context:component-scan base-package="org.keycloak.adapters.springsecurity" />

    <security:authentication-manager alias="authenticationManager">
    <security:authentication-provider ref="keycloakAuthenticationProvider" />
    </security:authentication-manager>


    <bean id="adapterDeploymentContextBean" class="org.keycloak.adapters.springsecurity.AdapterDeploymentContextBean" >
        <constructor-arg value="/WEB-INF/keycloak.json" />
    </bean>
    <bean id="keycloakAuthenticationEntryPoint" class="org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationEntryPoint" />
    <bean id="keycloakAuthenticationProvider" class="org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider" />
    <bean id="keycloakPreAuthActionsFilter" class="org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter" />
    <bean id="keycloakAuthenticationProcessingFilter" class="org.keycloak.adapters.springsecurity.filter.KeycloakAuthenticationProcessingFilter">
        <constructor-arg name="authenticationManager" ref="authenticationManager" />
    </bean>


    <bean id="keycloakLogoutHandler" class="org.keycloak.adapters.springsecurity.authentication.KeycloakLogoutHandler">
        <constructor-arg ref="adapterDeploymentContextBean" />
    </bean>


    <bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
        <constructor-arg name="logoutSuccessUrl" value="/" />
        <constructor-arg name="handlers">
            <list>
                <ref bean="keycloakLogoutHandler" />
                <bean class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler" />
            </list>
        </constructor-arg>
        <property name="logoutRequestMatcher">
            <bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
                <constructor-arg name="pattern" value="/sso/logout**" />
                <constructor-arg name="httpMethod" value="GET" />
            </bean>
        </property>
    </bean>
    <security:http auto-config="false" entry-point-ref="keycloakAuthenticationEntryPoint" use-expressions="true">
        <security:custom-filter ref="keycloakPreAuthActionsFilter" before="LOGOUT_FILTER" />
         <security:custom-filter ref="keycloakAuthenticationProcessingFilter" before="FORM_LOGIN_FILTER" />
         <security:intercept-url pattern="/admin/*" access="hasRole('MYROLE')" />
         <security:custom-filter ref="logoutFilter" position="LOGOUT_FILTER" />
    </security:http>
</beans>

所以我想知道这个机制是否可以轻松导入petaho application-security-context.xml

非常感谢

0 个答案:

没有答案