외부 인증 사용 - Amazon DCV

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

외부 인증 사용

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

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

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

DCV Session Manager에는 외부 인증자가 내장되어 있습니다. 이 기능을 사용하려면 DCV 서버가 Session Manager 주소로 auth-token-verifier 파라미터를 설정해야 합니다.

외부 인증자 서버를 사용하려면 다음을 갖추고 있어야 합니다.

  • 로그인 메커니즘 - 사용자가 로그인할 때 사용하는 프런트엔드 메커니즘입니다. 기존 자격 증명 확인 시스템을 사용하여 사용자를 확인할 수 있어야 하며 토큰을 생성하고 Amazon DCV 서버에 제공할 수 있어야 합니다. 자세한 내용은 토큰 사용 단원을 참조하십시오.

  • 인증 서버 - 로그인 메커니즘으로 생성된 토큰을 인증하는 서버입니다. 이 서버는 Amazon DCV 서버로부터 토큰이 포함된 HTTP(S) POST 요청을 수신하고 필요한 인증을 수행한 다음 응답을 Amazon DCV 서버로 다시 보낼 수 있어야 합니다. 인증 서버를 구현하는 방법에 대한 자세한 내용은 인증 서비스 요구 사항 섹션을 참조하세요.

  • Amazon DCV Server 구성 - 외부 인증 DCV 서버를 사용하도록 Amazon 서버를 구성해야 합니다. 자세한 내용은 Amazon DCV Server 구성 단원을 참조하십시오.

Amazon DCV Server 구성

외부 인증 서비스를 사용하도록 Amazon DCV 서버를 구성해야 합니다.

Linux Amazon DCV server
Linux에서 외부 인증 서버를 지정하려면 다음과 같이 하세요.
  1. /etc/dcv/로 이동하고 원하는 텍스트 편집기에서 dcv.conf를 엽니다.

  2. [security] 섹션에서 auth-token-verifier 파라미터를 찾고 기존 값을 URL의 외부 인증 서버 및 통신할 포트로 다음 형식으로 바꿉니다url:port. 예를 들어, 를 사용하는 경우 다음을 DcvSimpleExternalAuthenticator지정합니다http://127.0.0.1:8444.

    auth-token-verifier 섹션에 [security] 파라미터가 없는 경우, 다음 형식을 사용하여 수동으로 추가합니다.

    [security] auth-token-verifier=url:port
  3. 파일을 저장하고 닫습니다.

Windows Amazon DCV server
Windows에서 외부 인증 서버를 지정하려면 다음과 같이 하세요.
  1. Windows 레지스트리 편집기를 엽니다.

  2. HKEY_USERS/S-1-5-18/Software/GSettings/com/nicesoftware/dcv/ 키로 이동합니다.

  3. 보안 auth-token-verifier 파라미터 에서 파라미터를 찾습니다. security 파라미터

  4. 다음 중 하나를 수행합니다.

    • 값 데이터 URL에 외부 인증 서버의 와 통신할 포트를 의 형식으로 입력합니다url:port.

      예를 들어, 를 사용하는 경우 다음을 DcvSimpleExternalAuthenticator지정합니다http://127.0.0.1:8444.

    • 보안 섹션에 auth-token-verifier 파라미터가 없는 경우 에 추가합니다 PowerShell. 구성 파라미터 수정을 참조하세요.

  5. Windows 레지스트리 편집기를 닫습니다.

  6. Amazon DCV 서버를 중지하고 다시 시작합니다.

토큰 사용

토큰을 생성한 후에는 Amazon DCV 서버로 전송할 수 있어야 합니다. 웹 브라우저 클라이언트를 사용하여 다음과 URL 같이 연결에 토큰을 추가합니다.

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

예:

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

인증 서비스 요구 사항

사용자 지정 인증 서비스는 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

Amazon은 라는 참조 외부 인증 서버와 함께 DCV 배송됩니다DcvSimpleExternalAuthenticator. DcvSimpleExternalAuthenticator 는 자체 사용자 지정 인증 서버를 생성하는 데 시작점을 사용할 수 있는 단일 Python 스크립트입니다.

DcvSimpleExternalAuthenticator 서버는 HTTP 및 를 지원HTTPS하며 Amazon 서버가 설치된 동일한 DCV 서버에서 실행되어야 합니다. 기본적으로 는 포트 의 요청을 DcvSimpleExternalAuthenticator 수신합니다8444. 필요한 경우 포트를 변경할 수 있습니다. 이렇게 하려면 원하는 텍스트 편집기로 /etc/dcv/simpleextauth.conf를 열고 EXTAUTH_PORT 파라미터를 찾은 다음 기존 값을 필요한 포트 번호로 바꾸세요.

를 사용하려면 nice-dcv-simple-external-authenticator 패키지를 설치 DcvSimpleExternalAuthenticator해야 합니다. 자세한 내용은 Amazon DCV Server 설치 단원을 참조하십시오.

단순 외부 인증자 사용

  1. 인증 디렉터리로 이동합니다.

    sudo mkdir -p /var/run/dcvsimpleextauth

  2. 인증 토큰을 생성합니다.

    이 예제에서 123456은 샘플 인증자 토큰, session-123은 샘플 세션 ID, 는 username은 사용자입니다.

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

  3. 서버를 시작합니다.

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

  4. 서버가 실행되면 구성을 테스트하여 유효성을 검사합니다.

    다시 한 번 이 예제를 사용하면 다음과 같이 테스트가 실행됩니다.

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

    테스트에 성공하면 인증 결과로 yes를 받게 됩니다.