As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Integrando corretores ActiveMQ com LDAP
Importante
LDAPa integração não é suportada pelos corretores RabbitMQ.
O Amazon MQ não oferece suporte a certificados de servidor emitidos por uma CA privada.
Você pode acessar seus corretores ActiveMQ usando os seguintes protocolos com habilitado: TLS
O Amazon MQ oferece uma escolha entre a autenticação nativa do ActiveMQ e a LDAP autenticação e autorização para gerenciar as permissões do usuário. Para obter informações sobre restrições relacionadas a nomes de usuário e senhas do ActiveMQ, consulte Usuários.
Para autorizar os usuários e grupos do ActiveMQ para trabalhar com filas e tópicos, você deve editar a configuração do agente. O Amazon MQ usa o Plugin de autenticação simplesauthorizationEntry
.
nota
Atualmente, o Amazon MQ não é compatível com a autenticação de certificado de cliente.
Integre LDAP com o ActiveMQ
Você pode autenticar usuários do Amazon MQ por meio das credenciais armazenadas em seu servidor leve de protocolo LDAP de acesso a diretórios (). Você também pode adicionar, excluir e modificar usuários do Amazon MQ e atribuir permissões a tópicos e filas por meio dele. Operações de gerenciamento, como criar, atualizar e excluir corretores, ainda exigem IAM credenciais e não estão integradas com. LDAP
Clientes que desejam simplificar e centralizar a autenticação e autorização do agente Amazon MQ usando LDAP um servidor podem usar esse recurso. Manter todas as credenciais do usuário no LDAP servidor economiza tempo e esforço ao fornecer um local central para armazenar e gerenciar essas credenciais.
O Amazon MQ fornece LDAP suporte usando o plug-in Apache JAAS ActiveMQ. Qualquer LDAP servidor, como o Microsoft Active Directory ou o OpenLDAP, compatível com o plug-in, também é suportado pelo Amazon MQ. Para obter mais informações sobre o plugin, consulte a seção Segurança
Além dos usuários, você pode especificar o acesso a tópicos e filas para um grupo ou usuário específico por meio do seu LDAP servidor. Você faz isso criando entradas que representam tópicos e filas em seu LDAP servidor e, em seguida, atribuindo permissões a um LDAP usuário ou grupo específico. Em seguida, você pode configurar o agente para recuperar dados de autorização do LDAP servidor.
Pré-requisitos
Antes de adicionar LDAP suporte a um agente Amazon MQ novo ou existente, você deve configurar uma conta de serviço. Essa conta de serviço é necessária para iniciar uma conexão com um LDAP servidor e deve ter as permissões corretas para fazer essa conexão. Essa conta de serviço configurará a LDAP autenticação para seu corretor. Quaisquer conexões sucessivas de cliente serão autenticadas através da mesma conexão.
A conta de serviço é uma conta no seu LDAP servidor, que tem acesso para iniciar uma conexão. É um LDAP requisito padrão e você precisa fornecer as credenciais da conta de serviço apenas uma vez. Depois que a conexão for configurada, todas as conexões do future client serão autenticadas por meio do seu LDAP servidor. Suas credenciais de conta de serviço são armazenadas de forma segura em um formulário criptografado, acessível somente para o Amazon MQ.
Para integrar com o ActiveMQ, é necessária uma Árvore de Informações de Diretório DIT () específica no servidor. LDAP Para obter um exemplo de ldif
arquivo que mostre claramente essa estrutura, consulte Importar o seguinte LDIF arquivo para o LDAP servidor na seção Segurança
Começando com LDAP
Para começar, navegue até o console do Amazon MQ e escolha LDAPautenticação e autorização ao criar um novo Amazon MQ ou editar uma instância de agente existente.
Forneça as seguintes informações sobre a conta de serviço:
-
Nome de domínio totalmente qualificado A localização do LDAP servidor para o qual as solicitações de autenticação e autorização devem ser emitidas.
nota
O nome de domínio totalmente qualificado do LDAP servidor fornecido não deve incluir o protocolo ou o número da porta. O Amazon MQ substituirá o nome de domínio totalmente qualificado com o protocolo
ldaps
e anexará o número da porta636
.Por exemplo, se você fornecer o seguinte domínio totalmente qualificado:
example.com
, O Amazon MQ acessará seu LDAP servidor usando o seguinteURL:.ldaps://example.com:636
Para que o host do broker possa se comunicar com sucesso com o LDAP servidor, o nome de domínio totalmente qualificado deve ser resolvido publicamente. Para manter o LDAP servidor privado e seguro, restrinja o tráfego de entrada nas regras de entrada do servidor para permitir apenas o tráfego originado de dentro da corretora. VPC
-
Nome de usuário da conta de serviço O nome distinto do usuário que será usado para realizar a ligação inicial ao LDAP servidor.
-
Senha da conta de serviço A senha do usuário que executa a vinculação inicial.
A imagem a seguir destaca onde fornecer esses detalhes.
Na seção de configuração de LDAP login, forneça as seguintes informações obrigatórias:
-
Base do usuário O nome distinto do nó na árvore de informações do diretório (DIT) que será pesquisado pelos usuários.
-
Correspondência de LDAP pesquisa de usuários O filtro de pesquisa que será usado para encontrar usuários no
userBase
. O nome de usuário do cliente é substituído no espaço reservado{0}
no filtro de pesquisa. Para ter mais informações, consulte Autenticação e Autorização. -
Base de funções O nome distinto do nó no DIT qual as funções serão pesquisadas. As funções podem ser configuradas como entradas de LDAP grupo explícitas em seu diretório. Uma entrada de função típica pode consistir em um atributo para o nome da função, como Nome comum (NC) e outro atributo, como
member
, com valores que representam os nomes distintos ou nomes de usuário dos usuários pertencentes ao grupo de funções. Por exemplo, dada a unidade organizacional,group
, você pode fornecer o seguinte nome distinto:ou=group,dc=example,dc=com
. -
Correspondência de LDAP pesquisa de funções O filtro de pesquisa que será usado para encontrar funções no
roleBase
. O nome distinto do usuário resultante de comparado comuserSearchMatching
será substituído no espaço{0}
reservado no filtro de pesquisa. O nome de usuário do cliente será substituído no lugar do{1}
espaço reservado. Por exemplo, se as entradas de função em seu diretório incluírem um atributo chamadomember
, contendo os nomes de usuários para todos os usuários nessa função, você pode fornecer o seguinte filtro de pesquisa:(member:=uid={1})
.
A imagem a seguir destaca onde especificar esses detalhes.
Nas Configurações opcionais, você pode fornecer as seguintes informações opcionais:
-
Nome da função do usuário O nome do LDAP atributo na entrada do diretório do usuário para a associação ao grupo do usuário. Em alguns casos, as funções de usuário podem ser identificadas pelo valor de um atributo na entrada do diretório do usuário. A opção
userRoleName
permite que você forneça o nome desse atributo. Por exemplo, vamos considerar a seguinte entrada de usuário:dn: uid=jdoe,ou=user,dc=example,dc=com objectClass: user uid: jdoe sn: jane cn: Jane Doe mail: j.doe@somecompany.com memberOf: role1 userPassword: password
Para fornecer o
userRoleName
correto para o exemplo acima, você deve especificar omemberOf
atributo. Se a autenticação for bem-sucedida, o usuário receberá a funçãorole1
. -
Nome da Função O atributo do nome do grupo em uma entrada de função cujo valor é o nome dessa função. Por exemplo, você pode especificar
cn
para o nome comum de uma entrada de grupo. Se a autenticação for bem-sucedida, o usuário receberá o valor docn
atributo para cada entrada de função da qual ele é membro. -
Subárvore de pesquisa do usuário Define o escopo da consulta de pesquisa LDAP do usuário. Se verdadeiro, o escopo é definido para pesquisar toda a sub-árvore sob o nó definido por
userBase
. -
Subárvore de pesquisa de função Define o escopo da consulta de pesquisa de LDAP função. Se verdadeiro, o escopo é definido para pesquisar toda a sub-árvore sob o nó definido por
roleBase
.
A imagem a seguir destaca onde especificar essas configurações opcionais.
Como LDAP a integração funciona
Podemos pensar na integração em duas categorias principais: a estrutura de autenticação e a estrutura de autorização.
Autenticação
Para autenticação, as credenciais do cliente devem ser válidas. Essas credenciais são validadas em relação aos usuários da base de usuários no LDAP servidor.
A base de usuários fornecida ao agente ActiveMQ deve apontar para o nó em que DIT os usuários estão armazenados no servidor. LDAP Por exemplo, se você estiver usando AWS Managed Microsoft AD, e tiver os componentes de domíniocorp
, e example
com
, e dentro deles você tiver unidades organizacionais corp
eUsers
, você usaria o seguinte como sua base de usuários:
OU=Users,OU=corp,DC=corp,DC=example,DC=com
O agente ActiveMQ pesquisaria neste local no por usuários a fim de autenticar DIT as solicitações de conexão do cliente para o agente.
Como o código-fonte ActiveMQ codifica o nome do atributo para os usuários como uid
, você deve se certificar de que cada usuário tem esse atributo definido. Para simplificar, você pode usar o nome de usuário da conexão do usuário. Para obter mais informações, consulte o ActiveMQ
Para habilitar o acesso ao console do ActiveMQ para usuários específicos, verifique se eles pertencem ao grupo amazonmq-console-admins
.
Autorização
Para autorização, as bases de pesquisa de permissões são especificadas na configuração do agente. A autorização é feita por destino (ou caractere coringa, destino definido) por meio do cachedLdapAuthorizationMap
elemento encontrado no activemq.xml
Arquivo de configuração. Para obter mais informações, consulte Módulo de LDAP autorização em cache
nota
Para poder usar o cachedLDAPAuthorizationMap
elemento no arquivo de activemq.xml
configuração do seu agente, você deve escolher a opção LDAPAutenticação e Autorização ao criar uma configuração por meio do AWS Management Console, ou definir a authenticationStrategy
propriedade como LDAP
ao criar uma nova configuração usando o Amazon MQAPI.
Você deve fornecer os três atributos a seguir como parte do Elemento cachedLDAPAuthorizationMap
:
-
queueSearchBase
-
topicSearchBase
-
tempSearchBase
Importante
Para evitar que informações confidenciais sejam colocadas diretamente no arquivo de configuração do agente, o Amazon MQ bloqueia que os seguintes atributos sejam usados no cachedLdapAuthorizationMap
:
-
connectionURL
-
connectionUsername
-
connectionPassword
Quando você cria um corretor, o Amazon MQ substitui os valores fornecidos por meio de AWS Management Console, ou na ldapServerMetadata
propriedade de sua API solicitação, pelos atributos acima.
O seguinte exemplo demonstra o uso de deslocamentos cachedLdapAuthorizationMap
.
<authorizationPlugin> <map> <cachedLDAPAuthorizationMap queueSearchBase="ou=Queue,ou=Destination,ou=corp,dc=corp,dc=example,dc=com" topicSearchBase="ou=Topic,ou=Destination,ou=corp,dc=corp,dc=example,dc=com" tempSearchBase="ou=Temp,ou=Destination,ou=corp,dc=corp,dc=example,dc=com" refreshInterval="300000" legacyGroupMapping="false" /> </map> </authorizationPlugin>
Esses valores identificam os locais em DIT que as permissões para cada tipo de destino são especificadas. Portanto, para o exemplo acima AWS Managed Microsoft AD, usando os mesmos componentes de domínio decorp
,, e example
com
, você especificaria uma unidade organizacional nomeada destination
para conter todos os seus tipos de destino. Dentro dessa UO, você criaria um para queues
, um para topics
, e um para temp
destinos.
Isso significaria que sua base de pesquisa de filas, que fornece informações de autorização para destinos do tipo fila, teria a seguinte localização em seu: DIT
OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
Da mesma forma, as regras de permissões para tópicos e destinos temporários estariam localizadas no mesmo nível em: DIT
OU=Topic,OU=Destination,OU=corp,DC=corp,DC=example,DC=com OU=Temp,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
Dentro da UO para cada tipo de destino (fila, tópico, temporário), um coringa ou um nome de destino específico pode ser fornecido. Por exemplo, para fornecer uma regra de autorização para todas as filas que começam com o prefixoDEMO. EVENTS.$., você pode criar a seguinte OU:
OU=DEMO.EVENTS.$,OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
nota
A DEMO.EVENTS.$
UO está dentro da Queue
UO.
Para obter mais informações sobre coringas no ActiveMQ, consulteWildcards (Coringas)
Para fornecer regras de autorização para filas específicas, comoDEMO. MYQUEUE, especifique algo como o seguinte:
OU=DEMO.MYQUEUE,OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
Grupos de segurança
Dentro de cada UO que representa um destino ou um coringa, você deve criar três grupos de segurança. Tal como acontece com todas as permissões no ActiveMQ, estas são permissões de leitura/escritura/admin. Para obter mais informações sobre o que cada uma dessas permissões permite que um usuário faça, consulte Segurança
Você deve nomear esses grupos de segurança read
, write
, e admin
. Dentro de cada um desses grupos de segurança, você pode adicionar usuários ou grupos que terão permissão para executar as ações associadas. Você precisará desses grupos de segurança para cada conjunto de destinos coringa ou destino individual.
nota
Quando você cria o grupo de administração, surgirá um conflito com o nome do grupo. Esse conflito ocorre porque as regras antigas anteriores ao Windows 2000 não permitem que grupos compartilhem o mesmo nome, mesmo que estejam em locais diferentes doDIT. O valor na caixa de texto pré-Windows 2000 não tem impacto na configuração, mas deve ser globalmente única. Para evitar esse conflito, você pode acrescentar um uuid
sufixo para cada admin
grupo.
Adicionar um usuário ao admin
grupo de segurança para um destino específico permitirá que o usuário crie e exclua esse tópico. Adicionando-os ao read
grupo de segurança permitirá que eles leiam a partir do destino e adicionando-os ao grupo write
permitirá que eles escrevam no destino.
Além de adicionar usuários individuais às permissões do grupo de segurança, você também pode adicionar grupos inteiros. No entanto, como o ActiveMQ novamente codifica nomes de atributo para grupos, você deve garantir que o grupo que deseja adicionar tem a classe de objeto groupOfNames
, conforme mostrado no código-fonte do ActiveMQ
Para fazer isso, siga o mesmo processo que acontece com o uid
para usuários. Consulte Configurando mapeamentos de ID em Usuários e Computadores do Active Directory para Windows Server 2016 (e versões subsequentes)