Personalizando o CAS

O CAS (Central Authentication Service) é um projeto open-source com o objetivo de prover a funcionalidade de autenticação única (single sign-on) para aplicações web.

Neste post, explicarei como criar uma versão customizada do CAS para que suas aplicações façam uso do single sing-on da sua maneira.

Seguindo a recomendação do wiki do CAS, uma das maneiras de customizá-lo é criar um projeto maven de uma aplicação web, e adicionar como dependência a aplicação que vem no pacote do CAS.

Digamos que a empresa “Oba oba” queira autenticar suas aplicações utilizando o CAS:

1. Criar diretório para o projeto

mkdir cas-obaoba
cd cas-obaoba
mkdir -p src/main/webapp
gedit pom.xml

2. Criar o pom.xml descrevendo o projeto maven

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>br.com.obaoba.cas</groupId>
    <artifactId>cas-obaoba</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>cas-obaoba - Aplicação de autenticação</name>
    <description>Aplicação JA-SIG CAS customizada para a Oba oba.</description>

    <dependencies>

        <!-- aplicação web do CAS que será personalizada-->
        <dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-webapp</artifactId>
            <version>3.3.3</version>
            <type>war</type>
        </dependency>

        <dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-core</artifactId>
            <version>3.3.3</version>
        </dependency>

      </dependencies>
    <build>
        <finalName>cas-obaoba</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>RELEASE</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<configuration>
					<contextPath>cas-obaoba</contextPath>
					<scanIntervalSeconds>5</scanIntervalSeconds>
					<connectors>
						<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
							<port>8080</port>
							<maxIdleTime>60000</maxIdleTime>
							<confidentialPort>8443</confidentialPort>
						</connector>
					</connectors>
				</configuration>
			</plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>jasig-repository</id>
            <name>JA-SIG Maven2 Repository</name>
            <url>http://developer.ja-sig.org/maven2</url>
        </repository>
    </repositories>
</project>

3. Empacotar o projeto

mvn package

4. Copiar o conteúdo da aplicação web (xmls, jsps, css, javascripts, etc) que será personalizado.

cp -r target/cas-obaoba/* src/main/webapp/

5. Iniciar o servidor de desenvolvimento para confirmar que tudo deu certo.

mvn jetty:run

6. Abra http://localhost:8080/cas-obaoba no browser e verifique se a aplicação foi iniciada corretamente.

Imagem do browser exibindo a aplicação de login do CAS

Imagem do browser exibindo a aplicação de login do CAS

Estes foram os passos básicos para iniciar um projeto de personalização do CAS. A partir deste projeto, é possível alterar o conteúdo que está em src/main/webapp para incorporar o layout da sua empresa, além de modificar as configurações do CAS no arquivo src/main/webapp/WEB-INF/deployerConfigContext.xml para utilizar AuthenticationHandlers específicos da sua instalação, bem como um TicketRegistry real de alta disponibilidade. Assuntos que possivelmente serão tratados em outros posts.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: