XACML. extensible Access Control Markup Language



Documentos relacionados
Escola Superior de Tecnologia de Setúbal. Projecto Final

Universidade da Beira Interior

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

Ajax não é dependente dos servidores Web, e como tal poderá ser usado com PHP, JSP, ASP e ASP.NET.

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados

Manual do Aluno Plataforma de e-learning Moodle

PERIVER PLATAFORMA SOFTWARE REQUIREMENT SPECIFICATION. Periver_SoftwareRequirementSpecification_ _v1.0.doc. Versão 1.0

Tutorial exe elearning XHTML editor (versão 1.0x)

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR

Centro de Competência Entre Mar e Serra. Guia

Tarefa Orientada 2 Criar uma base de dados

Manual de utilização do Moodle

Gestão de projectos na Web

Portal AEPQ Manual do utilizador

ued - unidade de ensino a distância instituto politécnico de leiria BlackBoard - Moodle Guia rápido

Manual de Administração Intranet BNI

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Design Patterns na plataforma Java

Java e JavaScript. Krishna Tateneni Tradução: José Pires

Engenharia de Software. Enunciado da Primeira Parte do Projecto

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

novo ManageToRefresh

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Planificação Anual 2015/2016

Forms Authentication em ASP.NET

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Fábio Costa e Miguel Varela

Microsoft Office FrontPage 2003

Arquivo Digital de Trabalhos Práticos de Alunos

Cookies. Krishna Tateneni Jost Schenck Tradução: José Pires

Aplicações de Escritório Electrónico

Download. Instalaça o. Geral

MANUAL DE UTILIZADOR Aplicativo: Análise do Estudo da Lição da Escola Sabatina. 0. INTRODUÇÃO ARRANQUE DO APLICATIVO Início...

Java Mail Server. Manual do Utilizador

Ferramentas Web, Web 2.0 e Software Livre em EVT

Glossários em Moodle (1.6.5+)

Engenharia de Software. Enunciado da Segunda Parte do Projecto

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

Organizar a estrutura do site

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

SECUNDÁRIA DE CAMARATE Plataforma Office 365. Alojamento de ficheiros - OneDrive para Empresas

TUTORIAL WORDPRESS PARTE 2. Configurações iniciais do blog em WordPress. Painel

Introdução Banco de Dados

Segurança na Plataforma Microsoft.Net

COM/OLE 11. Engenharia Informática Instituto Superior de Engenharia do Porto. Alexandre Bragança 1998/99

Engenharia de Software. Enunciado da Quarta Parte do Projecto

Google Sites. A g r u p a m e n t o C a m p o A b e r t o /

GeoMafra SIG Municipal

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA. Reflexão Criação de páginas para a web em hipertexto

O que há de novo. Audaces Idea

Tecnologias de Informação e Comunicação Página 1 de 5

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Engenharia de Software Sistemas Distribuídos

O sucesso da WWW. Atualização de Hiperdocumentos. Atualização de Hiperdocumentos. Cuidados. Exemplo. Passos. Motivos :

Desenvolvimento Cliente-Servidor 1

Internet Update de PaintManager TM. Manual de instalação e utilização do programa de actualização

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Construção Páginas de Internet

Capítulo 8. Software de Sistema

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

estiglp-11/ csharp e Fsharp 1 Relatório Linguagens de programação 11/12 João Caixinha nº5946

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Imagens - Formatos. GIF (Graphics Interchange Format) JPEG (ou JPG) (Joint Pictures Experts Graphis)

Planificação Anual da disciplina de TIC 9ºANO

Ferramentas Web, Web 2.0 e Software Livre em EVT

FICHEIROS COM EXEMPLOS

Trabalho Prático Nº1 Introdução ao C#.NET

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

ACTOS PROFISSIONAIS GIPE. Gabinete de Inovação Pedagógica

Padrões de Projeto WEB e o MVC

O que é o JavaScript?

Ferramentas Web, Web 2.0 e Software Livre em EVT

GERENCIADOR DE CONTEÚDO

UNIVERSIDADE. Sistemas Distribuídos

Aula 1: Noção Básica e Criação de Tabelas.


COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

A Internet 7 Criação de Páginas Web

Mais sobre uso de formulários Site sem Ajax


Squeak Componente Livro. Luís Valente, 2009

Interface Pessoa Máquina

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;

Sistema de Gerenciamento Remoto

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Guia Rápido de Vodafone Conferencing

ZS Rest. Manual Avançado. Ementas : e SMS. v2011

Adriano Reine Bueno Rafael Barros Silva

Persistência e Banco de Dados em Jogos Digitais

Metodos de Programação

Guião de Introdução ao Eclipse IDE Índice

Transcrição:

XACML extensible Access Control Markup Language Autor Orientador Doutor Diogo Gomes Colaborador Engenheiro Ricardo Azevedo Universidade de Aveiro Instituto de Telecomunicações Portugal Telecom Inovação

XACML O que é Norma definida pela OASIS para controlo de acessos extensível e genérico Consiste em: Linguagem extensível de políticas em xml Linguagem extensível de pergunta-resposta em xml Arquitectura distribuída baseada em: Policy Enforcement Point Policy Decision Point Policy Information Point Policy Administration Point

XACML Para que serve Controlo de acessos Como é genérico e extensível, pode ser aplicado em qualquer contexto: Controlo de acesso de portas Controlo de acesso numa página web Controlo de acesso de serviços Só toma decisões! Não serve para saber que permissões uma determinada entidade tem

XACML Como funciona Sistema de pergunta resposta Arquitectura distribuída

XACML Pergunta O sujeito pode realizar a acção no recurso num determinado contexto? Palavras chave: Sujeito Tanto pode ser uma pessoa como um equipamento Acção Predicado (aceder, ler, editar, abrir, ) Recurso O destino da acção (serviço, publicação, texto, porta, ) Contexto Tudo o que não se enquadre nos anteriores (espaço temporal, níveis de carga de processamento, nº de pessoas num local)

XACML Pergunta O sujeito pode realizar a acção no recurso num determinado contexto? <Request> <Subject> <Attribute AttributeId="utilizador" DataType="http://www.w3.org/2001/XMLSchema#string"> <AttributeValue>Anónimo</AttributeValue> </Attribute> </Subject> <Action> <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" DataType="http://www.w3.org/2001/XMLSchema#string"> <AttributeValue>Ler</AttributeValue> </Attribute> </Action> <Resource> <Attribute AttributeId= tipo" DataType="http://www.w3.org/2001/XMLSchema#string"> <AttributeValue>Tópico</AttributeValue> </Attribute> </Resource> </Request> Exemplo em XACMLv2 Sujeito Recurso Acção

XACML Pergunta O sujeito pode realizar a acção no recurso num determinado contexto? <Subject> <Attribute AttributeId="utilizador" DataType="http://www.w3.org/2001/XMLSchema#string"> <AttributeValue>Anónimo</AttributeValue> </Attribute> </Subject> Exemplo em XACMLv2 <xacml:attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"> <xacml:attribute AttributeId="utilizador IncludeInResult="false"> <xacml:attributevalue DataType="http://www.w3.org/2001/XMLSchema#string"> Anónimo </xacml:attributevalue> </xacml:attribute> </xacml:attributes> Exemplo em XACMLv3

XACML Resposta Tipos de resposta: Permissão concedida (Permit) Permissão negada (Deny) Permissão indeterminada (Indeterminate) Não existem políticas aplicáveis (Not applicable) Juntamente com: Tarefas a serem executadas antes de ser permitido o acesso *

XACML Resposta * Na versão 2 do XACML, existe o elemento Obligation O Policy Enforcement Point deve executar todas as tarefas descritas nos Obligations O que acontece quando a tarefa não é relevante e o Policy Enforcement Point não a consegue executar?

XACML Resposta * Na versão 3 do XACML, existem os elementos Obligation e Advice O Policy Enforcement Point : Deve executar todas as tarefas descritas nos Obligations Tentar executar as tarefas descritas nos Advices Se uma tarefa do elemento Advice falhar, a decisão não é alterada

XACML Avaliação Como são estruturadas as políticas? Existem 3 elementos principais Rule effect: Permit Deny

XACML Avaliação Como são avaliados os elementos? Cada elemento tem um Target Avaliação feita a partir do topo Policy PolicySet É aplicável? Não. Pára! É aplicável? Sim! Então avalia o próximo nível PolicySet Rule effect: Permit Deny É aplicável? Sim! Então avalia o próximo nível Não. Rule Rule Policy Policy Sim! Resultado: Acesso negado!!! Porquê? Pára! Avalia o próximo nível Rule Rule Sim! Rule Não

XACML Avaliação E se mais do que uma regra/política for aplicável? Resposta: Algoritmos combinatórios Permit-overrides Deny-overrides Only-one-applicable First-applicable (podem ser criados outros)

XACML Avaliação Como é constituído um Target? XACMLv2 XACMLv3 Subjects Subject Subject Match AllOf Match Match Target Actions Resources Environments Action Resource Environment Action Match Resource Match Environment Match Target AnyOf AnyOf AllOf AllOf Match Match

XACML Avaliação Como é constituído um Target? Processo uniforme para todas as categorias Permite uniões e intersecções XACMLv3 AllOf Match Match Mas Elementos AnyOf e AllOf não têm atributos identificadores Na gestão de políticas implica analisar os valores contidos para saber qual editar/apagar e onde inserir Ou recriar Target por cada alteração Target AnyOf AnyOf AllOf AllOf Match Match

PAP XACMLv3 Policy Administration Point Autor Orientador Doutor Diogo Gomes Colaborador Engenheiro Ricardo Azevedo Universidade de Aveiro Instituto de Telecomunicações Portugal Telecom Inovação

Policy Administration Point Objectivos deste projecto Sistema de informação extensível (importação de módulos sem recompilação) Interface de administrador que abstraia a complexidade do XACMLv3 Criação de políticas que obedeçam à norma

Policy Administration Point Extensibilidade Permitir importação de classes que implementem as interfaces definidas para: Obtenção de informação do Policy Information Point Persistência e obtenção de políticas Solução usada URLClassLoader, carrega classes de ficheiros *.jar, em tempo de execução

Policy Administration Point Extensibilidade (Classe de carregamento de classes)

Policy Administration Point Extensibilidade (Interfaces)

Policy Administration Point Extensibilidade (Factory)

Policy Administration Point Extensibilidade (Módulos implementados) Policy Retreiver BD XML Nativa ORACLE Berkeley s DB XML Problemas: Não obedece a normas Não tem suporte para ligações (ex.: JDBC) Não suporta JVM 64bits

Policy Administration Point Extensibilidade (Módulos implementados) Info Retreiver Lê ficheiro xml Devolve: Tipos de dados Funções Algoritmos combinatórios

Policy Administration Point Abstracção da complexidade do XACMLv3 na interface de administrador Solução usada: Interface web com: Representação de políticas em nós com ligações entre eles Abstracção de nomes complexos através de imagens representativas e nomes simplificados Abstracção das regras do XACMLv3 através de opções únicas para cada contexto

Policy Administration Point Representação de políticas em nós com ligações entre eles: Página web em XHTML Nós: elementos DIV flutuantes Criada framework em javascript para criação e gestão de janelas Ligações: Canvas HTML5 para desenho de linhas entre os elementos DIV s Criada framework para ligação de nós e desenho em canvas Mecanismo que usa as duas frameworks anteriores para representação de janelas e nós

Policy Administration Point Abstracção de nomes complexos através de imagens representativas e nomes simplificados Funções: string-equal em vez de urn:oasis:names:tc:xacml:1.0:function:string-equal Tipos de dados: string em vez de http://www.w3.org/2001/xmlschema#string

Policy Administration Point Criação de políticas que obedeçam à norma Existe um esforço para que, por trás de toda a abstracção, as políticas sejam criadas conforme a norma especificada Em cada contexto, as opções mudam em relação às possibilidades de cada elemento Por exemplo, existe uma toolbox que muda os botões dependendo dos elementos seleccionados

Policy Administration Point Implementação: aplicação J2EE

Policy Administration Point Implementação: aplicação J2EE (problemas) ClassLoader não funcionou quando colocado em funcionamento numa aplicação web Classes de instância única não tinham sempre a mesma instância

Policy Administration Point Class Loader do Java Funciona de modo hierárquico Imagem retirada de http://www.objectsource.com/j2eechapters/ch21-classloaders_and_j2ee.htm

Policy Administration Point Instâncias em web servers Aplicação é colocada em mais do que um contentor Para melhor performance, a carga é distribuída pelos contentores

Policy Administration Point Juntando tudo AJAX

Policy Administration Point Conclusões XACML permite fazer controlo de acessos granulado e genérico A versão 3 trouxe melhorias em relação à versão 2 Adição de Advices em alternativa a Obligations Uniões e intersecções de Targets Multi-request Mas ainda não está terminada Não existem muitas implementações Problemas de administração de Targets

Policy Administration Point Questões?