Auth0 및를 사용하여 Amazon WorkSpaces에 대한 SAML 2.0 인증 구현 Auth0 AWS Managed Microsoft AD - 권장 가이드

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

Auth0 및를 사용하여 Amazon WorkSpaces에 대한 SAML 2.0 인증 구현 Auth0 AWS Managed Microsoft AD

Siva Vinnakota 및 Shantanu Padhye, Amazon Web Services

요약

이 패턴은 Auth0 AWS Directory Service for Microsoft Active Directory 을와 통합하여 Amazon WorkSpaces 환경을 위한 강력한 SAML 2.0 인증 솔루션을 생성하는 방법을 살펴봅니다. 이를 통해 원활한 데스크톱 액세스를 유지하면서 다중 인증(MFA) 및 사용자 지정 로그인 흐름과 같은 고급 기능을 활성화 AWS 서비스 하기 위해 이들 간에 페더레이션을 설정하는 방법을 설명합니다 AWS Managed Microsoft AD. 소수의 사용자만 관리하든 수천 명만 관리하든이 통합은 조직에 유연성과 보안을 제공하는 데 도움이 됩니다. 이 패턴은 설정 프로세스의 단계를 제공하므로 자체 환경에서이 솔루션을 구현할 수 있습니다.

사전 조건 및 제한 사항

사전 조건

  • 활성 AWS 계정

  • AWS Managed Microsoft AD

  • 와 연결된 Amazon WorkSpaces Personal의 프로비저닝된 데스크톱 AWS Managed Microsoft AD

  • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스

  • Auth0 계정

제한 사항

일부 AWS 서비스 는 전혀 사용할 수 없습니다 AWS 리전. 리전 가용성은 AWS 서비스 리전별 섹션을 참조하세요. 특정 엔드포인트는 서비스 엔드포인트 및 할당량 페이지를 참조하고 서비스 링크를 선택합니다.

아키텍처

WorkSpaces 클라이언트 애플리케이션에 대한 SAML 2.0 인증 프로세스는 다음 다이어그램에 설명된 5단계로 구성됩니다. 이 단계는 로그인을 위한 일반적인 워크플로를 나타냅니다. 이 패턴의 지침을 따른 후 인증에이 분산 접근 방식을 사용하여 사용자 액세스를 위한 구조화되고 안전한 방법을 제공할 수 있습니다.

WorkSpaces 클라이언트 애플리케이션의 SAML 2.0 인증 프로세스를 위한 워크플로입니다.

워크플로:

  1. 등록. 사용자는 WorkSpaces용 클라이언트 애플리케이션을 시작하고 SAML 지원 WorkSpaces 디렉터리의 WorkSpaces 등록 코드를 입력합니다. WorkSpaces는 클라이언트 애플리케이션에 Auth0 ID 제공업체(IdP) URL을 반환합니다.

  2. 로그인. WorkSpaces 클라이언트는 Auth0 URL을 사용하여 사용자의 웹 브라우저로 리디렉션합니다.  사용자는 사용자 이름과 암호로 인증합니다. Auth0은 클라이언트 브라우저에 SAML 어설션을 반환합니다. SAML 어설션은 사용자의 자격 증명을 어설션하는 암호화된 토큰입니다.

  3. 인증. 클라이언트 브라우저는 SAML 어설션을 AWS 로그인 엔드포인트에 게시하여 검증합니다.는 호출자가 AWS Identity and Access Management (IAM) 역할을 수임하도록 AWS 로그인 허용합니다. 그러면 IAM 역할에 대한 임시 자격 증명이 포함된 토큰이 반환됩니다.

  4. WorkSpaces 로그인. WorkSpaces 클라이언트는 WorkSpaces 서비스 엔드포인트에 토큰을 제공합니다. WorkSpaces는 토큰을 세션 토큰과 교환하고 로그인 URL을 사용하여 세션 토큰을 WorkSpaces 클라이언트에 반환합니다. WorkSpaces 클라이언트가 로그인 페이지를 로드할 때 사용자 이름 값은 SAML 응답에 전달된 NameId 값으로 채워집니다.

  5. 스트리밍. 사용자가 암호를 입력하고 WorkSpaces 디렉터리에 대해 인증합니다. 인증 후 WorkSpaces는 클라이언트에 토큰을 반환합니다. 클라이언트는 WorkSpaces 서비스로 다시 리디렉션되고 토큰을 표시합니다. 이렇게 하면 WorkSpaces 클라이언트와 WorkSpace 간에 스트리밍 세션이 브로커링됩니다.

참고

암호 프롬프트가 필요하지 않은 원활한 Single Sign-On 환경을 설정하려면 WorkSpaces 설명서의 인증서 기반 인증 및 WorkSpaces PersonalWorkSpaces.

도구

AWS 서비스

  • Amazon WorkSpaces는 하드웨어를 조달 및 배포하거나 복잡한 소프트웨어를 설치할 필요 없이 사용자에게 클라우드 기반 데스크톱을 제공하는 완전 관리형 가상 데스크톱 인프라(VDI) 서비스입니다.

  • AWS Directory Service for Microsoft Active Directory를 사용하면 디렉터리 인식 워크로드 및 AWS 리소스가에서 Microsoft Active Directory를 사용할 수 있습니다 AWS 클라우드.

기타 도구

  • Auth0은 애플리케이션에 대한 액세스를 관리하는 데 도움이 되는 인증 및 권한 부여 플랫폼입니다.

에픽

작업설명필요한 기술

를 사용하여 Auth0에 Active Directory LDAP 커넥터를 설치합니다 AWS Managed Microsoft AD.

  1. Auth0 대시보드에 로그인하고 인증, 엔터프라이즈, Active Directory/LDAP를 선택합니다. 연결 생성을 선택합니다.

  2. Active Directory 연결의 이름을 입력한 다음 생성을 선택합니다.

  3. 설정 탭에서 운영 체제의 에이전트를 다운로드합니다.

    설치가 완료되면 기본 브라우저에 티켓 URL에 대한 프롬프트가 표시됩니다.

  4. 연결 문자열에 고유한 프로비저닝 티켓 URL을 입력한 다음 계속을 선택합니다.

  5. AD LDAP 구성 대화 상자의 사용자 이름암호에 관리자 자격 증명을 입력한 다음 저장을 선택합니다.

    Auth0에 대한 연결이 설정되면 모든 검사에 대해 보고 상태가 OK인 구성 로그가 표시됩니다.

클라우드 관리자, 클라우드 아키텍트

Auth0에서 애플리케이션을 생성하여 SAML 메타데이터 매니페스트 파일을 생성합니다.

  1. Auth0 설명서의 지침에 따라 Auth0 대시보드에 로그인하고 새 애플리케이션을 생성합니다.

  2. Auth0 대시보드에서 구성 설정에 액세스할 애플리케이션 이름을 선택합니다. AddOns 탭에서 SAML2 웹 앱을 선택합니다.

  3. 추가 기능의 설정 탭에서 애플리케이션 콜백 URLhttps://signin.aws.amazon.com/saml 입력합니다. 여기에서 SAML 토큰이 POST 요청을 보냅니다.

  4. 설정 탭의 설정 상자에 다음 SAML 구성 코드를 JSON 형식으로 붙여 넣습니다.

    { "audience": "https://signin.aws.amazon.com/saml", "mappings": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sAMAccountName", "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" }, "createUpnClaim": false, "passthroughClaimsWithNoMapping": false, "mapUnknownClaimsAsIs": false, "mapIdentities": false, "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "nameIdentifierProbes": [ "http://schemas.auth0.com/sAMAccountName" ] }
  5. 저장한 다음 활성화를 선택합니다.

  6. 사용 탭을 선택하고 자격 증명 공급자의 메타데이터 매니페스트 파일을 다운로드합니다. 이 정보는 다음 단계에 필요합니다.

  7. SAML2 웹 앱 창을 닫습니다.

  8. 애플리케이션 화면에서 연결을 선택합니다. 엔터프라이즈에서 올바른 Active Directory/LDAP 커넥터를 선택하고 활성화합니다.

클라우드 관리자, 클라우드 아키텍트
작업설명필요한 기술

IAM에서 SAML 2.0 IdP를 생성합니다.

SAML 2.0을 IdP로 설정하려면 IAM 설명서의 IAM에서 SAML 자격 증명 공급자 생성에 설명된 단계를 따르세요.

클라우드 관리자

SAML 2.0 페더레이션을 위한 IAM 역할 및 정책을 생성합니다.

  1. SAML 2.0 페더레이션을 위한 IAM 역할을 생성합니다. 지침은 WorkSpaces 설명서의 WorkSpaces Personal용 SAML 2.0 설정 지침의 2단계를 참조하세요. WorkSpaces

  2. IAM 정책을 생성하고 이전 단계에서 생성한 역할과 연결합니다. 지침은 WorkSpaces 설명서의 WorkSpaces Personal용 SAML 2.0 설정 지침의 3단계를 참조하세요. WorkSpaces

클라우드 관리자
작업설명필요한 기술

Auth0 및 SAML 어설션을 구성합니다.

Auth0 작업을 사용하여 SAML 2.0 응답에서 어설션을 구성할 수 있습니다. SAML 어설션은 사용자의 자격 증명을 어설션하는 암호화된 토큰입니다.

  1. Auth0 대시보드에 로그인합니다. 작업, 라이브러리, 작업 생성, 처음부터 빌드를 선택합니다.

  2. 다음 값을 입력한 다음 생성을 선택합니다.

    이름: 작업의 이름 지정

    트리거: 로그인/로그인 후 선택

    런타임: 노드 18 선택

  3. 다음 화면에서 다음 코드를 입력합니다.

    exports.onExecutePostLogin = async (event, api) => { if (event.client.name === "Workspace_Saml") { const awsRole = 'arn:aws:iam::030784294031:role/Workspace_Auth0,arn:aws:iam::030784294031:saml-provider/Auth0'; const awsRoleSession = event.user.sAMAccountName; const email = event.user.emails[0]; api.samlResponse.setDestination('https://signin.aws.amazon.com/saml'); api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/Role', awsRole) api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/RoleSessionName', awsRoleSession) api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email', email) } return; };
  4. 배포(Deploy)를 선택합니다.

이렇게 하면 WorkSpaces Personal 데스크톱에 대한 SAML 2.0 인증 설정이 완료됩니다. 아키텍처 섹션에서는 설정 후 인증 프로세스를 보여줍니다.

클라우드 관리자

문제 해결

문제Solution

WorkSpaces의 SAML 2.0 인증 문제

WorkSpaces Personal에 대해 SAML 2.0 인증을 구현할 때 문제가 발생하면 SAML 2.0 인증 문제 해결에 대한 AWS re:Post 문서에 설명된 단계와 링크를 따르세요.

WorkSpaces에 액세스하는 동안 SAML 2.0 오류를 조사하는 방법에 대한 자세한 내용은 다음을 참조하세요.

관련 리소스