Signer - Setup em Docker
Para a instalação baseada em Docker, a seguinte imagem é disponibilizada no Docker Hub:
Esta imagem requer:
- Uma conexão com um banco de dados SQL Server: a collation do banco de dados deve ser Latin1_General_100_CI_AI ou Latin1_General_CI_AI.
- Armazenamento (compartilhado entre todas as instâncias da imagem): veja as configurações de BlobStorage abaixo para mais informações.
- Servidor OIDC (GrantID) em nuvem ou on-premises.
Configuração básica
O container desta imagem é configurado por meio de variáveis de ambiente.
Os nomes das variáveis de ambiente devem seguir o padrão Section__Setting. Por exemplo: para configurar o SupportEmailAddress
da seção General, defina uma variável com o nome General__SupportEmailAddress.
As configurações obrigatórias são apresentadas abaixo.
Connection string do banco de dados
Na seção ConnectionStrings:
- DefaultConnection: defina a connection string do banco de dados. Uma connection string típica é assim:
Data Source=SERVER;Initial Catalog=DATABASE;User ID=USERNAME;Password=PASSWORD
Se você criou o banco de dados usando recursos avançados, como log shipping ou mirroring, sua connection string pode ser diferente
Exemplo:
ConnectionStrings__DefaultConnection=Server=SERVER;Initial Catalog=DATABASE;User ID=USERNAME;Password=PASSWORD;
A maioria dos endpoints de servidor exige o seguinte formato para o parâmetro Data Source/Server:
tcp:<hostname>,<portnumber>
Seção BlobStorage
Define como a aplicação armazena e recupera arquivos.
Veja Configuração do Blob Storage para detalhes e exemplos dos serviços suportados.
Seção Serilog
Define onde os logs da aplicação são armazenados.
Veja Configuração do Serilog para detalhes e exemplos dos serviços suportados.
Configuração do OpenID Connect
A seção Oidc configura o servidor OpenID Connect, necessário para o gerenciamento de usuários. É necessária uma subscription do GrantID.
Você pode usar uma subscription SaaS em grantid.com ou executar sua própria instância do GrantID.
- Authority: a authority OIDC (ex.: https://patorum.grantid.com)
- ApiEndpoint: o endpoint da API do servidor OIDC (ex.: https://api.grantid.com)
- ApiName: o escopo de API que será exigido nos tokens de acesso
- ClientAppId: o client id do aplicativo do painel
- AppId: o client id do aplicativo de backend
- AppSecret: o client secret do aplicativo de backend
- RequireHttps (opcional): defina como
falsese o servidor OIDC não usar HTTPS
Veja a página Configurando uma aplicação SPA para saber como obter esses valores.
Exemplo:
Oidc__ApiEndpoint=https://api.grantid.com
Oidc__ApiName=myapp-api
Oidc__AppId=myapp-backend
Oidc__AppSecret=8CqeGeur46k...
Oidc__Authority=https://mysubscription.grantid.com
Oidc__ClientAppId=myapp
Oidc__CpfClaim=cpf
Oidc__CustomScopes=mysub-cpf
PKI Suite
Na seção PkiSuite:
- SdkLicense: sua licença do PKI SDK, no formato Base64 (obrigatório)
- WebLicense: sua licença do componente Web PKI no formato binário (Base64). Necessária apenas se os usuários forem emitir certificados em seus computadores (procedimento de emissão pela web)
- WebBrand: se você tiver uma setup brand personalizada no Web PKI, defina-a aqui
Exemplo:
PkiSuite__SdkLicense=AxAAzHeWJY9AK...
PkiSuite__WebLicense=ApwBY29uZml1A...
Configurações gerais
- SiteUrl: a URL a partir da qual a aplicação será executada.
- SiteName: o nome da aplicação.
- SupportEmailAddress: o e-mail de suporte, que será incluído no rodapé de todos os e-mails enviados pela aplicação.
Exemplo:
General__SiteUrl=https://signer.myapp.com
General__SiteName=MyApp Signer
General__SupportEmailAddress=support@email.com
Configuração de bindings
- UseReverseProxy: defina como
truese o container for executado atrás de um proxy reverso ou balanceador de carga. Caso contrário, pode ser omitida.
Bindings__UseReverseProxy=true
Envio de e-mail
Na seção Email:
- Enabled: por padrão, o envio de e-mail está habilitado. Para desabilitá-lo, defina esta configuração como
falsee ignore o restante desta seção - ServerHost: hostname do servidor SMTP
- EnableSsl: por padrão, a conversação SMTP é feita sobre SSL. Para desabilitar o SSL, defina esta configuração como
false - ServerPort: por padrão, a conversação SMTP é feita pela porta 587. Defina esta configuração para usar outra porta
- Username e Password: se o servidor SMTP exigir autenticação, defina estas configurações
- SenderAddress: endereço de e-mail a ser usado como remetente (campo from)
- SenderName: nome a ser usado como nome do remetente (opcional)
Exemplo:
Email__ServerHost=email-smtp.us-east-1.amazonaws.com
Email__Username=USERNAME
Email__Password=PASSWORD
Email__SenderAddress=no-reply@email.com
Email__SenderName=MYAPPNAME
Configurações adicionais
Outras configurações podem ser encontradas na página Configurações do Signer.
Instalação
Baixe a imagem estável mais recente, configure as variáveis de ambiente obrigatórias e execute o container.
Comece com apenas um container, pois na primeira inicialização as tabelas do banco de dados são criadas (mais containers poderiam causar uma condição de corrida). Depois que a inicialização inicial for concluída, você pode executar quantos containers quiser.
Orientações para atualização
Antes de atualizar seu container, recomendamos consultar o Changelog para ver o que mudou da sua versão atual até a mais recente disponível.
Se alguma das versões incluídas na atualização tiver alterações no modelo do banco de dados ("Atualiza modelo de banco de dados: sim"), proceda com cuidado, pois o container tentará atualizar o banco de dados na inicialização.
Nesse cenário, recomendamos escolher uma das seguintes opções:
- Reduzir o número de containers em execução para 1.
- Permitir que apenas um container atualize o banco de dados. Para isso, adicione as seguintes configurações a todos os containers, exceto um:
General__ProcessBackgroundJobs=false
General__AutoUpdateDatabase=false
Por fim, para atualizar, basta baixar a imagem com a tag correspondente à versão desejada e executar o container.