Este guia mostra como configurar o Workforce Identity Federation utilizando o Okta como seu IdP.
Depois de integrar o Okta e o Atlas, sua força de trabalho pode usar as credenciais do Okta para acessar os Atlas clusters com autenticação OIDC.
Acesso necessário
Para gerenciar a autenticação federada, você deve ter acesso de Organization Owner a uma ou mais organizações que delegam configurações de federação à instância.
Pré-requisitos
Para utilizar o Okta como um IdP para o Atlas, você deve ter:
Uma conta Okta.
Um nome de domínio personalizado e roteável.
Procedimentos
Durante todo o procedimento a seguir, é útil ter uma guia do navegador aberta no Atlas Federation Management Console e uma guia aberta na sua conta Okta.
Configurar Okta como provedor de identidade
Use sua conta do Okta para configurar o Okta como um IdP do OIDC.
Para registrar seu aplicativo OIDC com o Okta:
Crie um aplicativo no Okta.
No painel do Okta Admin, use o painel de navegação esquerdo para Ir para Applications → Applications.
Na tela Applications, clique em Create App Integration.
Na seção Sign-in method, selecione OIDC - OpenID Connect.
Na seção Application type, selecione Native Application.
Clique em Next.
Para saber mais, consulte Criar integrações de aplicação OIDC.
Configure seu New Native App Integration.
Depois de criar uma integração de aplicativo, você é automaticamente redirecionado para a tela New Native App Integration.
No campo App integration name, insira um nome para o seu aplicação.
No campo Grant type, selecione os tipos de concessão.
Habilitar os seguintes tipos de concessão:
Authorization Code ou Device Authorization
(Opcional) Refresh Token
Habilitar tokens de atualização fornece uma melhor experiência do usuário. Quando os tokens de atualização não estão habilitados, os usuários devem se autenticar novamente com o provedor de identidade assim que o token de acesso expirar.
Na seção Sign-in redirect URIs, insira uma URL.
Insira a seguinte URL:
http://localhost:27097/redirect.Na seção Assignments, configure os campos Controlled access e Enable immediate access.
Para o campo Controlled access, selecione Allow everyone in your organization to access.
Para Enable immediate access campo, certifique-se de que Enable immediate access with Federation Broker Mode esteja marcado.
Clique em Save.
Para saber mais, consulte Criar integrações de aplicação OIDC.
Configure o PKCE e obtenha o ID do cliente .
No painel do aplicação , vá para a guia General e configure o seguinte:
No Client ID campo, clique no ícone para copiar o ID do cliente para uso posterior.
No campo Proof Key for Code Exchange (PKCE), certifique-se de que Require PKCE as additional verification esteja ativado (marcado por padrão).
Adicione um servidor de autorização .
No painel de navegação esquerdo, vá para Security → API. Clique em Add Authorization Server.
No campo Name, insira um nome para o servidor.
No campo Audience, cole o ID do cliente da etapa anterior.
(Opcional) No Description campo, insira uma descrição do seu servidor.
Clique em Save.
Para saber mais, consulte Criar um servidor de autorização.
Encontre e salve o URI do emissor.
Depois de criar seu servidor de autorização , você é automaticamente redirecionado para a tela do seu servidor de autorização .
Na guia Settings, salve o URI do emissor copiando a primeira parte do Metadata URI até a seção .well-known. A estrutura do URI deve ser semelhante a: https://trial4238026.okta.com/oauth2/ausabgmhveoOQSMsE697.
Adicionar reivindicação Groups.
Na tela do servidor de autorização , vá para a aba Claims e clique em Add Claim.
Configure a reivindicação Groups com as seguintes informações de configuração:
CampoValorName
Insira um nome para sua reivindicação.
Include in token type
Clique no menu suspenso e selecione Access Token.
Value type
Clique no menu suspenso e selecione Groups.
Filter
Clique no menu suspenso e selecione Matches regex. Ao lado da lista suspensa, insira uma expressão regular que corresponda apenas a grupos usados para autorização do Atlas . Por exemplo , se seus grupos de autorização do Atlas utilizarem um prefixo de nomenclatura comum, insira
^<mongodb-atlas-group-prefix>.*onde<mongodb-atlas-group-prefix>é o prefixo escolhido.Disable claim
Não verifique.
Include in
Selecione Any scope.
Clique em Create.
Importante
Evite utilizar .* como o valor do filtro. A expressão .* corresponde a todos os grupos atribuídos ao usuário, incluindo grupos não relacionados à autorização do Atlas . Um filtro amplo aumenta o tamanho do token de acesso e pode causar falhas de autenticação quando o token exceder o limite preAuthMaximumMessageSizeBytes (16 KB por padrão).
Para reduzir o tamanho do token, crie uma convenção de nomenclatura dedicada para grupos de autorização do Atlas e filtre nessa convenção.
Se a implantação exigir intencionalmente uma declaração de grupos grandes, você poderá aumentar o parâmetro preAuthMaximumMessageSizeBytes no cluster. No entanto, o aumento desse limite tem implicações de recursos e segurança e não deve ser usado como solução alternativa para uma reivindicação desnecessariamente ampla.
Para saber mais, consulte Criar declarações.
Crie uma política de acesso.
Na tela do servidor de autorização , vá para a aba Access Policies e clique em Add Policy.
No campo Name, insira um nome de política.
No campo Description, insira uma descrição para a política.
No campo Assign to, selecione All clients.
Clique em Create Policy.
Para saber mais, consulte Criar uma Política de Acesso.
Crie uma regra para a política de acesso.
Na aba Access Policies, clique em Add Rule.
No campo Rule Name, insira um nome para a política de acesso.
Para IF Grant Type is, selecione um tipo de concessão.
Ao configurar tipos de concessão, selecione a opção apropriada com base no comportamento do cliente :
Se o cliente estiver agindo em nome próprio, selecione Client Credentials.
Se o cliente estiver agindo em nome de um usuário, selecione o seguinte:
Authorization Code
Device Authorization
Adicione configurações de regras com base na política de segurançada sua organização.
Exemplo de configuração da regra do Okta:
CampoValorAND user is
Selecione Any user assigned to the app.
AND Scopes requested
Selecione Any scopes.
THEN Use this inline hook
Nenhum (desabilitado)
AND Access token lifetime is
1 Hours
AND Refresh token lifetime is
Clique no segundo menu suspenso e selecione Unlimited.
but will expire if not used every
Insira 7 days.
Clique em Create Rule.
Para saber mais, consulte Criar regras para cada política de acesso.
Crie um grupo.
No painel de navegação esquerdo, vá para Directory → Groups e clique em Add Group.
No campo Name, nomeie seu diretório
OIDC.(Opcional) No Description campo, insira uma descrição para sua regra.
Clique em Save.
Para saber mais,consulte Criar um grupo.
Siga a documentação do Okta para atribuir pessoas manualmente ao grupo.
Adicione um usuário à sua organização.
No painel de navegação esquerdo, vá para Directory → People e clique em Add Person.
Forneça detalhes do usuário inserindo os seguintes valores nos campos correspondentes:
CampoValorUser type
Selecione User.
First name
Forneça o nome conforme necessário.
Last name
Forneça o nome conforme necessário.
Username
Insira um e-mail como nome de usuário.
Primary email
Insira um e-mail. O e-mail deve ser o mesmo usado para o campo Username.
Secondary email
Opcional.
Groups
Insira OIDC.
Activation
Selecione Activate Now e marque I will set password.
Password
Insira uma senha.
User must change password on first login
Selecione Optional
Clique em Save.
Para saber mais, consulte Adicionar usuários manualmente.
Configurar Federação de Identidade da Força de Trabalho no Atlas
Observação
Pré-requisitos
Esse procedimento exige que você tenha acesso Organization Owner e pressupõe que você já tenha um aplicação OIDC criado no seu IdP. Para saber como configurar um IdP, consulte Configurar Okta como provedor de identidade.
Para configurar um Fornecedor de Identidade da Força de Trabalho no Atlas:
In Atlas, acesse o console do Federation Management para sua organização.
Se ainda não estiver exibido, selecione sua organização desejada no Menu Organizations na barra de navegação.
Na barra lateral, clique em Federation sob o título Identity & Access.
Clique em Open Federation Management App.
A página Federação é exibida.
Configurar provedores de identidade.
Clique em Identity Providers na barra lateral esquerda.
Execute uma das seguintes etapas:
Se você ainda não tiver nenhum provedor de identidade configurado, clique em Set Up Identity Provider.
Caso contrário, na tela Identity Providers , clique em Configure Identity Provider(s).
Selecione Workforce Identity Federation e clique em Continue.
Selecione OIDC for Data Access.
Insira as seguintes configurações do protocolo do fornecedor de identidade da força de trabalho.
Contexto | necessidade | Valor |
|---|---|---|
Configuration Name | Obrigatório | Etiqueta legível por humanos que identifica esta configuração. Este rótulo é visível para seus usuários do Atlas . |
Configuration Description | Opcional | Etiqueta legível por humanos que descreve esta configuração. |
Issuer URI | Obrigatório | Valor do emissor fornecido pelo seu aplicativo IdP registrado. Usando este URI, o MongoDB encontra um documento de configuração do provedor OpenID, que deve estar disponível no ponto de extremidade |
Client ID | Obrigatório | Identificador único do seu aplicação registrado . Insira o |
Audience | Obrigatório | Entidade para a qual seu provedor de identidade externo pretende o token. Insira o |
Requested Scopes | Opcional | Tokens que dão aos usuários permissão para solicitar dados do endpoints de autorização. Se você planeja oferecer suporte a tokens de atualização, esse campo deve incluir o valor Para cada escopo adicional que você deseja adicionar, clique em Add more scopes. |
Authorization Type | Obrigatório | Selecione Group Membership para conceder autorização com base na associação ao grupo de usuários do IdP ou selecione User ID para conceder uma autorização de usuário individual. |
Customize Groups Claim | Obrigatório | Identificador da declaração que inclui as informações de associação ao grupo de usuários do IdP principal. Aceite o valor padrão, a menos que seu IdP use uma declaração diferente ou você precise de uma declaração personalizada. Este campo só é obrigatório se você selecionar Group Membership. Padrão: |
Customize User Claim | Obrigatório | Identificador da declaração que inclui a identidade principal do usuário. Aceite o valor padrão, a menos que seu IdP use outra declaração. Padrão: |
(Optional) Associe um domínio ao seu Workforce provedor de identidade.
Observação
Esta etapa é necessária somente se você precisar conectar vários provedores de identidade Workforce provedores de identidadeà mesma organização com domínios diferentes. O Atlas suporta um máximo de dois provedores de identidade de força de trabalho IdPconectados a uma organização: um provedor de identidade OIDC IdP (para acesso ao banco de dados) e um provedor de identidade SAML IdP (para acesso à IU).
Em seu cartão Fornecedor de identidade da força de trabalho, clique em Associate Domains.
No modal Associate Domains with Identity Provider, selecione um ou mais domínios.
Clique em Submit.
Habilite seu fornecedor de identidade da força de trabalho em uma organização.
Clique em Connect Organizations.
Para a organização que deseja conectar ao Provedor de Identidade da Força de Trabalho, clique em Configure Access.
Clique em Connect Identity Provider.
Observação
Se você tiver outro IdP configurado, esse botão indicará Connect Identity Provider(s).
Adicionar um usuário de banco de dados usando a autenticação do Workforce
No Atlas, vá para a página Database & Network Access do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database & Network Access sob o título Security.
O banco de dados & A página Acesso à rede é exibida depois de concluir as etapas anteriores.
Abra a caixa de diálogo Add New Database User or Group.
Clique em Add New Database User or Group.
Observação
Até que você aplique seu IdP do Workforce ao Atlas, esse botão diz Add New Database User.
Selecione Federated Auth.
Na seção Authentication Method, selecione Federated Auth.
Observação
Até habilitar o Workforce IdP para sua organização, você não poderá selecionar essa caixa.
Selecione o fornecedor de identidade e identificador
In the Select Identity Provider section, select a configured OIDC Identity Provider.
Especifique o identificador de usuário ou o identificador de grupo associado ao seu Workforce Identity Provider configurado.
Observação
Para usuários do Azure Entra ID, esse valor é mapeado para o ID do objeto do seu grupo de usuários do Azure em vez do nome do grupo de usuários.
Atribuir privilégios de usuário ou grupo.
Para atribuir privilégios ao novo usuário ou grupo, faça uma ou mais das seguintes tarefas:
Selecione uma função integrada no menu suspenso Built-in Role.
Você pode selecionar um papel embutido por grupo de banco de dados na UI do Atlas.
Se você excluir a opção padrão, você poderá clicar em Add Built-in Role para selecionar um novo papel embutido.
Selecione ou adicione funções personalizadas.
Se você tiver alguma função personalizada definida, poderá expandir a seção Custom Roles e selecionar uma ou mais funções no menu suspenso Custom Roles .
Clique em Add Custom Role para adicionar mais funções personalizadas.
Clique no link Custom Roles para visualizar os papéis personalizados para seu projeto.
Adicionar privilégios.
Expanda a seção Specific Privileges e selecione um ou mais privilégios do Specific Privileges menu suspenso.
Clique em Add Specific Privilege para adicionar mais privilégios. Isso atribui privilégios específicos do grupo em bancos de dados e coleções individuais.
Remova uma função ou privilégio aplicado.
- Clique em Delete ao lado do
- função ou privilégio a ser excluído.
Observação
O Atlas não exibe o ícone Delete ao lado de sua seleção Built-in Role, Custom Role ou Specific Privilege se você tiver selecionado apenas uma opção. Você pode excluir o papel ou privilégio selecionado após aplicar outro papel ou privilégio.
O Atlas pode aplicar um papel embutido, múltiplos papéis personalizados e múltiplos privilégios específicos para um grupo do banco de dados.
Para saber mais sobre autorização, consulte Controle de acesso baseado em funções e Funções incorporadas no manual MongoDB.
Especifique os recursos no projeto que o usuário ou grupo pode acessar.
Por padrão, os grupos podem acessar todos os clusters e instâncias do banco de dados federado no projeto. Para restringir o acesso a clusters específicos e instâncias do banco de dados federado:
Alterne Restrict Access to Specific Clusters/Federated Database Instances para On.
Selecione os clusters e as instâncias de banco de dados federados aos quais conceder acesso ao grupo na lista Grant Access To.
Salve como usuário ou grupo temporário.
Alterne Temporary User ou Temporary Group para On e escolha um tempo após o qual o Atlas pode excluir o usuário ou grupo a partir da lista suspensa Temporary User Duration ou Temporary Group Duration . Você pode selecionar um dos seguintes períodos para o grupo existir:
6 horas
1 dia
1 semana
Na guia Database Users , usuários ou grupos temporários exibem o tempo restante até que o Atlas exclua os usuários ou grupo. Depois que o Atlas exclui o usuário ou grupo, qualquer cliente ou aplicativo que use as credenciais temporárias do usuário ou grupo perde o acesso ao cluster.
Conecte um cliente ao MongoDB com o Workforce Identity Federation
A seguir, listamos maneiras de conectar um cliente ao MongoDB com a autenticação do Workforce Identity Federation:
Compass v1.38+
MongoDB shell v2.1.4+
Observação
Se você configurou o Fluxo de Autorização de Dispositivo, você deverá passar a bandeira --oidcFlows=device-auth ao conectar com mongosh. Por exemplo:
mongosh "<connection-string>" \ --authenticationMechanism MONGODB-OIDC \ --oidcFlows=device-auth