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
Controle de Versão
Rastreie todas as mudanças de configuração no Git
Reproduzível
Implante ambientes idênticos sempre
Automação
Integre com pipelines CI/CD
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"
}
}