

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden der LDAP-Authentifizierung und -Autorisierung für Amazon MQ für RabbitMQ
<a name="rabbitmq-ldap-tutorial"></a>

In diesem Tutorial wird beschrieben, wie Sie die LDAP-Authentifizierung und -Autorisierung für Ihre Amazon MQ for RabbitMQ-Broker mithilfe von konfigurieren. AWS Managed Microsoft AD

**Topics**
+ [Voraussetzungen für die Konfiguration der LDAP-Authentifizierung und -Autorisierung](#rabbitmq-ldap-tutorial-prerequisites)
+ [Konfiguration von LDAP in RabbitMQ mit CLI AWS](#rabbitmq-ldap-tutorial-configure-cli)

## Voraussetzungen für die Konfiguration der LDAP-Authentifizierung und -Autorisierung
<a name="rabbitmq-ldap-tutorial-prerequisites"></a>

Sie können die in diesem Tutorial erforderlichen AWS Ressourcen einrichten, indem Sie den [AWS CDK-Stack für Amazon MQ für die RabbitMQ LDAP-Integration](https://github.com/aws-samples/amazon-mq-samples/blob/main/rabbitmq-samples/rabbitmq-ldap-activedirectory-sample/) mit bereitstellen. AWS Managed Microsoft AD

Dieser CDK-Stack erstellt automatisch alle erforderlichen AWS Ressourcen AWS Managed Microsoft AD, einschließlich LDAP-Benutzer und -Gruppen, Network Load Balancer, Zertifikate und IAM-Rollen. Eine vollständige Liste der vom Stack erstellten Ressourcen finden Sie in der README-Datei des Pakets.

Wenn Sie die Ressourcen manuell einrichten, anstatt den CDK-Stack zu verwenden, stellen Sie sicher, dass Sie über die entsprechende Infrastruktur verfügen, bevor Sie LDAP auf Ihrem Amazon MQ für RabbitMQ-Broker konfigurieren.

### Voraussetzung für die Einrichtung von Amazon MQ
<a name="rabbitmq-ldap-tutorial-prerequisite-cli"></a>

AWS CLI-Version >= 2.28.23, um das Hinzufügen eines Benutzernamens und Kennworts bei der Brokererstellung optional zu machen.

## Konfiguration von LDAP in RabbitMQ mit CLI AWS
<a name="rabbitmq-ldap-tutorial-configure-cli"></a>

Dieses Verfahren verwendet AWS CLI, um die erforderlichen Ressourcen zu erstellen und zu konfigurieren. Stellen Sie im folgenden Verfahren sicher, dass Sie die Platzhalterwerte, wie ConfigurationID und Revision, durch ihre `<c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca>` tatsächlichen `<2>` Werte ersetzen.

1. Erstellen Sie mit dem `create-configuration` AWS CLI-Befehl eine neue Konfiguration, wie im folgenden Beispiel gezeigt.

   ```
   aws mq create-configuration \
     --name "rabbitmq-ldap-config" \
     --engine-type "RABBITMQ" \
     --engine-version "3.13"
   ```

   Dieser Befehl gibt eine Antwort zurück, die dem folgenden Beispiel ähnelt.

   ```
   {
   "Arn": "arn:aws:mq:us-west-2:123456789012:configuration:c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca",
       "AuthenticationStrategy": "simple",
       "Created": "2025-07-17T16:03:01.759943+00:00",
       "Id": "c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca",
       "LatestRevision": {
   "Created": "2025-07-17T16:03:01.759000+00:00",
       "Description": "Auto-generated default for rabbitmq-ldap-config on RabbitMQ 3.13",
       "Revision": 1
       },
       "Name": "rabbitmq-ldap-config"
   }
   ```

1. Erstellen Sie eine Konfigurationsdatei`rabbitmq.conf`, die aufgerufen wird, um LDAP als Authentifizierungs- und Autorisierungsmethode zu verwenden, wie im folgenden Beispiel gezeigt. Ersetzen Sie alle Platzhalterwerte in der Vorlage (gekennzeichnet mit`${RabbitMqLdapTestStack.*}`) durch tatsächliche Werte aus Ihren bereitgestellten Stack-Ausgaben oder AWS CDK einer gleichwertigen Infrastruktur.

   ```
   auth_backends.1 = ldap
   
   # LDAP authentication settings - For more information,
   # see https://www.rabbitmq.com/docs/ldap#basic
   
   # FIXME: Replace the ${RabbitMqLdapTestStack.*} placeholders with actual values
   # from your deployed prerequisite CDK stack outputs.
   auth_ldap.servers.1 = ${RabbitMqLdapTestStack.NlbDnsName}
   auth_ldap.dn_lookup_bind.user_dn = ${RabbitMqLdapTestStack.DnLookupUserDn}
   auth_ldap.dn_lookup_base = ${RabbitMqLdapTestStack.DnLookupBase}
   auth_ldap.dn_lookup_attribute = ${RabbitMqLdapTestStack.DnLookupAttribute}
   auth_ldap.port = 636
   auth_ldap.use_ssl = true
   auth_ldap.ssl_options.verify = verify_peer
   auth_ldap.log = network
   
   # AWS integration for secure credential retrieval
   # - see: https://github.com/amazon-mq/rabbitmq-aws
   # The aws plugin allows RabbitMQ to securely retrieve credentials and certificates
   # from AWS services.
   
   # Replace the ${RabbitMqLdapTestStack.*} placeholders with actual ARN values
   # from your deployed prerequisite CDK stack outputs.
   aws.arns.auth_ldap.ssl_options.cacertfile = ${RabbitMqLdapTestStack.CaCertArn}
   aws.arns.auth_ldap.dn_lookup_bind.password = ${RabbitMqLdapTestStack.DnLookupUserPasswordArn}
   aws.arns.assume_role_arn = ${RabbitMqLdapTestStack.AmazonMqAssumeRoleArn}
   
   # LDAP authorization queries - For more information,
   # see: https://www.rabbitmq.com/docs/ldap#authorisation
   
   # FIXME: Replace the ${RabbitMqLdapTestStack.*} placeholders with actual group DN
   # values from your deployed prerequisite CDK stack outputs
   # Uses Active Directory groups created by the prerequisite CDK stack
   auth_ldap.queries.tags = '''
   [{administrator, {in_group, "${RabbitMqLdapTestStack.RabbitMqAdministratorsGroupDn}"}},
   {management,    {in_group, "${RabbitMqLdapTestStack.RabbitMqMonitoringUsersGroupDn}"}}]
   '''
   
   # FIXME: This provides all authenticated users access to all vhosts
   # - update to restrict access as required
   auth_ldap.queries.vhost_access = '''
   {constant, true}
   '''
   
   # FIXME: This provides all authenticated users full access to all
   # queues and exchanges - update to restrict access as required
   auth_ldap.queries.resource_access = '''
   {for, [    {permission, configure, {constant, true}},
        {permission, write,
         {for, [{resource, queue,    {constant, true}},
                {resource, exchange, {constant, true}}]}},
        {permission, read,
         {for, [{resource, exchange, {constant, true}},
                {resource, queue,    {constant, true}}]}}
       ]
   }
   '''
   
   # FIXME: This provides all authenticated users access to all topics
   # - update to restrict access as required
   auth_ldap.queries.topic_access = '''
   {for, [{permission, write, {constant, true}},
        {permission, read,  {constant, true}}
       ]
   }
   '''
   ```

1. Aktualisieren Sie die Konfiguration mit dem `update-configuration` AWS CLI-Befehl, wie im folgenden Beispiel gezeigt. Fügen Sie in diesem Befehl die Konfigurations-ID hinzu, die Sie als Antwort auf Schritt 1 dieses Verfahrens erhalten haben. Beispiel, `c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca`.

   ```
   aws mq update-configuration \
     --configuration-id "<c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca>" \
     --data "$(cat rabbitmq.conf | base64 --wrap=0)"
   ```

   Dieser Befehl gibt eine Antwort zurück, die dem folgenden Beispiel ähnelt.

   ```
   {
       "Arn": "arn:aws:mq:us-west-2:123456789012:configuration:c-b600ac8e-8183-4f74-a713-983e59f30e3d",
       "Created": "2025-07-17T16:57:04.520931+00:00",
       "Id": "c-b600ac8e-8183-4f74-a713-983e59f30e3d",
       "LatestRevision": {
           "Created": "2025-07-17T16:57:39.172000+00:00",
           "Revision": 2
       },
       "Name": "rabbitmq-ldap-config",
       "Warnings": []
   }
   ```

1. Erstellen Sie einen Broker mit der LDAP-Konfiguration, die Sie in Schritt 2 dieses Verfahrens erstellt haben. Verwenden Sie dazu den `create-broker` AWS CLI-Befehl, wie im folgenden Beispiel gezeigt. Geben Sie in diesem Befehl die Konfigurations-ID und die Revisionsnummer an, die Sie in den Antworten von Schritt 1 bzw. 2 erhalten haben. Beispiel: `c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca` und `2`.

   ```
   aws mq create-broker \
    --broker-name "rabbitmq-ldap-test-1" \
    --engine-type "RABBITMQ" \
    --engine-version "3.13" \
    --host-instance-type "mq.m7g.large" \
    --deployment-mode "CLUSTER_MULTI_AZ" \
    --logs '{"General": true}' \
    --publicly-accessible \
    --configuration '{"Id": "<c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca>","Revision": <2>}'
   ```

   Dieser Befehl gibt eine Antwort zurück, die dem folgenden Beispiel ähnelt.

   ```
   {
       "BrokerArn": "arn:aws:mq:us-west-2:123456789012:broker:rabbitmq-ldap-broker:b-2a1b5133-a10c-49d2-879b-8c176c34cf73",
       "BrokerId": "b-2a1b5133-a10c-49d2-879b-8c176c34cf73"
   }
   ```
**Beschränkung der Benennung von Brokern**  
Die IAM-Rolle, die durch den vorausgesetzten CDK-Stack erstellt wurde, schränkt Broker-Namen zunächst ein. `rabbitmq-ldap-test` Stellen Sie sicher, dass Ihr Brokername diesem Muster folgt, da die IAM-Rolle sonst nicht berechtigt ist, die Rolle für die ARN-Auflösung zu übernehmen.

1. Stellen Sie mithilfe des `describe-broker` AWS CLI-Befehls sicher`RUNNING`, dass der Status des Brokers von `CREATION_IN_PROGRESS` zu wechselt, wie im folgenden Beispiel gezeigt. Geben Sie in diesem Befehl die Broker-ID ein, die Sie im Ergebnis des vorherigen Schritts erhalten haben, `b-2a1b5133-a10c-49d2-879b-8c176c34cf73` z. B.

   ```
   aws mq describe-broker \
    --broker-id "<b-2a1b5133-a10c-49d2-879b-8c176c34cf73>"
   ```

   Dieser Befehl gibt eine Antwort zurück, die dem folgenden Beispiel ähnelt. Die folgende Antwort ist eine abgekürzte Version der vollständigen Ausgabe, die der `describe-broker` Befehl zurückgibt. Diese Antwort zeigt den Brokerstatus und die Authentifizierungsstrategie, mit der der Broker gesichert wurde. In diesem Fall weist die `config_managed` Authentifizierungsstrategie darauf hin, dass der Broker die LDAP-Authentifizierungsmethode verwendet.

   ```
   {
   "AuthenticationStrategy": "config_managed",
       ...,
       "BrokerState": "RUNNING",
       ...
   }
   ```

1. Überprüfen Sie den RabbitMQ-Zugriff mit einem der Testbenutzer, die mit dem CDK-Stack als Voraussetzung erstellt wurden

   ```
   # FIXME: Replace ${RabbitMqLdapTestStack.ConsoleUserPasswordArn} with the actual ARN from your deployed prerequisite CDK stack outputs
   CONSOLE_PASSWORD=$(aws secretsmanager get-secret-value \
     --secret-id ${RabbitMqLdapTestStack.ConsoleUserPasswordArn} \
     --query 'SecretString' --output text)
   
   # FIXME: Replace BrokerConsoleURL with the actual ConsoleURL retrieved by
   # calling describe-broker for the broker created above
   # Call management API /api/overview (should succeed)
   curl -u RabbitMqConsoleUser:$CONSOLE_PASSWORD \
     https://${BrokerConsoleURL}/api/overview
   
   # Try to create a user (should fail - console user only has monitoring permissions)
   curl -u RabbitMqConsoleUser:$CONSOLE_PASSWORD \
     -X PUT https://${BrokerConsoleURL}/api/users/testuser \
     -H "Content-Type: application/json" \
     -d '{"password":"testpass","tags":"management"}'
   ```