

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 EMQX 代理程式
<a name="configure-emqx-broker"></a>

本節說明如何新增使用者名稱和密碼。它還涵蓋如何使用新增的使用者名稱和密碼從外部來源建立 TLS 連線。您可以使用 Linux 或 來設定 EMQX 代理程式Microsoft Windows。

**注意**  
若要設定代理程式，您需要在啟用 MQTT 的 V3 閘道中使用預設 EMQX 組態設定的核心裝置。

**重要**  
完成此程序後，強烈建議您設定授權規則。如需詳細資訊，請參閱[在 EMQX 中設定 AWS IoT SiteWise Edge 的授權規則](authorization-rules-emqx-broker.md)。新增使用者的授權規則可增強安全性。

## 更新 EMQX 部署組態以進行身分驗證
<a name="update-emqx-broker-authentication"></a>

**更新 EMQX 部署組態以進行身分驗證**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選擇要設定的閘道。

1. 在 **Edge 閘道組態**區段中，複製 **Greengrass 核心裝置**值。儲存它以供日後使用。

1. 開啟 [AWS IoT 主控台](https://console.aws.amazon.com/iot/)。

1. 在左側導覽的**管理**區段下，選擇 **Greengrass 裝置**，然後選擇**部署**。

1. 尋找您先前儲存的核心裝置值，然後選擇該連結以開啟部署。

1. 選擇**動作**下拉式選單按鈕，然後選擇**修訂**。

1. 閱讀出現的訊息，然後選擇**修訂部署**。**指定目標**頁面隨即出現。

1. 選擇**下一步**，直到您到達**設定元件**步驟為止。

1. 選取`aws.greengrass.clientdevices.mqtt.EMQX`選項按鈕。

1. 選擇**設定元件**按鈕。隨即顯示元件的組態頁面。

1. 在**組態更新**下，選擇**重設為元件版本的預設組態：2.\$1.\$1**。

1. 根據您的作業系統，在**要合併的組態區段中輸入下列組態**。

------
#### [ Linux ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 8883:8883 -p 127.0.0.1:1883:1883 -p 127.0.0.1:18083:18083 -v emqx-data:/opt/emqx/data -e EMQX_NODE__NAME=emqx@local",
       "requiresPrivilege": "true"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "requiresPrivilege": "true"
   }
   ```

   `dockerOptions` 欄位僅適用於 Linux 閘道。

------

1. 選擇**確認**。

1. 選擇**下一步**，直到您到達**檢閱**步驟為止。

1. 選擇**部署**。

1. 部署成功後，請繼續下一個步驟。

## 啟用使用者名稱和密碼身分驗證
<a name="emqx-broker-username-password-auth"></a>

本節說明如何透過 EMQX 儀表板 GUI 新增使用者名稱和密碼。

**注意**  
提供的 EMQX 相關指示僅供參考。由於 EMQX 文件和功能可能會隨著時間而變更，而且我們不會維護其文件，我們建議您參閱 [EMQX 的官方文件](https://docs.emqx.com/en/emqx/latest/)以取得最新資訊。

------
#### [ EMQX Dashboard ]

**透過 EMQX 儀表板啟用使用者名稱和密碼身分驗證**

1. 確定您位於閘道主機中。

1. 開啟瀏覽器視窗並造訪 [http://localhost:18083/](http://localhost:18083/)。

1. 輸入預設使用者名稱 **admin**和預設密碼 **public**。如需詳細資訊，請參閱 [EMQX 文件中的 EMQX 儀表板](https://docs.emqx.com/en/emqx/latest/dashboard/introduction.html#first-login)。 **

1. 登入後，系統會提示您變更密碼。更新您的密碼以繼續前往 EMQX 儀表板。

1. 在左側導覽中，選擇遮罩圖示，然後選擇**身分驗證**。

1. 在**內建資料庫**列中，選擇**使用者**按鈕。

1. 選擇加號圖示按鈕來新增使用者。新增****畫面隨即出現。

1. 輸入外部應用程式的 使用者的使用者名稱和密碼。

1. 選擇**儲存**。您選擇的使用者名稱會顯示在**身分驗證**頁面的資料表中。

**注意**  
現有或預設的授權規則適用於新使用者。建議您檢閱並根據您的外部應用程式需求進行調整。

------
#### [ EMQX Management with Linux ]

使用位於 的 AWS IoT SiteWise EMQX CLI 工具`/greengrass/v2/bin/swe-emqx-cli`。

**使用 Linux 透過 EMQX Management 啟用使用者名稱和密碼身分驗證**

1. 執行下列命令來變更管理員密碼：

   ```
   /greengrass/v2/bin/swe-emqx-cli admin change-pwd
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入您目前的管理員使用者 （預設為 `admin`) 和密碼 （預設為 `public`)。

   1. 輸入並確認新密碼。

   如果成功，您會看到下列訊息：

   ```
   admin password changed successfully
   ```

1. 執行下列命令，為外部應用程式新增使用者：

   ```
   /greengrass/v2/bin/swe-emqx-cli users add
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入新使用者的使用者名稱。

   1. 輸入並確認新使用者的密碼。

   如果成功，您會看到下列訊息：

   ```
   User '[username]' created successfully
   ```

1. 執行下列命令來驗證使用者組態：

   ```
   /greengrass/v2/bin/swe-emqx-cli users list
   ```

   輸出會顯示所有設定的使用者：

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------
#### [ EMQX Management with Windows ]

在下列其中一個位置使用 AWS IoT SiteWise EMQX CLI 工具：
+ PowerShell：`C:\greengrass\v2\bin\swe-emqx-cli.ps1`
+ 命令提示字元： `C:\greengrass\v2\bin\swe-emqx-cli.bat`

**使用 Windows 透過 EMQX Management 啟用使用者名稱和密碼身分驗證**

1. 執行下列命令來變更管理員密碼：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 admin change-pwd
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入您目前的管理員使用者 （預設為 `admin`) 和密碼 （預設為 `public`)。

   1. 輸入並確認新密碼。

   如果成功，您會看到下列訊息：

   ```
   admin password changed successfully
   ```

1. 執行下列命令，為外部應用程式新增使用者：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users add
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入新使用者的使用者名稱。

   1. 輸入並確認新使用者的密碼。

   如果成功，您會看到下列訊息：

   ```
   User '[username]' created successfully
   ```

1. 執行下列命令來驗證使用者組態：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users list
   ```

   輸出會顯示所有設定的使用者：

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------