25
tarek.akik@oxiasof t.com

Acegi Security

  • Upload
    tarkaus

  • View
    15.903

  • Download
    0

Embed Size (px)

DESCRIPTION

Acegi Security for JEE java application

Citation preview

Page 2: Acegi Security

23/12/2007 2

Agenda

Api Description Features Unitils Design Supported Module System Unitils by Example

Page 3: Acegi Security

23/12/2007 3

Page 4: Acegi Security

23/12/2007 4

ACEGI Spring Security

ACEGI est un framework qui va vous permettre de gérer 2 grandes problématiques liées à la sécurité applicative

Qui es-tu toi qui parles à mon application ? Ça c'est l'authentification

Qu'as-tu le droit de faire avec mon application ? Ça c'est l'autorisation

C'est cool mais à quoi cela sert-il puisque la sécurité est déjà quelque chose intégré à Java EE au travers de la spécification sur les servlets et sur les EJB ?

Page 5: Acegi Security

23/12/2007 5

ACEGI Spring Security

Et bien le problème est que ces spécifications s'appuient sur la notion de rôle mais que la manière d'associer un rôle avec un « principal », on va dire un « nom d'utilisateur » pour faire simple, n'est pas standardisée. La conséquence est simple, chaque serveur d'application propose ses propres extensions pour réaliser cette correspondance. Je ne prendrai qu'un exemple simple avec le fichier

tomcat-users.xml de Tomcat qui, comme son nom semble l'indiquer, est spécifique à Tomcat.

Page 6: Acegi Security

23/12/2007 6

ACEGI Spring Security

Alors, bon, ce n'est pas non plus tous les quatre matins que l'on change de serveur d'application, je vous l'accorde. Cependant, il n'est pas rare que vous ayez, dans votre entreprise ou pour des clients, à travailler avec différents serveurs d'application

D'autre part, on va le voir au travers des différents exemples, ACEGI est totalement intégré à Spring et bénéficie donc du mécanisme d'IoC et vous permet in fine d'être homogène dans la manière de bâtir et de sécuriser votre application.

Page 7: Acegi Security

23/12/2007 7

ACEGI Spring Security

Enfin, on peut aussi préciser qu'en fonction des options de sécurité choisies, vous allez pouvoir fournir une application sécurisée auto-suffisante pour n'importe quel serveur d'application puisque toutes les informations de sécurité, y compris les librairies ACEGI, seront packagées avec votre application sous forme de .WAR ou .EAR.

Page 8: Acegi Security

23/12/2007 8

Les Fonctionnalités En Un Clin D'oeil

Côté authentificationLes modes d'authentification supportés sont les suivants :

HTTP BASICHTTP DigestHTTP X.509 (échange de certificat)LDAPForm-based (comme dans le cas des servlets)SiteMinder (de Computer Associates)JA-SIG Central Authentification Service (CAS – outil de SSO open source)Propagation du contexte d'authentification pour RMI et HttpInvoker de SpringPossibilité de se rappeler d'une précédente authentification (« remember-me »)Authentification anonyme

Page 9: Acegi Security

23/12/2007 9

Les Fonctionnalités En Un Clin D'oeil

« Run-as » permettant de changer l'identité de l'appelant quand un serveur appelle un autre

Java Authentication and Authorization (JAAS)

Votre propre système d'authentification (par extension)

Page 10: Acegi Security

23/12/2007 10

Les Fonctionnalités En Un Clin D'oeil

Côté autorisationLes URLs de votre site, c'est à dire les pages et les servlet

Les méthodes de vos beans. Là, on dépasse ce que sait faire en standard Java EE puisque ce n'est possible qu'avec des EJBs

Les objets eux mêmes. Là on sdépasse encore plus ce que propose Java EE en standard

Page 11: Acegi Security

23/12/2007 11

Les grands principes

Le filtrage des accès

Page 12: Acegi Security

23/12/2007 12

Les grands principes

Le principe mis en place par ACEGI pour sécuriser une ressource est relativement simple, une série de « filtres » sont interposés entre l'appelant et la ressource elle-même.Ces différents filtres ont chacun un rôle précis dans la chaîne de sécurisation.Nous allons voir aussi que l'on peut mettre ou ne pas mettre certains filtres en fonction des options que l'on choisit pour sécuriser la ressource mais aussi en fonction des besoins qui peuvent s'imposer.

Page 13: Acegi Security

23/12/2007 13

Les grands principes

ACEGI utilise la notion de « filter » définie dans la spécification sur les servlets (fichier web.xml) pour positionner ses propres filtres spécialisés dans la sécurité et les aspects (Spring AOP ou AspectJ) pour sécuriser les appels de méthodes ou les objets.

Page 14: Acegi Security

23/12/2007 14

FonctionnementRessource demandée

Accès obtenu

Authentification de l’utilisateur

Accès obtenu

Page d’erreur login failed

Page d’erreur not authorized

Sécurisée?

Principal a roles demandés?

AuthentificationOK

Principal existant ?

non

non

oui

oui

oui

non

non

oui

Page 15: Acegi Security

23/12/2007 15

The Filter Chain(acegi-config.xml)

Page 16: Acegi Security

23/12/2007 16

Acegi Filters

The AuthenticationProcessingFilter handles the Authentication Request Check (“logging into the application”).

The HttpSessionContextIntegrationFilter maintains the Authentication object between various requests and passes it around to the AuthenticationManager and the AccessDecisionManager when need

The ExceptonTranslationFilter performs the Existing Authentication Check

FilterSecurityInterceptor manages the Restricted Acces Check,and the Authorisation check. It knows which resourcesare secure and which roles have access to them.

Page 17: Acegi Security

23/12/2007 17

Configuration(acegi-config.xml) FilterChainProxy

Page 18: Acegi Security

23/12/2007 18

Configuration(acegi-config.xml) AuthenticationProcessingFilter

Page 19: Acegi Security

23/12/2007 19

Configuration(acegi-config.xml) HttpSessionContextIntegrationFilter

Page 20: Acegi Security

23/12/2007 20

Configuration(acegi-config.xml) ExceptionTranslationFilter

Page 21: Acegi Security

23/12/2007 21

Configuration(acegi-config.xml) FilterSecurityInterceptor

Page 22: Acegi Security

23/12/2007 22

ACEGI

RequêteRequête

SecuredObject

SecurityInterceptor AuthenticationManager

AccessDecisionManager

ObjectDefinitionSource

ContextHolder

FilterChainProxyd’ACEGI

DataSource

Point d’accès

Page 23: Acegi Security

23/12/2007 23

1. Installation d’acegi1. Ajouter les librairies nécessaires

2. Configurer acegi dans web.xml

3. Ajouter le fichier applicationContext-security.xml

2. Module d’authentification1. Ajouter la page login

2. Configurer les filtres d’authentification

3. Configurer l’interceptor

Page 24: Acegi Security

23/12/2007 24

3. Module d’autorisation1. Configurer les filtres d’autorisation

2. Configurer les ressources sécurisées dans la source de définition des objets

4. Filtres pour logout et accessDenied1. Ajouter le filtre logout et le lien qui l’appelle

2. Configurer l’accessDenied dans le filtre d’exception (exceptionTranslationFilter)

5. Utilisation des tags et des menus

Page 25: Acegi Security

23/12/2007 25

Links

ACEGI website:

www.acegisecurity.org