

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 외부 인증 사용
<a name="external-authentication"></a>

기본적으로 Amazon DCV 클라이언트 인증이 기본 운영 체제에 위임됩니다. Windows Amazon DCV 서버를 사용하면 인증이 WinLogon에 위임됩니다. Linux 및 macOS Amazon DCV 서버를 사용하면 인증이 Linux PAM에 위임됩니다.

외부 인증 서버를 사용하여 클라이언트를 인증하도록 Amazon DCV를 구성할 수 있습니다. 이렇게 하면 기존 인증 시스템을 사용할 수 있습니다. Amazon DCV는 외부 인증을 통해 기존 로그인 메커니즘을 활용하여 외부 인증 서버에 인증을 위임합니다.

외부 인증은 DCV 서버 액세스 권한이 있는 사용자를 인증하여 세션 생성을 사용할 수 있도록 합니다. 자체 외부 인증자를 직접 설정하지 않는 한 **시스템** 인증처럼 기본 OS에 대해 사용자를 인증하지 않습니다.

[DCV Session Manager](https://docs.aws.amazon.com/dcv/latest/sm-admin/what-is-sm.html)에는 외부 인증자가 내장되어 있습니다. 이 기능을 사용하려면 DCV 서버에서 [auth-token-verifier](https://docs.aws.amazon.com/dcv/latest/sm-admin/configure-dcv-server.html) 파라미터를 Session Manager 주소로 설정해야 합니다.

외부 인증자 서버를 사용하려면 다음을 갖추고 있어야 합니다.
+ **로그인 메커니즘** - 사용자가 로그인할 때 사용하는 프론트엔드 메커니즘입니다. 기존의 자격 증명 확인 시스템을 사용하여 사용자를 확인할 수 있어야 하며 토큰을 생성하여 Amazon DCV 서버에 제공할 수 있어야 합니다. 자세한 내용은 [토큰 사용](#using-token) 단원을 참조하십시오.
+ **인증 서버** - 로그인 메커니즘으로 생성된 토큰을 인증하는 서버입니다. 이 서버는 토큰이 포함된 Amazon DCV 서버로부터 HTTP(S) POST 요청을 수신하고 필요한 인증을 수행한 다음, Amazon DCV 서버로 응답을 다시 보낼 수 있어야 합니다. 인증 서버를 구현하는 방법에 대한 자세한 내용은 [인증 서비스 요구 사항](#configure-authenticator) 섹션을 참조하세요.
+ **Amazon DCV 서버 구성** - 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. [security 파라미터](config-param-ref.md#security)에서 **auth-token-verifier** 파라미터를 찾습니다.

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. Amazon DCV 서버를 [중지](manage-stop.md)하고 [다시 시작](manage-start.md)합니다.

------
#### [ 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 서버로 보낼 수 있어야 합니다. 웹 브라우저 클라이언트를 사용하여 다음과 같이 연결 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`를 받게 됩니다.