Configurar um provedor de identidade externo
Para configurar a Federação de Identidade da Força de Trabalho com OIDC, registre seu aplicação OIDC com um provedor de identidade externo , como Okta ou Microsoft Entra ID. Isso garante a autenticação segura e facilita o gerenciamento de usuários.
Sobre esta tarefa
O Workforce Identity Federation usa o OIDC. Você pode usar qualquer provedor de identidade externo que ofereça suporte ao padrão OIDC.
Você pode configurar seu aplicação OIDC para os seguintes tipos de concessão:
Fluxo de código de autorização com PKCE
Fluxo de autorização do dispositivo
O MongoDB recomenda que você use o fluxo de código de autorização com o PKCE para aumentar a segurança. Use o fluxo de autorização de dispositivo somente se os usuários precisarem acessar o banco de dados de dados a partir de máquinas sem navegador.
Observação
O Workforce Identity Federation é compatível apenas com o JSON web token para autenticação. Não suporta tokens de acesso opacos.
Os procedimentos a seguir fornecem instruções de configuração detalhadas para o Microsoft Entra ID e Okta e instruções de configuração genéricas para outros provedores de identidade externos.
Antes de começar
To use Okta as an provedor de identidade, you must have an Okta account.
Para usar o ID Entra do Microsoft como um provedor de identidade, você deve ter uma conta do Microsoft Azure.
Passos
Registrar um aplicação
Navegue até App registrations.
Em seu Azure portal do conta, Atlas Search e clique Microsoft Entra ID em .
Na seção Manage da navegação à esquerda, clique em App registrations.
Clique em New registration.
Aplique os seguintes valores.
CampoValorName
MongoDB - Workforce
Supported Account Types
Accounts in this organizational directory only (single tenant)
Redirect URI
- Public client/native (mobile & desktop)- To access clusters using MongoDB Compass and MongoDB Shell, set the Redirect URI tohttp://localhost:27097/redirect
.Clique em Register.
Para saber mais sobre como registrar um aplicativo, consulte Documentação do Azure.
Adicionar uma reivindicação de grupo
Navegue até Token Configuration.
Na seção Manage da navegação à esquerda, clique em Token Configuration.
Clique em Add groups claim.
No modal Edit groups claim, selecione Security.
Quais grupos você seleciona dependem do tipo de grupos que você configurou em seu ambiente Azure. Talvez seja necessário selecionar um tipo diferente de grupo para enviar as informações apropriadas do grupo.
Na seção Customize token properties by type , selecione apenas Group ID.
Clique em Add.
Para saber mais sobre como adicionar uma declaração de grupo, consulte Documentação do Azure.
Adicionar uma reivindicação de identificador de usuário ao token de acesso
Clique em Add optional claim.
No modal Add optional claim, selecione Access.
Selecione uma declaração que contenha um identificador de usuário que você possa consultar nos registros de acesso do MongoDB, como um e-mail.
Você pode usar a declaração UPN para identificar os usuários com seus endereços de e-mail.
Clique em Add.
Na anotação Microsoft Graph Permissions, marque a caixa e clique em Add.
Para saber mais, consulte Documentação do Azure.
Atualizar o manifesto
Na seção Manage da navegação à esquerda, clique em Manifest.
Atualize o accessTokenAcceptedVersion de
null
para2
.O número
2
representa a Versão 2 dos tokens de acesso da Microsoft. Outros aplicativos podem usar isso como um atestado assinado da identidade do usuário gerenciado pelo Active Directory. A versão 2 garante que o token seja um JSON Web Token que o MongoDB entenda.Clique em Save.
Para saber mais sobre como adicionar uma reivindicação opcional, consulte Documentação do Azure.
Lembre-se de metadados
Na navegação à esquerda, clique em Overview.
Copie o valor Application (client) ID.
Na navegação superior, clique em Endpoints.
Copie o valor OpenID Connect metadata document sem a parte
/.well-known/openid-configuration
.Você também pode obter esse valor copiando o valor de
issuer
na URL OpenID Connect metadata document.
A tabela a seguir mostra o que esses valores da interface do usuário do Microsoft Entra ID são mapeados no oidcIdentityProviders
parâmetro MongoDB:
IU do Microsoft Entra ID | Campo de parâmetro do MongoDB oidcIdentityProviders |
---|---|
Application (client) ID | clientID audience |
OpenID Connect metadata document (without /.well-known/openid-configuration) |
|
Criar um aplicação 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 aplicativo 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 aba 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).
Adicionar 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 Groups reivindicação
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
.*
.Disable claim
Não verifique.
Include in
Selecione Any scope.
Clique em Create.
Para saber mais,consulte Criar declarações.
Criar 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.
Criar 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 de si mesmo, 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:
Campo
Valor
AND 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.
Criar 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.
Adicionar 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.
(Condicional) Adicione ou habilite uma groups declaração se você autenticar com grupos
Para grupos, esta etapa garante que seus tokens de acesso contenham as informações de associação de grupo do usuário que está autenticando. O MongoDB usa os valores enviados em uma reivindicação de grupos para autorização.
(Opcional) Permitir tokens de atualização se quiser que os clientes do MongoDB atualizem os tokens para uma melhor experiência do usuário
(Opcional) Configure a duração do token de acesso (exp
reivindicação) para alinhar com o tempo de sessão de conexão do banco de dados de dados
Após registrar seu aplicação, salve os valores issuer
, clientId
e audience
para utilizar na próxima etapa da configuração.