Skip to main content

Terraform Provider

Infraestrutura como Código para JOSSO EE

Visão Geral

O Terraform Provider do JOSSO permite gerenciar sua infraestrutura de identidade usando Infraestrutura como Código (IaC). Defina seus identity appliances, service providers e configurações em arquivos Terraform declarativos para deployments reproduzíveis e com controle de versão.

Principais Benefícios

git-mergegit-merge
Controle de Versão
Rastreie todas as mudanças de configuração no Git
repeatrepeat
Reproduzível
Implante ambientes idênticos sempre
zapzap
Automação
Integre com pipelines CI/CD
shield-checkshield-check
Conformidade
Trilha de auditoria para todas as mudanças

Instalação

Configuração do Provider

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

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

Recursos Disponíveis

Recurso Descrição
josso_identity_appliance Criar e gerenciar identity appliances
josso_identity_source Configurar fontes de identidade LDAP, AD ou banco de dados
josso_service_provider Registrar service providers SAML/OAuth/OIDC
josso_identity_provider Configurar provedores de identidade externos
josso_user Gerenciar contas de usuário
josso_group Gerenciar grupos e membros

Fontes de Dados

Fonte de Dados Descrição
data.josso_appliance Ler dados de identity appliance existentes
data.josso_user Consultar informações do usuário
data.josso_group Consultar informações de grupo

Exemplo de Configuração

Criar Identity Appliance com SAML SP

resource "josso_identity_appliance" "main" {
  name        = "production-idp"
  description = "Identity Provider de Produção"

  identity_source {
    type = "ldap"
    config = {
      url       = "ldaps://ldap.exemplo.com:636"
      base_dn   = "dc=exemplo,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         = "minha-aplicacao"
  protocol     = "saml2"

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