

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

# 設定 Amazon DCV 身分驗證
<a name="security-authentication"></a>

根據預設，用戶端需要先向託管 Amazon DCV 的伺服器進行身分驗證，才能連線至 Amazon DCV 工作階段。如果用戶端無法驗證，可能是因為無法連線至工作階段。用戶端身分驗證需求可停用，以允許用戶端不向伺服器驗證身分即連接至工作階段。

Amazon DCV 支援下列身分驗證方法：
+ `system` — 這是預設身分驗證方法。用戶端身分驗證是委派給基礎作業系統來進行。對於 Windows Amazon DCV 伺服器，身分驗證會委派給 WinLogon。對於 Linux 和 macOS Amazon DCV 伺服器，身分驗證會委派給 PAM。用戶端在連線至 Amazon DCV 工作階段時提供其系統登入資料。確認您的用戶端具有 Amazon DCV 伺服器的適當登入憑證。
+ `none` — 連線至 Amazon DCV 工作階段時不需要用戶端身分驗證。Amazon DCV 伺服器會將存取權授予嘗試連線至工作階段的所有用戶端。

請確定您的用戶端知道 Amazon DCV 伺服器使用的身分驗證方法。他們還應該確保他們擁有連線到工作階段所需的資訊。

**Topics**
+ [在 Windows 上設定身分驗證](#set-authentication-windows)
+ [在 Linux 上設定身分驗證](#set-authentication-linux)
+ [在 macOS 上設定身分驗證](#set-authentication-macos)
+ [使用外部驗證器設定身分驗證](#set-authentication-external)
+ [使用外部身分驗證](external-authentication.md)

## 在 Windows 上設定身分驗證
<a name="set-authentication-windows"></a>

若要變更 Amazon DCV 伺服器的身分驗證方法，您必須使用 Windows 登錄編輯器設定 `authentication` 參數。

**若要在 Windows 上變更身分驗證方法**

1. 開啟 Windows 登錄編輯程式。

1. 導覽至 **HKEY\$1USERS\$1S-1-5-18\$1Software\$1GSettings\$1com\$1nicesoftware\$1dcv\$1security\$1** 金鑰，然後選取**身分驗證**參數。

   如果登錄機碼中沒有`authentication`參數，請建立一個：

   1. 在導覽窗格中，開啟**身分驗證**金鑰的內容 （按一下滑鼠右鍵） 選單。然後，選擇**新增**、**字串值**。

   1. 在**名稱**中，輸入 `authentication`，然後按 **Enter**。

1. 開啟 **authentication** 參數。在 **Value data (數值資料)** 中，輸入 `system` 或 `none`。

1. 選擇 **OK (確定)** 並關閉 Windows 登錄編輯程式。

### Windows 登入資料提供者
<a name="manage-wcp"></a>

使用 Windows 登入資料提供者，如果使用者可以對 DCV 伺服器進行身分驗證，使用者可以略過 Windows 登入。

只有當 DCV `authentication` 參數設定為 `system` 時，才支援 Windows 登入資料提供者。如果 DCV `authentication` 參數設定為 `none`，則使用者在自動向 DCV 伺服器驗證之後，必須手動登入 Windows。

根據預設，當您安裝 Amazon DCV 伺服器時，會啟用 Windows 登入資料提供者。

**停用 Windows 登入資料提供者**

1. 開啟 Windows 登錄編輯程式。

1. 導覽至 **HKEY\$1LOCAL\$1MACHINE\$1SOFTWARE\$1Microsoft\$1Windows\$1CurrentVersion\$1Authentication\$1Credential Providers\$1\$18A2C93D0-D55F-4045-99D7-B27F5E263407\$1** 機碼。

1. 選擇**編輯**、**新增**、**DWORD 值**。

1. 輸入 **Disabled** 作為名稱。

1. 開啟值。在**數值資料**中，輸入 `1`，然後選擇**確定**。

1. 關閉 Windows 登錄編輯程式。

**重新啟用 Windows 登入資料提供者**

1. 開啟 Windows 登錄編輯程式。

1. 導覽至 **HKEY\$1LOCAL\$1MACHINE\$1SOFTWARE\$1Microsoft\$1Windows\$1CurrentVersion\$1Authentication\$1Credential Providers\$1\$18A2C93D0-D55F-4045-99D7-B27F5E263407\$1** 機碼。

1. 開啟 **Disabled** 值。在**數值資料**中，輸入 `0`，然後選擇**確定**。

1. 關閉 Windows 登錄編輯程式。

## 在 Linux 上設定身分驗證
<a name="set-authentication-linux"></a>

若要變更 Amazon DCV 伺服器的身分驗證方法，您必須在 `dcv.conf` 檔案中設定 `authentication` 參數。

**若要在 Linux 上變更身分驗證方法**

1. 導覽至 `/etc/dcv/`，然後使用您徧好的文字編輯器開啟 `dcv.conf`。

1. 在 `[security]` 區段中，找到 `authentication` 參數。然後，將現有值取代為 `system`或 `none`。

   如果 `[security]`區段中沒有`authentication`參數，請使用下列格式新增它。

   ```
   [security] 
   authentication=method
   ```

1. 儲存並關閉檔案。

### PAM 服務
<a name="pam-service"></a>

在 Linux 上，當 Amazon DCV `authentication` 參數設定為 時`system`，身分驗證是透過執行 PAM 服務來執行。

根據預設，Amazon DCV 伺服器執行的特權存取管理 (PAM) 服務為 `/etc/pam.d/dcv`。

如果您想要變更 PAM 在透過 Amazon DCV 驗證使用者時執行的步驟，您可以在 的 `authentication`區段中設定 `pam-service` 參數`dcv.conf`。

**變更 PAM 服務**

1. 做為根目錄，導覽至 `/etc/pam.d` 目錄並建立新的檔案，例如 `dcv-custom`。

1. 使用您偏好的文字編輯器編輯`dcv-custom`檔案。如需 PAM 服務檔案的語法，請參閱您的系統文件。

1. 導覽至 `/etc/dcv/`，然後使用您徧好的文字編輯器開啟 `dcv.conf`。

1. 在 `[authentication]` 區段中，找到 `pam-service` 參數。然後，將現有的服務名稱取代為新的 PAM 服務名稱。

   如果 `[authentication]`區段中沒有`pam-service`參數，請使用下列格式手動新增參數：

   ```
   [authentication]
   pam-service=service_name
   ```
**注意**  
PAM 服務名稱必須符合您在 中建立的檔案名稱`/etc/pam.d`。

1. 儲存並關閉檔案。

## 在 macOS 上設定身分驗證
<a name="set-authentication-macos"></a>

若要變更 Amazon DCV 伺服器的身分驗證方法，您必須在 `dcv.conf` 檔案中設定 `authentication` 參數。

**在 macOS 上變更身分驗證方法**

1. 導覽至 `/etc/dcv/`，然後使用您徧好的文字編輯器開啟 `dcv.conf`。

1. 在 `[security]` 區段中，找到 `authentication` 參數。然後，將現有值取代為 `system`或 `none`。

   如果 `[security]`區段中沒有`authentication`參數，請使用下列格式新增它。

   ```
   [security] 
   authentication=method
   ```

1. 儲存並關閉檔案。

### PAM 服務
<a name="pam-service-macos"></a>

在 macOS 上，當 Amazon DCV `authentication` 參數設定為 時`system`，身分驗證是透過執行 PAM 服務來執行。

根據預設，Amazon DCV 伺服器執行的特權存取管理 (PAM) 服務為 `/etc/pam.d/dcv`。

如果您想要變更 PAM 在透過 Amazon DCV 驗證使用者時執行的步驟，您可以在 的 `authentication`區段中設定 `pam-service` 參數`dcv.conf`。

**變更 PAM 服務**

1. 做為根目錄，導覽至 `/etc/pam.d` 目錄並建立新的檔案，例如 `dcv-custom`。

1. 使用您偏好的文字編輯器編輯`dcv-custom`檔案。如需 PAM 服務檔案的語法，請參閱您的系統文件。

1. 導覽至 `/etc/dcv/`，然後使用您徧好的文字編輯器開啟 `dcv.conf`。

1. 在 `[authentication]` 區段中，找到 `pam-service` 參數。然後，將現有的服務名稱取代為新的 PAM 服務名稱。

   如果 `[authentication]`區段中沒有`pam-service`參數，請使用下列格式手動新增參數：

   ```
   [authentication]
   pam-service=service_name
   ```
**注意**  
PAM 服務名稱必須符合您在 中建立的檔案名稱`/etc/pam.d`。

1. 儲存並關閉檔案。

## 使用外部驗證器設定身分驗證
<a name="set-authentication-external"></a>

DCV 可設定為使用外部驗證器。如需此程序及其需求的詳細資訊，請參閱 [使用外部身分驗證](external-authentication.md)。

# 使用外部身分驗證
<a name="external-authentication"></a>

根據預設，Amazon DCV 用戶端身分驗證會委派給基礎作業系統。使用 Windows Amazon DCV 伺服器時，身分驗證會委派給 WinLogon。使用 Linux 和 macOS Amazon DCV 伺服器時，身分驗證會委派給 Linux PAM。

您可以設定 Amazon DCV 使用外部身分驗證伺服器來驗證用戶端。這可讓您使用現有的身分驗證系統。透過外部身分驗證，Amazon DCV 會利用您現有的登入機制，並將身分驗證委派給外部身分驗證伺服器。

外部身分驗證會驗證具有 DCV 伺服器存取權的使用者，以啟用工作階段建立的使用。除非您設定自己的外部身分驗證器，否則它不會像**系統**身分驗證一樣，針對基礎作業系統對使用者進行身分驗證。

[DCV Session Manager](https://docs.aws.amazon.com/dcv/latest/sm-admin/what-is-sm.html) 隨附內建的外部驗證器。若要使用此功能，您的 DCV 伺服器將需要使用 Session Manager 地址設定 [auth-token-verifier](https://docs.aws.amazon.com/dcv/latest/sm-admin/configure-dcv-server.html) 參數。

若要使用外部身分驗證伺服器，您必須備妥下列項目：
+ **登入機制** — 這是您的使用者用來登入的前端機制。它應該能夠使用您現有的登入資料驗證系統來驗證您的使用者，並且應該能夠產生字符並將其提供給 Amazon DCV 伺服器。如需詳細資訊，請參閱[使用字符](#using-token)。
+ **身分驗證伺服器 **- 這是驗證登入機制產生字符的伺服器。此伺服器應該能夠從 Amazon DCV 伺服器接收 HTTP(S) POST 請求，其中包含權杖、執行必要的身分驗證，然後將回應傳回 Amazon DCV 伺服器。如需實作身分驗證伺服器的詳細資訊，請參閱 [身分驗證服務需求](#configure-authenticator)。
+ **Amazon DCV Server 組態**—Amazon DCV 伺服器必須設定為使用外部身分驗證伺服器。如需詳細資訊，請參閱[Amazon DCV 伺服器組態](#configure-server)。

**Topics**
+ [Amazon DCV 伺服器組態](#configure-server)
+ [使用字符](#using-token)
+ [身分驗證服務需求](#configure-authenticator)

## Amazon DCV 伺服器組態
<a name="configure-server"></a>

您必須設定 Amazon DCV 伺服器以使用外部身分驗證服務。

------
#### [ Windows Amazon DCV server ]

**在 Windows 上指定外部身分驗證伺服器**

1. 開啟 Windows 登錄編輯程式。

1. 導覽至 **HKEY\$1USERS\$1S-1-5-18\$1Software\$1GSettings\$1com\$1nicesoftware\$1dcv\$1** 金鑰。

1. 在安全參數中尋找 **auth-token-verifier** 參數。 [`security` 參數](config-param-ref.md#security)

1. 執行以下任意一項：
   + 對於**值資料**，輸入外部身分驗證伺服器的 URL 和要通訊的連接埠，格式如下：`url:port`。  
**Example**  

     例如，如果您使用的是 DcvSimpleExternalAuthenticator，請指定下列項目：`http://127.0.0.1:8444`。
   + 如果安全區段中沒有 **auth-token-verifier** 參數，請在 PowerShell 中新增它。請參閱[修改組態參數](https://docs.aws.amazon.com/dcv/latest/adminguide/config-param-ref-modify.html)。

1. 關閉 Windows 登錄編輯程式。

1. [停止](manage-stop.md)並[重新啟動](manage-start.md) Amazon DCV 伺服器。

------
#### [ Linux Amazon DCV server ]

**在 Linux 上指定外部身分驗證伺服器**

1. 導覽至 `/etc/dcv/`，然後使用您徧好的文字編輯器開啟 `dcv.conf`。

1. 在 `[security]`區段中尋找 `auth-token-verifier` 參數，並以外部身分驗證伺服器的 URL 和要通訊的連接埠取代現有值，格式如下：`url:port`。例如，如果您使用的是 DcvSimpleExternalAuthenticator，請指定下列項目：`http://127.0.0.1:8444`。

   如果 `auth-token-verifier` 區段中沒有 `[security]` 參數，請使用下列格式新增此參數：

   ```
   [security] auth-token-verifier=url:port
   ```

1. 儲存並關閉檔案。

------
#### [ macOS Amazon DCV server ]

**在 macOS 上指定外部身分驗證伺服器**

1. 導覽至 `/etc/dcv/`，然後使用您徧好的文字編輯器開啟 `dcv.conf`。

1. 在 `[security]`區段中尋找 `auth-token-verifier` 參數，並以外部身分驗證伺服器的 URL 和要通訊的連接埠取代現有值，格式如下：`url:port`。例如，如果您使用的是 DcvSimpleExternalAuthenticator，請指定下列項目：`http://127.0.0.1:8444`。

   如果 `auth-token-verifier` 區段中沒有 `[security]` 參數，請使用下列格式新增此參數：

   ```
   [security] auth-token-verifier=url:port
   ```

1. 儲存並關閉檔案。

------

## 使用字符
<a name="using-token"></a>

產生字符後，您必須能夠將其傳送至 Amazon DCV 伺服器。使用 Web 瀏覽器用戶端，將字符附加到連線 URL，如下所示：

```
https://server_hostname_or_IP:port/?authToken=token#session_id
```

例如：

```
https://my-dcv-server.com:8443/?authToken=1234567890abcdef#my-session
```

## 身分驗證服務需求
<a name="configure-authenticator"></a>

您的自訂身分驗證服務可以在 Amazon DCV 伺服器的相同主機上執行，也可以在個別主機上執行。身分驗證服務必須接聽來自 Amazon DCV 伺服器的 HTTP(S) POST 請求。

以下顯示 Amazon DCV 伺服器使用的 POST 請求格式。

```
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
sessionId=session_id&authenticationToken=token&clientAddress=client_address
```

您的身分驗證服務負責判斷提供的字符是否有效。

驗證字符之後，身分驗證伺服器必須將回應傳回 Amazon DCV 伺服器。回應內文必須包含下列其中一項，視身分驗證程序的結果而定：
+ 如果身分驗證成功，身分驗證服務會傳回 的結果`yes`和使用者識別符。例如：

  ```
  <auth result="yes"><username>username</username></auth>
  ```
+ 如果身分驗證失敗，身分驗證服務會傳回 的結果`no`。例如：

  ```
  <auth result="no"><message>message</message></auth>
  ```

### DcvSimpleExternalAuthenticator
<a name="simple-auth"></a>

Amazon DCV 隨附名為 的參考外部身分驗證伺服器`DcvSimpleExternalAuthenticator`。DcvSimpleExternalAuthenticator 是單一 Python 指令碼，您可以使用起點來建立自己的自訂身分驗證伺服器。

DcvSimpleExternalAuthenticator 伺服器支援 HTTP 和 HTTPS，且必須在安裝 Amazon DCV 伺服器的相同伺服器上執行。根據預設，DcvSimpleExternalAuthenticator 會接聽連接埠 上的請求`8444`。如有需要，您可以變更連接埠。若要這樣做，`/etc/dcv/simpleextauth.conf`請使用您偏好的文字編輯器開啟 ，找到 `EXTAUTH_PORT` 參數，並將現有值取代為所需的連接埠號碼。

若要使用 DcvSimpleExternalAuthenticator，您必須安裝 `nice-dcv-simple-external-authenticator`套件。如需詳細資訊，請參閱[安裝 Amazon DCV 伺服器](setting-up-installing-linux-server.md#linux-server-install)。

### 使用簡易外部驗證器
<a name="usage"></a>



1. 導覽至您的身分驗證目錄。

   `sudo mkdir -p /var/run/dcvsimpleextauth`

1. 產生您的身分驗證字符。  
**Example**  

   在此範例中， `123456`是範例驗證器字符， `session-123`是範例工作階段 ID， `username`是使用者。

   `echo "123456" | sudo dcvsimpleextauth add-user --session session-123 --auth-dir /var/run/dcvsimpleextauth/ --user username --append` 

1. 啟動您的伺服器。

   `sudo dcvsimpleextauth --port 8444 --auth-dir /var/run/dcvsimpleextauth/ start-server`

1. 伺服器執行後，請測試組態以進行驗證。  
**Example**  

   再次使用此範例，測試將執行如下：

   `curl -k http://localhost:8444 -d sessionId=session-123 -d authenticationToken=123456`

   如果成功，您將收到 的身分驗證結果`yes`。