Compreender o provisionamento justo-a-tempo
O provisionamento Just-in-Time é um processo usado em sistemas de gestão de identidade e acesso para criar contas de utilizador instantaneamente à medida que se iniciam sessão num sistema pela primeira vez. Este artigo explica os conceitos básicos do provisionamento Just-in-Time e responde às perguntas comuns sobre a sua implementação.
Antes de discutirmos o provisionamento Just-in-Time, imagine que estás a desenvolver uma aplicação SaaS B2B e queres suportar funcionalidades de adesão, permitindo que os membros se juntem facilmente ao teu espaço de trabalho (inquilino). Que funcionalidades proporias? Aqui está uma lista de verificação para ti:
Cenário | Fluxo |
---|---|
Convite de administrador | Os utilizadores podem receber um convite por e-mail para se juntarem à organização. |
Criação ou importação de utilizador pela API de gestão | Os utilizadores podem utilizar uma conta de utilizador pré-criada para se juntarem à organização. |
Provisionamento Just-in-Time | Os utilizadores que entrarem na aplicação pela primeira vez podem juntar-se à organização. |
Sincronização de diretório (ex. SCIM) | Utiliza a funcionalidade de Sincronização de Diretório do IdP para provisionar utilizadores na aplicação antecipadamente. |
O provisionamento Just-in-Time (JIT) é um processo usado em sistemas de gestão de identidade e acesso para criar contas de utilizador instantaneamente enquanto se iniciam sessão num sistema pela primeira vez. Em vez de pré-provisionar contas para os utilizadores antecipadamente, o provisionamento JIT cria e configura as contas de utilizador necessárias de forma dinâmica quando um utilizador se autentica. O provisionamento Just-in-Time é uma funcionalidade popular com características próprias, como eficiência, ausência de envolvimento administrativo, e adesão automática à organização, etc. Agora que compreendes os conceitos básicos do provisionamento Just-in-Time, podes ter várias questões ao aprofundares-te no desenvolvimento de produtos na vida real. Vou abordar estas questões, que podem ser controversas e altamente dependentes dos casos específicos do teu negócio.
Precisas de implementar o provisionamento Just-in-Time para o teu produto?
Estes casos são comuns ao criar uma aplicação B2B que envolve arquitetura multi-inquilino, SSO empresarial, trabalho com empresas ou que requer funcionalidades de onboarding de equipa. Aqui estão alguns cenários de exemplo que o teu cliente pode enfrentar.
Onboarding rápido
Tens um cliente que está a experienciar contratações frequentes ou um crescimento rápido pode usar o provisionamento JIT para rapidamente configurar contas de utilizador para novos empregados. Vejamos um exemplo:
A Sarah é uma nova funcionária na empresa SuperFantasy
, que utiliza Okta
como seu Provedor de Identidade Empresarial. A equipa de RH adiciona-a como identidade empresarial [email protected]
no Okta uma única vez. Quando a Sarah usa este e-mail para assinar numa aplicação de produtividade usada pela empresa chamada Smartworkspace
pela primeira vez, o sistema automaticamente cria uma conta e provisiona o papel adequado para ela dentro do espaço de trabalho da empresa. Desta forma, nem a Sarah nem a equipa de RH da SuperFantasy precisam de passar por múltiplos passos para a criação de conta e atribuição de papel.
Fusões, aquisições, e trabalhadores temporários
Tens um cliente que está experienciando fusões ou aquisições, o provisionamento JIT pode simplificar o processo de concessão de acesso aos sistemas da empresa adquirente para muitos novos utilizadores. Vejamos outro exemplo,
O Peter trabalha para MagicTech
, que foi recentemente adquirida pela SuperFantasy
. A MagicTech é uma organização mais pequena sem SSO empresarial, mas também usa Smartworkspace
onde o Peter já tem uma conta empresarial.
A equipa de RH pode adicionar o Peter no Okta
. Quando o Peter faz login no Smartworkspace pela primeira vez através do Okta, o sistema automaticamente liga a conta empresarial existente dele e concede o acesso apropriado à SuperFantasy.
Os cenários acima são ideais para a implementação da funcionalidade JIT.
É específico para SAML e SSO empresarial?
O provisionamento Just-in-Time (JIT) é muitas vezes associado ao Single sign-on (SSO) na autenticação SAML, mas não é exclusivo do SAML. O provisionamento JIT também pode ser usado com outros protocolos de autenticação como OAuth 2.0 e OpenID Connect, e não requer necessariamente uma configuração de SSO empresarial.
Por exemplo, o provisionamento JIT baseado em e-mail pode simplificar o onboarding de equipa ao adicionar automaticamente utilizadores a um espaço de trabalho com base no domínio de e-mail deles. Isto é particularmente útil para organizações que não têm orçamento e recursos para adquirir e gerir o SSO empresarial.
A ideia fundamental por trás do provisionamento JIT é automatizar a criação ou atualizações de contas de utilizador quando um utilizador tenta acessar um serviço pela primeira vez, independentemente do protocolo específico utilizado.
Aplica-se a novos ou existentes utilizadores da aplicação?
Esta é uma questão complicada. O provisionamento Just-in-Time (JIT) geralmente refere-se à primeira tentativa de aceder a uma aplicação. No entanto, produtos diferentes percebem esta funcionalidade de maneira diferente. Alguns usam o provisionamento JIT apenas para a criação de identidade e conta, enquanto outros incluem também atualizações Just-in-Time de conta, como reprovisionamento e sincronização de atributos.
Além da criação automática de utilizador, o provisionamento SAML JIT permite a concessão e revogação de adesões a grupos como parte do provisionamento. Também pode atualizar utilizadores provisionados para manter os seus atributos na loja do Provedor de Serviço (SP) em sincronia com os atributos da loja de utilizadores do Provedor de Identidade (IDP).
Por exemplo, na Oracle Cloud, o provisionamento Just-in-Time pode ser configurado de várias maneiras.
- Criação Just-in-Time
- Atualização Just-in-Time
Administrar o Oracle Identity Cloud Service: Compreender o Provisionamento SAML Just-in-Time.
Ao iniciar sessão, o utilizador: | Fluxo |
---|---|
Existe e o provisionamento JIT está ativado. | Fluxo normal de falha de SSO. |
Não existe e a criação JIT está ativada. | O utilizador é criado e populado com os atributos da asserção SAML, conforme mapeado na configuração JIT. |
Existe e a atualização JIT está ativada. | Os valores dos atributos do utilizador são atualizados com os atributos da asserção SAML, conforme mapeado na configuração JIT. |
Se quiseres considerar o cenário de login subsequente de utilizadores existentes, certifica-te de que tens um sistema robusto de provisionamento juntamente com o teu sistema JIT. Por exemplo,
- Resolução de conflitos: O teu sistema deve ter uma estratégia para lidar com conflitos se uma conta já existir com informações diferentes das fornecidas pelo IdP durante o processo JIT. Isto pode requerer um controle detalhado das políticas da tua organização e configuração do IdP.
- Registros de auditoria: É importante manter logs de tanto novas criações de contas quanto atualizações de contas existentes através dos processos JIT por razões de segurança e conformidade.
- Desempenho: Embora o provisionamento JIT aconteça rapidamente, considera o impacto potencial nos tempos de login, especialmente para utilizadores existentes se estiveres a atualizar a informação deles em cada login.
- Consistência de dados: Assegura-te de que o teu processo de provisionamento JIT mantém a consistência dos dados, especialmente ao atualizar contas de utilizador existentes.
Qual é a diferença entre JIT e SCIM?
Além do provisionamento Just-in-Time (JIT), podias também ter ouvido falar do SCIM (Sistema de Gestão de Identidade entre Domínios). O SCIM é um protocolo padrão aberto projetado para simplificar e automatizar a gestão de identidades de utilizadores entre diferentes sistemas e domínios. É comumente utilizado em cenários de Sincronização de Diretório.
A principal diferença entre JIT e SCIM é que o JIT cria contas durante a tentativa de login do utilizador, enquanto o SCIM pode provisionar utilizadores através de um processo automatizado offline, independente das tentativas de login do utilizador.
Isto significa que o JIT se concentra no onboarding de novos utilizadores, enquanto o SCIM se concentra na gestão completa do ciclo de vida dos utilizadores.
Além disso, o JIT é frequentemente uma extensão do SAML e carece de uma implementação padronizada entre sistemas, enquanto o SCIM é um protocolo bem definido e padronizado (RFC 7644) para a gestão de identidades.
Algumas organizações maiores usam o SCIM para o provisionamento de contas, integrando-o nos seus próprios sistemas. Isto pode ser muito complexo e variar de caso para caso. Essas organizações frequentemente têm um sistema de provisionamento que envolve tanto processos automatizados quanto o envolvimento manual de administradores.
Provisionamento Just-in-Time no Logto
Provisionamento de SSO Just-in-Time e Provisionamento Just-in-Time por domínio de e-mail são aquilo que abraçamos no Logto.
No Logto, temos este conjunto de funcionalidades ao nível da organização que permite que os utilizadores se juntem automaticamente à organização e recebam atribuições de papéis se cumprirem critérios específicos.
Implementamos a funcionalidade JIT no nível mais escalável e seguro para simplificar e automatizar o processo de provisionamento para os desenvolvedores que estão a implementar os seus clientes. No entanto, como discutimos anteriormente, uma vez que os sistemas de provisionamento podem ser complexos e adaptados às necessidades específicas dos teus clientes, deverás aproveitar as funcionalidades JIT pré-construídas do Logto, o design cuidadoso do teu sistema, e a API de gestão do Logto para construir um sistema de provisionamento robusto.
Vamos ver este diagrama para entender como funciona no Logto,
Provisionamento SSO empresarial
Se tiveres configurado o SSO empresarial no Logto, podes selecionar o SSO empresarial da tua organização para ativar o provisionamento just-in-time.
Novos ou existentes utilizadores que entrem através de SSO empresarial pela primeira vez vão automaticamente aderir à organização e receber papéis predefinidos na organização.
A tabela a seguir lista os fluxos potenciais:
Status do utilizador | Descrição do fluxo |
---|---|
O utilizador não existe, e o JIT está ativado. | O utilizador é criado e automaticamente junta-se à organização correspondente com os papéis apropriados. |
O utilizador existe com o mesmo endereço de e-mail verificado do SSO empresarial, e o JIT está ativado. | O endereço de e-mail do utilizador é automaticamente vinculado à conta SSO empresarial, e eles juntam-se à organização correspondente com os papéis apropriados. |
O utilizador não existe, e o JIT não está ativado. | Fluxo normal de falha de SSO. |
O utilizador existe, e o JIT não está ativado. | Fluxo normal de SSO. |
Provisionamento de domínios de e-mail
Se uma organização não tem um SSO empresarial dedicado, podes usar domínios de e-mail para ativar o provisionamento Just-in-Time. Isto geralmente acontece com negócios menores que não têm orçamento para o SSO empresarial, mas ainda querem algum nível de automação de onboarding de membros e gestão de segurança.
Quando os utilizadores fazem inscrição, se os seus endereços de e-mail verificados corresponderem aos domínios de e-mail configurados ao nível da organização, eles serão provisionados para a organização apropriada(s) com os papéis correspondentes.
O provisionamento de domínio de e-mail funciona para:
- Autenticação por inscrição por e-mail
- Autenticação por inscrição social
Fluxo de e-mail
Status do utilizador | Descrição do fluxo |
---|---|
O utilizador não existe e inscreve-se com e-mail, e o JIT está ativado. | O utilizador é criado e automaticamente junta-se à organização correspondente com os papéis apropriados. |
O utilizador existe com o mesmo endereço de e-mail verificado das domínios de e-mail provisionados, e o JIT está ativado. | Fluxo normal de login por e-mail. |
O utilizador não existe e inscreve-se com e-mail, e o JIT não está ativado. | Fluxo normal de inscrição por e-mail. |
O utilizador existe e faz login com e-mail, e o JIT não está ativado. | Fluxo normal de login por e-mail. |
Fluxo social
Status do utilizador | Descrição do fluxo |
---|---|
O utilizador não existe, inscreve-se com conta social usando um e-mail verificado, e JIT está ativado. | O utilizador é criado e automaticamente junta-se à organização correspondente com os papéis apropriados. |
O utilizador não existe, inscreve-se com conta social usando um e-mail não verificado ou sem e-mail, e o JIT está ativado. | Fluxo normal de inscrição social. |
O utilizador existe com o mesmo endereço de e-mail verificado dos domínios de e-mail provisionados, faz login através de conta social, e o JIT está ativado. | Fluxo normal de login social. |
O utilizador não existe, inscreve-se com conta social, e o JIT não está ativado. | Fluxo normal de inscrição social. |
O utilizador existe, faz login com conta social, e o JIT não está ativado. | Fluxo normal de login social. |
Lidando com o potencial conflito entre provisionamento de domínio de e-mail e SSO empresarial
Se inicialmente configuraste o provisionamento de domínio de e-mail e mais tarde configurares um SSO empresarial com o mesmo domínio de e-mail, aqui está o que acontece:
Quando um utilizador insere o seu endereço de e-mail, ele será redirecionado para o fluxo de SSO, ignorando a autenticação por e-mail. Isto significa que o processo JIT não será acionado.
Para resolver isto, vamos mostrar uma mensagem de aviso quando configurar. Garante que lidaste com este fluxo ao selecionar o SSO correto para ativar o provisionamento just-in-time, e não dependas do provisionamento de domínio de e-mail.
Papéis predefinidos da organização
Ao provisionar utilizadores, podes definir os papéis predefinidos da organização deles. A lista de papéis vem do modelo da organização, e podes escolher um papel ou deixá-lo em branco.
Atualização Just-in-Time do SSO empresarial
Felizmente, já temos essa funcionalidade incorporada no SSO empresarial! Podes escolher se as informações de perfil são sincronizadas com o Logto no primeiro login ou em todos os logins. Também consideraremos adicionar mais funcionalidades como mapeamento de papéis e organização e reprovisionamento no futuro.
Consulta isto para saber mais.
A funcionalidade Just-in-Time está disponível imediatamente no Logto. Inscreve-te no Logto hoje e começa a automatizar o onboarding dos membros dos teus clientes.