Skip to main content

Proveedor Terraform

Infraestructura como Codigo para JOSSO EE

Vision General

El Proveedor Terraform de JOSSO te permite gestionar tu infraestructura de identidad usando Infraestructura como Codigo (IaC). Define tus appliances de identidad, proveedores de servicio y configuraciones en archivos Terraform declarativos para despliegues reproducibles y controlados por version.

Beneficios Clave

git-mergegit-merge
Control de Versiones
Rastrea todos los cambios en Git
repeatrepeat
Reproducible
Despliega entornos identicos cada vez
zapzap
Automatizacion
Integra con pipelines CI/CD
shield-checkshield-check
Cumplimiento
Pista de auditoria para todos los cambios

Instalacion

Configuracion del Proveedor

terraform {
  required_providers {
    josso = {
      source  = "atricore/josso"
      version = "~> 2.6"
    }
  }
}

provider "josso" {
  endpoint = "https://tu-servidor-josso:8443"
  username = var.josso_username
  password = var.josso_password
}

Recursos Disponibles

Recurso Descripcion
josso_identity_appliance Crear y gestionar appliances de identidad
josso_identity_source Configurar fuentes de identidad LDAP, AD o base de datos
josso_service_provider Registrar proveedores de servicio SAML/OAuth/OIDC
josso_identity_provider Configurar proveedores de identidad externos
josso_user Gestionar cuentas de usuario
josso_group Gestionar grupos y membresias

Fuentes de Datos

Fuente de Datos Descripcion
data.josso_appliance Leer datos de appliance de identidad existente
data.josso_user Buscar informacion de usuario
data.josso_group Buscar informacion de grupo

Configuracion de Ejemplo

Crear un Appliance de Identidad con SAML SP

resource "josso_identity_appliance" "main" {
  name        = "production-idp"
  description = "Proveedor de Identidad de Produccion"

  identity_source {
    type = "ldap"
    config = {
      url       = "ldaps://ldap.ejemplo.com:636"
      base_dn   = "dc=ejemplo,dc=com"
      bind_dn   = var.ldap_bind_dn
      bind_pass = var.ldap_bind_pass
    }
  }
}

resource "josso_service_provider" "app1" {
  appliance_id = josso_identity_appliance.main.id
  name         = "mi-aplicacion"
  protocol     = "saml2"

  saml_config {
    entity_id         = "https://app.ejemplo.com/saml"
    acs_url           = "https://app.ejemplo.com/saml/acs"
    sign_assertions   = true
    name_id_format    = "email"
  }
}