Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

491
Vistas
Cómo implementar el control de acceso basado en atributos (ABAC) en PHP

Acabo de encontrar un marco de AT&T para construir ABAC.

Este marco utiliza XACML siguiendo el formato XML para crear reglas. Pero este marco solo se implementa para Java.

Sin embargo, estoy trabajando con PHP y estoy usando JSON para escribir reglas.

¿Es correcta mi solución? ¿Puede sugerir algunos marcos o soluciones compatibles con PHP?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para completar la respuesta de David con respecto a AuthzForce : es de código abierto, compatible con XACML 3.0 y proporciona tanto una API Java (AuthzForce Core) como una API REST para PAP y PDP. Entonces podría usar la API REST de su programa PHP. La API es compatible con los formatos XML y JSON para las interfaces PAP y PDP. Sin embargo, no estamos usando el perfil JSON de XACML para PDP. En cambio, para toda la API, usamos la convención mapeada proporcionada por Apache CXF . Dicha convención permite la traducción automática de XML (más precisamente, el modelo interno derivado de XML utilizado en el código de implementación) a JSON y viceversa automáticamente.

EDITAR (2018-02-26): AuthzForce Core y Server ahora admiten el perfil JSON estándar de XACML para el PDP. AuthzForce también proporciona un PDP RESTful mínimo basado en Core, ya sea empaquetado como una aplicación Spring-boot o simplemente la implementación de JAX-RS para su reutilización en cualquier marco JAX-RS.

about 4 years ago · Santiago Trujillo Denunciar

0

El marco de AT&T fue un marco de investigación y desarrollo diseñado por AT&T hace algunos años y luego lanzado a Apache. Según github , todavía está activo. No estoy al tanto de ningún uso comercial del producto (aunque sospecho que AT&T lo usa).

Los tres marcos principales utilizados por ahí son:

  • Balana WSO2. Este es un PDP Java de código abierto. También se incluye como parte de WSO2 Identity Server. La mayoría de los usuarios de código abierto utilizan Balana.
  • SunXACML: esta es la implementación original de XACML 3.0. Es bastante viejo pero resistente (ha existido durante 10 años más o menos). También es de código abierto y Java.
  • Servidor de políticas Axiomatics . Esta es una solución comercial (descargo de responsabilidad: trabajo para Axiomatics). Es la solución comercial más frecuente que existe. También está implementado en Java, pero también admite la integración para PHP.

Puede encontrar esta información en la página de wikipedia de XACML . Hay otro motor interesante llamado AuthZForce pero tengo poca experiencia con él.

Todos estos motores, AFAIK, usan el formato XML de XACML para almacenar políticas. Usted afirma que necesita JSON. No hay un perfil de política de XACML en JSON. Hubo una pregunta sobre el tema que puedes leer aquí .

Dado que Axiomatics Policy Server está expuesto como una API JSON, puede usarlo para integrarse con PHP. Otros motores probablemente tengan un enfoque similar. Si utiliza Amazon AWS, puede solicitar una copia de la AMI del servidor de políticas de Axiomatics .

ABAC es tecnológicamente neutral, lo que significa que no es específico de Java, Ruby, .NET, PHP o cualquier otro lenguaje. En qué está escrito el motor PDP es irrelevante para en qué está escrita su aplicación, siempre que pueda integrar los dos juntos.

Espero que esto ayude, David.

about 4 years ago · Santiago Trujillo Denunciar

0

El componente de control de acceso TYPO3 implementa ABAC y admite un lenguaje de política de control de acceso simple pero expresivo basado en Jiang, Hao y Bouabdallah, Ahmed (2017) y está escrito en PHP.

Consulte el esquema JSON para obtener una impresión rápida sobre el lenguaje de la política de control de acceso. El componente es delgado y flexible. No se opina sobre el formato ni sobre el lenguaje de expresión del lenguaje de la política. Por ejemplo, podrías usar el lenguaje de expresión YAML y Symfony . Como tal política podría verse así:

 description: 'Root policy set.' algorithm: highestPriority policies: Admin: target: 'hasAuthority("typo3:security:principal:admin")' description: 'Administrator policy' priority: 100 rules: - effect: permit Default: description: 'Deny everything per default.' rules: - obligation: deny: Feedback: ['Access denied.']
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda