

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengintegrasikan broker ActiveMQ dengan LDAP
<a name="security-authentication-authorization"></a>

**penting**  
Amazon MQ tidak mendukung sertifikat server yang dikeluarkan oleh CA pribadi.

Anda dapat mengakses broker ActiveMQ menggunakan protokol berikut dengan TLS yang diaktifkan:
+ [AMQP](http://activemq.apache.org/amqp.html)
+ [MQTT](http://activemq.apache.org/mqtt.html)
+ MQTT lebih [WebSocket](http://activemq.apache.org/websockets.html)
+ [OpenWire](http://activemq.apache.org/openwire.html)
+ [MENGINJAK](http://activemq.apache.org/stomp.html)
+ STOMP berakhir WebSocket

Amazon MQ menawarkan pilihan antara autentikasi ActiveMQ native serta autentikasi dan otorisasi LDAP untuk mengelola izin pengguna. Untuk informasi tentang pembatasan yang berkaitan dengan nama pengguna dan kata sandi ActiveMQ, lihat [Pengguna](amazon-mq-limits.md#activemq-user-limits).

Untuk mengotorisasi pengguna dan grup ActiveMQ agar dapat bekerja dengan antrean dan topik, Anda harus [mengedit konfigurasi broker](amazon-mq-creating-applying-configurations.md). Amazon MQ menggunakan [Plugin Autentikasi Sederhana](http://activemq.apache.org/security.html#Security-SimpleAuthenticationPlugin) ActiveMQ untuk membatasi baca dan tulis ke tujuan. Untuk informasi selengkapnya dan contoh tambahan, lihat [Selalu konfigurasikan peta otorisasi](using-amazon-mq-securely.md#always-configure-authorization-map) dan `authorizationEntry`.

**catatan**  
Saat ini, Amazon MQ tidak mendukung Autentikasi Sertifikat Klien.

**Topics**
+ [Mengintegrasikan LDAP dengan ActiveMQ](#integrate-ldap)
+ [Prasyarat](#ldap-prerequisites)
+ [Memulai dengan LDAP](#ldap-get-started)
+ [Cara kerja integrasi LDAP](#ldap-support-details)

## Mengintegrasikan LDAP dengan ActiveMQ
<a name="integrate-ldap"></a>

Anda dapat mengautentikasi pengguna Amazon MQ melalui kredensial yang disimpan dalam server Lightweight Directory Access Protocol (LDAP). Anda juga dapat menambahkan, menghapus, dan memodifikasi pengguna Amazon MQ serta menetapkan izin untuk topik juga antrean dari sana. Operasi manajemen seperti membuat, memperbarui, dan menghapus broker masih memerlukan kredensial IAM dan tidak terintegrasi dengan LDAP.

Pelanggan yang ingin menyederhanakan dan memusatkan autentikasi dan otorisasi broker Amazon MQ mereka menggunakan server LDAP dapat menggunakan fitur ini. Menjaga semua kredensial pengguna di dalam server LDAP dapat menghemat waktu dan upaya dengan menyediakan lokasi sentral untuk menyimpan serta mengelola kredensial ini.

Amazon MQ menyediakan dukungan LDAP menggunakan plugin Apache ActiveMQ JAAS. Setiap server LDAP, seperti Microsoft Active Directory atau OpenLDAP yang didukung oleh plugin juga didukung oleh Amazon MQ. Untuk informasi selengkapnya tentang plugin, lihat bagian [Keamanan](https://activemq.apache.org/security) dalam dokumentasi ActiveMQ.

Selain pengguna, Anda dapat menentukan akses ke topik dan antrean untuk grup atau pengguna tertentu melalui server LDAP. Anda melakukannya dengan membuat entri yang mewakili topik dan antrean di server LDAP lalu menetapkan izin untuk pengguna atau grup LDAP tertentu. Kemudian Anda dapat mengonfigurasi broker untuk mengambil data otorisasi dari server LDAP.

**penting**  
 Saat menggunakan LDAP, otentikasi tidak peka huruf besar/kecil, tetapi otorisasi peka huruf besar/kecil untuk nama pengguna Anda. 

## Prasyarat
<a name="ldap-prerequisites"></a>

Sebelum menambahkan dukungan LDAP ke broker Amazon MQ baru atau yang sudah ada, Anda harus menyiapkan akun layanan. Akun layanan ini diperlukan untuk memulai koneksi ke server LDAP dan harus memiliki izin yang benar untuk membuat koneksi ini. Akun layanan ini akan menyiapkan autentikasi LDAP untuk broker Anda. Setiap koneksi klien berturut-turut akan diautentikasi melalui koneksi yang sama. 

Akun layanan adalah akun di dalam server LDAP Anda, yang memiliki akses untuk memulai koneksi. Ini adalah persyaratan LDAP standar dan Anda harus memberikan kredensial akun layanan hanya satu kali. Setelah koneksi disiapkan, semua koneksi klien di masa mendatang akan dikonfirmasi melalui server LDAP Anda. Kredensial akun layanan Anda disimpan dengan aman dalam bentuk terenkripsi, yang hanya dapat diakses oleh Amazon MQ.

Untuk mengintegrasikan dengan ActiveMQ, Directory Information Tree (DIT) tertentu diperlukan dalam server LDAP. Misalnya, file `ldif` yang secara jelas menampilkan struktur ini, lihat *Mengimpor file LDIF berikut ke server LDAP* di bagian [Keamanan](https://activemq.apache.org/security) dalam dokumentasi ActiveMQ.

## Memulai dengan LDAP
<a name="ldap-get-started"></a>

Untuk memulai, arahkan ke konsol Amazon MQ dan pilih **autentikasi dan otorisasi LDAP** ketika Anda membuat Amazon MQ baru atau mengedit instans broker yang ada.

Berikan informasi berikut tentang akun layanan:
+ **Nama domain yang sepenuhnya memenuhi syarat** Lokasi server LDAP tempat permintaan autentikasi dan otorisasi dikeluarkan.
**catatan**  
Nama domain yang sepenuhnya memenuhi syarat dari server LDAP yang harus Anda masukkan tidak boleh menyertakan protokol atau nomor port. Amazon MQ akan menambahkan nama domain yang sepenuhnya memenuhi syarat dengan protokol `ldaps`, dan akan menambahkan nomor port `636`.  
Sebagai contoh, jika Anda memberikan domain yang sepenuhnya memenuhi syarat berikut: `example.com`, Amazon MQ akan mengakses server LDAP menggunakan URL berikut: `ldaps://example.com:636`.  
Agar host broker dapat berhasil berkomunikasi dengan server LDAP, nama domain yang sepenuhnya memenuhi syarat harus dapat dibuat secara publik. Untuk menjaga server LDAP tetap privat dan aman, batasi lalu lintas masuk dalam aturan masuk server untuk hanya mengizinkan lalu lintas yang berasal dari dalam VPC broker.
+ **Nama pengguna akun layanan** Nama pengguna yang khas dan akan digunakan untuk melakukan ikatan awal ke server LDAP.
+ **Kata sandi akun layanan** Kata sandi pengguna yang melakukan ikatan awal.

Gambar berikut menyoroti tempat untuk memasukkan detail ini.

![\[Tempat untuk menentukan detail akun layanan LDAP.\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/active-mq-ldap-service-account.png)


Di bagian **Konfigurasi login LDAP**, berikan informasi yang diperlukan berikut:
+ **Basis Pengguna** Nama simpul yang khas dalam directory information tree (DIT) dan merupakan tempat pencarian pengguna.
+ **Pencocokan Pencarian Pengguna** Filter pencarian LDAP yang akan digunakan untuk menemukan pengguna dalam `userBase`. Nama pengguna klien akan diganti ke dalam placeholder `{0}` di filter pencarian. Untuk informasi lebih lanjut, lihat [Autentikasi](#ldap-authentication) dan [Otorisasi](#ldap-authorization).
+ **Basis Peran** Nama simpul yang khas dalam DIT dan merupakan tempat pencarian peran. Peran dapat dikonfigurasi sebagai entri grup LDAP eksplisit dalam direktori Anda. Entri peran umum dapat terdiri dari satu atribut untuk nama peran, seperti **nama umum (CN)**, dan atribut lain, seperti `member`, dengan nilai yang mewakili nama khas atau nama pengguna yang termasuk dalam grup peran. Sebagai contoh, dengan unit organisasi, `group`, Anda dapat memberikan nama khas berikut: `ou=group,dc=example,dc=com`.
+ **Pencocokan Pencarian Peran** Filter pencarian LDAP yang akan digunakan untuk menemukan peran dalam `roleBase`. Nama khas pengguna dicocokkan yang menurut `userSearchMatching` akan diganti ke dalam placeholder `{0}` di filter pencarian. Nama pengguna klien akan diganti dalam placeholder `{1}`. Misalnya, jika entri peran dalam direktori Anda menyertakan atribut bernama `member`, yang berisi nama pengguna untuk semua pengguna dalam peran tersebut, Anda dapat menyediakan filter pencarian berikut: `(member:=uid={1})`.

 Gambar berikut menyoroti tempat untuk menentukan detail ini.

![\[Tempat untuk menentukan detail login LDAP.\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/active-mq-ldap-login-configuration.png)


Di bagian **Pengaturan opsional**, Anda dapat memberikan informasi opsional berikut:
+ **Nama Peran Pengguna** Nama atribut LDAP dalam entri direktori pengguna untuk keanggotaan grup pengguna. Dalam beberapa kasus, peran pengguna dapat diidentifikasi menurut nilai atribut dalam entri direktori pengguna. Opsi `userRoleName` memungkinkan Anda untuk memberikan nama bagi atribut ini. Sebagai contoh, mari kita pertimbangkan entri pengguna berikut:

  ```
  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
  ```

  Untuk memberikan`userRoleName` yang benar bagi contoh di atas, Anda akan menentukan atribut `memberOf`. Jika autentikasi berhasil, pengguna ditetapkan peran `role1`.
+ **Nama Peran** Atribut nama grup dalam entri peran yang nilainya adalah nama peran tersebut. Misalnya, Anda dapat menentukan `cn` untuk entri grup **nama umum**. Jika autentikasi berhasil, pengguna ditetapkan nilai atribut `cn` untuk setiap entri peran tempat mereka menjadi anggota.
+ **Subpohon Pencarian Pengguna** Menentukan ruang lingkup untuk kueri pencarian pengguna LDAP. Jika benar, ruang lingkup diatur untuk mencari seluruh subpohon di bawah simpul yang ditentukan menurut `userBase`.
+ **Subpohon Pencarian Peran** Menentukan ruang lingkup untuk kueri pencarian peran LDAP. Jika benar, ruang lingkup diatur untuk mencari seluruh subpohon di bawah simpul yang ditentukan menurut `roleBase`.

Gambar berikut menyoroti tempat untuk menentukan pengaturan opsional ini.

![\[Optional settings for LDAP attributes and search scope in role search matching.\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/amazon-mq-active-ldap-optional-settings.png)


## Cara kerja integrasi LDAP
<a name="ldap-support-details"></a>

Anda bisa memikirkan integrasi dalam dua kategori utama: struktur untuk autentikasi, dan struktur untuk otorisasi.

### Autentikasi
<a name="ldap-authentication"></a>

Untuk autentikasi, kredensial klien harus valid. Kredensial ini divalidasi terhadap pengguna di basis pengguna dalam server LDAP.

Basis pengguna yang disediakan untuk broker ActiveMQ harus menunjuk ke simpul di DIT tempat pengguna disimpan dalam server LDAP. Misalnya, jika Anda menggunakan AWS Managed Microsoft AD, dan Anda memiliki komponen domain,, dan `corp` `example``com`, dan di dalamnya Anda memiliki unit organisasi `corp` dan`Users`, Anda akan menggunakan yang berikut ini sebagai basis pengguna Anda:

```
OU=Users,OU=corp,DC=corp,DC=example,DC=com
```

Broker ActiveMQ akan mencari pengguna di lokasi ini dalam DIT guna mengautentikasi permintaan koneksi klien ke broker.

![\[Lokasi untuk mencari pengguna\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/active-mq-ldap-structure.png)


Karena kode sumber ActiveMQ meng-hardcode nama atribut untuk pengguna menjadi `uid`, Anda harus memastikan bahwa setiap pengguna telah menetapkan atribut ini. Untuk lebih sederhana, Anda dapat menggunakan nama pengguna koneksi pengguna. Untuk informasi selengkapnya, lihat kode sumber [activemq](https://github.com/apache/activemq/blob/c3d9b388e4f1fe73e348bf466122fe6862e064a0/activemq-broker/src/main/java/org/apache/activemq/security/SimpleCachedLDAPAuthorizationMap.java#L89) dan [Mengonfigurasi pemetaan ID di Pengguna dan Komputer Direktori Aktif untuk versi Windows Server 2016 (dan berikutnya)](https://www.ibm.com/support/knowledgecenter/en/STXKQY_5.0.3/com.ibm.spectrum.scale.v5r03.doc/bl1adm_confidmapaduc.htm).

Untuk mengaktifkan akses konsol ActiveMQ bagi pengguna tertentu, pastikan mereka merupakan anggota grup `amazonmq-console-admins`.

### Otorisasi
<a name="ldap-authorization"></a>

Untuk otorisasi, basis pencarian izin ditentukan dalam konfigurasi broker. Otorisasi dilakukan dengan basis per tujuan (atau wildcard, set tujuan) melalui elemen `cachedLdapAuthorizationMap`, yang ditemukan dalam file konfigurasi `activemq.xml` broker. Untuk informasi selengkapnya, lihat [Modul Otorisasi LDAP yang Di-cache](https://activemq.apache.org/cached-ldap-authorization-module).

**catatan**  
Untuk dapat menggunakan `cachedLDAPAuthorizationMap` elemen dalam file `activemq.xml` konfigurasi broker Anda, Anda harus memilih opsi **Otentikasi dan Otorisasi LDAP** saat [membuat konfigurasi melalui Konsol Manajemen AWS](amazon-mq-creating-applying-configurations.md), atau mengatur [pembuatan konfigurasi melalui Konsol Manajemen AWS](amazon-mq-creating-applying-configurations.md), atau mengatur [https://docs.aws.amazon.com//amazon-mq/latest/api-reference/configurations.html#configurations-model-authenticationstrategy](https://docs.aws.amazon.com//amazon-mq/latest/api-reference/configurations.html#configurations-model-authenticationstrategy)properti `LDAP` saat membuat konfigurasi baru menggunakan Amazon MQ API.

Anda harus memberikan tiga atribut berikut sebagai bagian dari elemen `cachedLDAPAuthorizationMap`:
+ `queueSearchBase`
+ `topicSearchBase`
+ `tempSearchBase`

**penting**  
Agar informasi sensitif tidak langsung ditempatkan ke file konfigurasi broker, Amazon MQ memblokir atribut berikut dari agar tidak digunakan dalam `cachedLdapAuthorizationMap`:  
`connectionURL`
`connectionUsername`
`connectionPassword`
Saat Anda membuat broker, Amazon MQ mengganti nilai yang Anda berikan melalui Konsol Manajemen AWS, atau di [https://docs.aws.amazon.com//amazon-mq/latest/api-reference/brokers.html#brokers-prop-createbrokerinput-ldapservermetadata](https://docs.aws.amazon.com//amazon-mq/latest/api-reference/brokers.html#brokers-prop-createbrokerinput-ldapservermetadata)properti permintaan API Anda, untuk atribut di atas.

Hal berikut mendemonstrasikan contoh kerja `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>
```

Nilai ini mengidentifikasi lokasi dalam DIT tempat izin untuk setiap jenis tujuan ditentukan. Jadi untuk contoh di atas dengan AWS Managed Microsoft AD, menggunakan komponen domain yang sama dari `corp``example`,`com`, dan, Anda akan menentukan unit organisasi bernama `destination` berisi semua jenis tujuan Anda. Dalam OU tersebut, Anda akan membuat satu untuk `queues`, satu untuk `topics`, dan satu untuk tujuan `temp`.

Ini berarti basis pencarian antrean Anda, yang menyediakan informasi otorisasi untuk tujuan antrean jenis, akan memiliki lokasi berikut di DIT Anda:

```
OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
```

![\[Lokasi basis pencarian antrean.\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/active-mq-ldap-queue-structure.png)


Demikian pula, aturan izin untuk topik dan tujuan sementara akan terletak pada tingkat yang sama di 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
```

Dalam OU untuk setiap jenis tujuan (antrean, topik, sementara), baik wildcard atau nama tujuan tertentu dapat disediakan. Misalnya, untuk memberikan aturan otorisasi bagi semua antrean yang dimulai dengan prefiks DEMO.EVENTS.\$1., Anda dapat membuat OU berikut:

```
OU=DEMO.EVENTS.$,OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
```

**catatan**  
OU `DEMO.EVENTS.$` berada di dalam OU `Queue`.

Untuk info selengkapnya tentang wildcard di ActiveMQ, lihat [Wildcard](https://activemq.apache.org/wildcards)

Untuk memberikan aturan otorisasi bagi antrean tertentu, seperti DEMO.MYQUEUE, tentukan hal seperti berikut:

```
OU=DEMO.MYQUEUE,OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
```

![\[Aturan otorisasi untuk antrean tertentu\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/active-mq-ldap-authorization-rules.png)


### Grup Keamanan
<a name="ldap-security-groups"></a>

Dalam setiap OU yang mewakili tujuan atau wildcard, Anda harus membuat tiga grup keamanan. Seperti semua izin di ActiveMQ, ini adalah izin. read/write/admin Untuk informasi selengkapnya tentang hal yang dapat dilakukan pengguna dengan setiap izin tersebut, lihat [Keamanan](https://activemq.apache.org/security) dalam dokumentasi ActiveMQ.

Anda harus memberi nama grup keamanan ini `read`, `write`, dan `admin`. Dalam setiap grup keamanan ini, Anda dapat menambahkan pengguna atau grup, yang kemudian akan memiliki izin untuk melakukan tindakan terkait. Anda memerlukan grup keamanan ini untuk setiap rangkaian tujuan wildcard atau tujuan individual. 

![\[Grup keamanan\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/active-mq-ldap-security-groups.png)


**catatan**  
Ketika Anda membuat grup admin, konflik akan muncul dengan nama grup. Konflik ini terjadi karena aturan warisan pra-Windows 2000 tidak mengizinkan grup untuk berbagi nama yang sama, bahkan jika grup berada di lokasi DIT yang berbeda. Nilai di dalam kotak teks **pra-Windows 2000** tidak berdampak pada penyiapan, tetapi harus unik secara global. Untuk menghindari konflik ini, Anda dapat menambahkan sufiks `uuid` ke setiap grup `admin`.  

![\[Ini adalah citra saya.\]](http://docs.aws.amazon.com/id_id/amazon-mq/latest/developer-guide/images/active-mq-ldap-admin-qualifier.png)


Menambahkan pengguna ke grup keamanan `admin` untuk tujuan tertentu akan memungkinkan pengguna untuk membuat dan menghapus topik tersebut. Menambahkannya ke grup keamanan `read` akan memungkinkan mereka untuk membaca dari tujuan, dan menambahkannya ke grup `write` akan memungkinkan mereka untuk menulis ke tujuan.

Selain menambahkan pengguna individu ke izin grup keamanan, Anda juga dapat menambahkan seluruh grup. Namun, karena ActiveMQ meng-hardcode atribut nama untuk grup, Anda harus memastikan bahwa grup yang ingin Anda tambahkan memiliki kelas objek `groupOfNames`, seperti yang ditampilkan dalam kode sumber [activemq](https://github.com/apache/activemq/blob/c3d9b388e4f1fe73e348bf466122fe6862e064a0/activemq-broker/src/main/java/org/apache/activemq/security/SimpleCachedLDAPAuthorizationMap.java#L86).

Untuk melakukannya, ikuti proses yang seperti `uid` bagi pengguna. Lihat [Mengonfigurasi pemetaan ID di Pengguna dan Komputer Direktori Aktif untuk versi Windows Server 2016 (dan berikutnya)](https://www.ibm.com/support/knowledgecenter/en/STXKQY_5.0.3/com.ibm.spectrum.scale.v5r03.doc/bl1adm_confidmapaduc.htm).