A Transloadit está pronta para empresas
Todo questionário de segurança pergunta as mesmas coisas. Quem pode fazer login e como remover esse acesso? O que uma chave vazada pode fazer? Com o que vocês se comprometem por escrito? Agora a Transloadit tem uma resposta clara para cada pergunta, para que sua avaliação possa seguir para o próximo fornecedor.
Login único para seu Workspace
Membros de Workspaces Enterprise agora podem fazer login no Console por meio de SAML 2.0. Seu provedor de identidade autentica os colegas de equipe; a associação ao Workspace da Transloadit, os convites e os limites de assentos continuam determinando o acesso.
O SSO está em acesso antecipado, então tudo começa com a gente: envie um e-mail para nossa equipe de vendas, e nós o habilitamos para seu Workspace e ajudamos você a configurá-lo. Em seguida, o proprietário do Workspace abre Configurações e depois Login único (SAML) no Console. Lá, o proprietário copia o nosso ID de entidade do provedor de serviço, a URL do ACS e a URL de metadados para o provedor de identidade, e cola de volta na Transloadit o ID de entidade, a URL de SSO, o certificado X.509 e o atributo de e-mail do provedor de identidade. Proprietários que fazem login com senha precisam confirmá-la quando uma nova sessão elevada for necessária. O provedor de identidade precisa assinar suas asserções e enviar um NameID estável e não transitório.
Depois, os colegas de equipe escolhem Continuar com SSO na página de login e informam o slug do Workspace. Alguns detalhes sobre os quais os revisores de segurança costumam perguntar:
- Provisionamento. No Console, ative Permitir provisionamento just-in-time de usuários para permitir que pessoas sem conta na Transloadit entrem com a função de usuário no primeiro login, dentro dos assentos do seu plano, contando os convites pendentes. Quem já tem uma conta, mas não é membro, precisa de um convite, mesmo com essa opção ativada. Novos membros que entram por um convite de SSO também recebem a função de usuário; membros existentes mantêm suas funções. Com o provisionamento desativado, apenas membros existentes e pessoas convidadas podem fazer login.
- Desligamento. Desativar alguém no seu provedor de identidade bloqueia novos logins por SSO, mas não uma sessão existente nem outro método de login. Remova separadamente a associação dessa pessoa ao Workspace; o acesso dela a esse Workspace termina na próxima requisição. Também faça a rotação ou exclua toda Auth Key cujo segredo essa pessoa tenha criado, visualizado ou acessado de alguma outra forma.
- Escopo. O SSO funciona ao lado do login por senha, em vez de substituí-lo, e os logins começam na Transloadit (iniciados pelo SP). Membros que já têm senha ainda podem usá-la.
Chaves de acesso como segundo fator
A autenticação de dois fatores no Console costumava significar um código de seis dígitos enviado por e-mail. Agora você pode usar uma chave de acesso no lugar dele: Face ID, Touch ID ou uma chave de segurança física. Uma chave de acesso só funciona no site para o qual foi criada, então uma página de login falsa não consegue capturá-la por phishing.
No Console, abra Configurações do usuário, depois Segurança de login, depois Autenticação de dois fatores, escolha Chave de acesso e siga as instruções do seu navegador. Em uma sessão autenticada por senha, você pode voltar para os códigos por e-mail. As chaves de acesso se aplicam a contas que fazem login com senha. Logins com Google, GitHub e SAML dependem, em vez disso, da autenticação e da MFA do respectivo provedor de identidade.
O Console atualmente registra uma única chave de acesso. Para substituí-la, mude para os códigos por e-mail em uma sessão autenticada por senha, depois escolha Chave de acesso e registre a nova. Use os códigos por e-mail se o seu navegador não for compatível com chaves de acesso.
Assinatura de requisições com SHA-384
A Signature Authentication comprova que uma requisição vem de alguém que tem o seu segredo. Novas Auth Keys para requisições comuns de API usam HMAC-SHA384 por padrão. Cada chave tem sua própria configuração de algoritmo. Use SHA-384 em vez de SHA-1 para novas assinaturas de requisições de API. Já as assinaturas de URL do Smart CDN usam SHA-256. Chaves com o Smart CDN habilitado aceitam apenas uma restrição SHA-256 ou nenhuma restrição por chave; elas não herdam o padrão SHA-384 das chaves comuns. Depois que uma chave tem uma restrição de algoritmo, requisições de API assinadas com outro algoritmo são rejeitadas. Chaves sem restrição aceitam SHA-1, SHA-256 e SHA-384 para requisições de API. A documentação de autenticação descreve o contrato de assinatura completo.
Use uma chave separada para a assinatura do Smart CDN. Habilitar o Smart CDN em uma chave existente restrita a SHA-384 sem escolher explicitamente uma restrição compatível remove essa restrição, permitindo novamente SHA-1, SHA-256 e SHA-384 para requisições de API. Escolha uma restrição SHA-256 se você habilitar o Smart CDN em uma chave existente. Essas configurações de requisições de API não alteram as assinaturas de Assembly Notifications.
Nosso SDK para Node assina com SHA-384 por padrão; defina a opção
signatureAlgorithm: 'sha256' do SDK para uma chave restrita a SHA-256. Se você mesmo assinar as requisições
com SHA-384, adicione o prefixo sha384: ao digest hexadecimal. Aqui está uma pequena função
auxiliar para uma chave de API SHA-384 comum que usa apenas crypto e fetch, nativos do Node:
// sign.mjs
import { createHmac } from 'node:crypto'
export async function postApi2(path, fields, key, secret) {
if (!key || !secret) throw new Error('Set your server-side Transloadit credentials')
const expires = new Date(Date.now() + 10 * 60 * 1000).toISOString()
const params = JSON.stringify({ ...fields, auth: { key, expires } })
const hmac = createHmac('sha384', secret).update(params).digest('hex')
const body = new URLSearchParams({ params, signature: `sha384:${hmac}` })
const res = await fetch(`https://api2.transloadit.com${path}`, { method: 'POST', body })
if (!res.ok) throw new Error(`Transloadit request failed (HTTP ${res.status})`)
return res.json()
}
Este script a usa para criar uma Assembly que importa uma imagem e a redimensiona:
// assembly.mjs
import { postApi2 } from './sign.mjs'
const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env
const steps = {
imported: { robot: '/http/import', url: 'https://demos.transloadit.com/inputs/chameleon.jpg' },
thumb: { use: 'imported', robot: '/image/resize', width: 200, height: 200 },
}
const assembly = await postApi2('/assemblies', { steps }, TRANSLOADIT_KEY, TRANSLOADIT_SECRET)
console.log(assembly.ok ?? assembly.error, assembly.assembly_id ?? assembly.message)
Execute-o no seu servidor com uma versão do Node.js com suporte e uma Auth Key com o escopo
assemblies:write:
$ export TRANSLOADIT_KEY=MY_AUTH_KEY TRANSLOADIT_SECRET=MY_SECRET_KEY
$ node assembly.mjs
ASSEMBLY_EXECUTING 1aa00d5b547b…
A resposta inicial significa que o processamento começou, não que a miniatura está pronta. Acompanhe o Assembly Status até que a Assembly seja concluída ou falhe. Para esta imagem de exemplo, a conclusão bem-sucedida gera uma miniatura de 200×133.
Auth Keys com escopo
Uma chave que pode fazer tudo é um risco quando vaza. Toda nova Auth Key agora precisa de pelo menos
um escopo. Prefira escopos específicos por área para Assemblies, Templates, Credenciais de Template,
Auth Keys, faturamento, filas ou assinatura do Smart CDN. Os escopos legados read e write
continuam disponíveis, mas concedem acesso amplo. Dê a cada aplicativo e ambiente sua própria chave,
apenas com as permissões necessárias, e revogue uma sem afetar as outras.
No Console, acesse Credenciais e clique em Nova Auth Key. A predefinição Entrega privada de imagens (assinatura do Smart CDN) cria uma chave que pode assinar URLs do Smart CDN, mas não pode criar Assemblies avulsas nem gerenciar o Storage. Escolha Personalizado para marcar os escopos você mesmo. A API oferece o mesmo por meio da criação de uma Auth Key e da listagem dos escopos disponíveis.
Verificamos o escopo em cada chamada. A chave por trás destes exemplos pode criar Assemblies, mas não novas chaves:
// create-key.mjs
import { postApi2 } from './sign.mjs'
const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env
const fields = { scope: 'assemblies:write', description: 'my-app staging' }
postApi2('/auth_keys', fields, TRANSLOADIT_KEY, TRANSLOADIT_SECRET)
.then((res) => console.log(res.ok))
.catch((error) => {
console.error(error.message)
process.exitCode = 1
})
$ node create-key.mjs
Transloadit request failed (HTTP 403)
A API retorna INSUFFICIENT_AUTH_SCOPE porque esta operação exige auth_keys:write;
a função auxiliar informa o status HTTP sem imprimir o corpo da resposta. Uma chave com esse escopo
recebe AUTH_KEY_CREATED. Trate auth_keys:write como um privilégio administrativo: com ele é possível criar
chaves com escopos mais amplos, então reserve-o para uma chave dedicada e rigorosamente protegida.
A resposta de criação bem-sucedida também contém o segredo da nova chave, que este exemplo
deliberadamente não imprime. Armazene-o com segurança ao integrar a criação de chaves. Definir
can_show_auth_secret durante a criação permite uma única revelação posterior, não recuperações ilimitadas.
Se você executar o exemplo com permissão para criar chaves, exclua a chave de teste depois no Console.
A papelada
A página de segurança reúne o que o setor de compras pede:
- SOC 2 Type II. Nosso relatório de atestação está disponível mediante solicitação, sob NDA.
- ISO 27001. A Transloadit tem certificação ISO/IEC 27001.
- SLA. Nosso acordo de nível de serviço (English) é público. Ele define compromissos de porcentagem anual de disponibilidade (Annual Uptime Percentage) e de porcentagem anual de fila (Annual Queue Percentage), e concede créditos de serviço quando os requisitos de elegibilidade e de solicitação previstos no acordo são atendidos.
Para equipes financeiras, a função de administrador de faturamento permite que alguém altere o plano, veja o faturamento e o uso e atualize o e-mail de faturamento e a forma de pagamento sem ter direitos completos de administrador do Workspace.
Primeiros passos
Você pode configurar chaves de acesso e Auth Keys no Console. O login único SAML está em acesso antecipado para Workspaces Enterprise; veja nossa página de preços para conhecer os planos. Para habilitar o SSO, solicitar o relatório SOC 2 Type II ou analisar um questionário de segurança junto com a gente, envie um e-mail para nossa equipe de vendas.
