Suporte SCIM 2.0
O Nullcore suporta o SCIM 2.0 (Sistema para gerenciamento de identidade de domĆnio cruzado) para o provisionamento automatizado de usuĆ”rios e grupos de provedores de identidade como Okta, Azure AD e Google Workspace.
Visão geral
O SCIM é um padrão aberto que permite a automação do provisionamento do usuÔrio. Quando ativado, seu provedor de identidade pode automaticamente:
- Crie usuÔrios em webui aberto quando forem adicionados à sua organização
- Atualize as informações do usuÔrio quando as alterações são feitas
- Desative os usuÔrios quando eles são removidos de sua organização
- Gerenciar associaƧƵes de grupo
Configuração
O SCIM Ć© configurado inteiramente atravĆ©s de variĆ”veis āāde ambiente. NĆ£o hĆ” configuração de interface do usuĆ”rio para configuraƧƵes do SCIM.
VariĆ”veis āāde ambiente
Configure o SCIM definindo essas variĆ”veis āāde ambiente:
SCIM_ENABLED
: Definido comotrue
Para ativar o suporte SCIM (padrão:false
SCIM_TOKEN
: O token do portador para autenticação SCIM (exigido quando o SCIM estiver ativado)
O token SCIM deve ser uma string segura e gerada aleatoriamente. VocĆŖ pode gerar um usando:
OpenSSL rand -base64 32
Mantenha esse token seguro, pois fornece acesso às operações de gerenciamento de usuÔrios.
Exemplo de configuração
# Enable scim
exportar scim_enabled = true
# Defina um token seguro (substitua por seu próprio token gerado)
exportar scim_token = "sua teta-token-here"
Configuração do SCIM API
Ao configurar seu provedor de identidade, use as seguintes configuraƧƵes:
- Scim Base URL
<your-nullcore-url>/api/v1/scim/v2/
- Autenticação: Token do portador
- Token
Bearer <your-scim-token>
Exemplo para provedores de identidade populares
OKTA
- Em Okta, adicione o aplicativo SCIM
- Defina o URL da base do conector SCIM como:
https://your-domain.com/api/v1/scim/v2/
- Defina a autenticação como "Cabeçalho HTTP"
- Adicione o cabeçalho da autorização com valor:
Bearer your-scim-token
OperaƧƵes SCIM suportadas
A implementação SCIM da Nullcore suporta as seguintes operações:
OperaƧƵes do usuƔrio
- Criar usuƔrio
POST /Users
): Crie uma nova conta de usuƔrio - Obtenha usuƔrio
GET /Users/{id}
): Recupere as informaƧƵes do usuƔrio - Atualize o usuƔrio
PUT /Users/{id}
, Assim,PATCH /Users/{id}
): Atualize os atributos do usuƔrio - Excluir usuƔrio
DELETE /Users/{id}
): Desative uma conta de usuƔrio - Liste os usuƔrios
GET /Users
): Liste todos os usuƔrios com suporte de filtragem
OperaƧƵes de grupo
- Criar grupo
POST /Groups
): Crie um novo grupo - Obtenha grupo
GET /Groups/{id}
): Recuperar informações do grupo - Grupo de atualização
PUT /Groups/{id}
, Assim,PATCH /Groups/{id}
): Atualizar associação ao grupo - Excluir grupo
DELETE /Groups/{id}
): Remova um grupo - Grupos de listas
GET /Groups
): Liste todos os grupos com suporte de filtragem
Atributos suportados
Atributos do usuƔrio
userName
: O endereƧo de e -mail do usuƔrio (necessƔrio, exclusivo)name.givenName
: Primeiro nomename.familyName
: Sobrenomeemails
: EndereƧos de e -mailactive
: Status do usuƔrio (ativo/inativo)externalId
: Identificador externo do provedor de identidade
Atributos do grupo
displayName
: Nome do grupo (exigido)members
: Matriz de membros do usuƔrioexternalId
: Identificador externo do provedor de identidade
Suporte de filtragem
A API SCIM suporta filtragem para usuƔrios e grupos:
Get/api/v1/scim/v2/usuƔrios? Filtro = nome de usuƔrio eq "user@example.com"
Get/api/v1/scim/v2/grupos? Filtro = displayname eq "engenharia"
Operadores de filtro suportados:
eq
: Igual ane
: NĆ£o Ć© igualco
: ContƩmsw
: ComeƧa comew
: Termina compr
: Presente (tem valor)gt
: Maior quege
: Maior ou iguallt
: Menor quele
: Menos ou igual
Solução de problemas
QuestƵes comuns
-
401 erros não autorizados
- Verifique isso
SCIM_ENABLED
estĆ” definido comotrue
- Verifique se o token do portador em seu provedor de identidade corresponde
SCIM_TOKEN
- Verifique se o formato do cabeçalho da autorização é:
Bearer <token>
- Verifique isso
-
404 não encontrados erros
- Verifique se o URL da base do SCIM termina com
/api/v1/scim/v2/
- Verifique se o caminho inclui o
/api/v1
prefixo
- Verifique se o URL da base do SCIM termina com
-
Falhas de criação de usuÔrios
- Garanta o
userName
O campo contém um endereço de e -mail vÔlido - Verifique se o email ainda não estÔ em uso
- Garanta o
Testando pontos de extremidade SCIM
VocĆŖ pode testar os terminais do SCIM usando o CURL:
# Teste de autenticação e listar usuÔrios
Curl -H "Autorização: Portador Your-Scim-Token" \
https://your-domain.com/api/v1/scim/v2/users
# Obtenha um usuĆ”rio especĆfico
Curl -H "Autorização: Portador Your-Scim-Token" \
https://your-domain.com/api/v1/scim/v2/users/user-id
# Crie um usuƔrio de teste
Curl -x post \
-H "Autorização: Portador seu Scim-Token" \
-H "Tipo de ConteĆŗdo: Application/Scim+JSON" \
-d '{
"Esquemas": ["urn: IETF: params: scim: esquemas: nĆŗcleo: 2.0: user"],
"Nome de usuƔrio": "test@example.com",
"nome": {
"Givenname": "Teste",
"FamilyName": "UsuƔrio"
"E -mails": [{
"Valor": "test@example.com",
"PrimƔrio": verdadeiro
"Ativo": verdadeiro
} '\
https://your-domain.com/api/v1/scim/v2/users
ConsideraƧƵes de seguranƧa
- Use https: Sempre use https na produção para proteger o token do portador
- Armazenamento de token seguro: Armazene o token scim com seguranƧa e gire -o periodicamente
- Lista de permissƵes IP: Considere restringir o acesso da API SCIM aos endereƧos IP do seu provedor de identidade
- Auditoria log: Operações SCIM são registradas para auditoria de segurança
LimitaƧƵes
- As extensões de esquema personalizadas não são atualmente suportadas
- Operações em massa não são implementadas
- ETAGS para versão de recursos não são suportados
Integração com SSO
O SCIM funciona melhor quando combinado com o SSO (assinatura Ćŗnica). Uma configuração tĆpica inclui:
- SCIM para provisionamento automatizado de usuƔrios
- OIDC para autenticação de usuÔrio
Isso garante que os usuƔrios sejam criados automaticamente e possam autenticar imediatamente usando suas credenciais corporativas.
Para configuração de SSO, consulte oDocumentação do SSO