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
Control de Versiones
Rastrea todos los cambios en Git
Reproducible
Despliega entornos identicos cada vez
Automatizacion
Integra con pipelines CI/CD
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"
}
}