4

私はPentahoでかなり新しいです。これが私の使用例です。シングル サインオン サーバーとして SSO Jboss Keycloak を使用しています。私はすでにそれを使用するいくつかのアプリケーションを開発しました。今度は Pentaho BI を SSO メカニズム内にラップします。

Pentaho認証はSpring Securityに基づいていると読んだことがありますが、幸運にもKeycloakはSpring Security Adapterを提供しており、これによりkeycloak認証でSpringアプリケーションを保護できます。pentaho認証プロセス内に統合される認証キークロークプロバイダーを開発するために私がしなければならないいくつかのステップをリストして、誰かが私を助けることができますか? つまり: - pentaho Web アプリケーションにログインしようとすると、keycloak SSO ログインフォームにリダイレクトされます。- pentaho Web アプリケーションにアクセスしようとすると、他のアプリケーションによって既に認証されているため、資格情報を要求しなくてもアクセスできます。

さらに詳しく説明すると、keycloak SSO を使用して、Spring で保護されたアプリケーションの開発に成功しました。次のリストのように 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 に簡単にインポートできるかどうか疑問に思っています。

どうもありがとう

4

0 に答える 0