Amazon Redshift IAM 아이덴티티 센터 OAuth 설정

온프레미스(Tableau Desktop, Tableau Server 및 Tableau Prep)의 경우 Tableau 2023.3.2부터, Tableau Cloud의 경우 2024년 3월 말부터 OAuth 2.0/OIDC를 사용하여 외부 ID 공급자의 ID를 Amazon Redshift에 페더레이션할 수 있습니다.

참고: 이 기능은 드라이버 제한 사항으로 인해 OSX에서는 사용할 수 없습니다.

이 지침은 최신 AWS IAM IDC 서비스에 적용됩니다. 기존 IAM 통합에 대해서는 Amazon Redshift IAM OAuth 설정을 참조하십시오.

ID 공급자에 따라 통합을 구성하는 데 여러 단계가 필요할 수 있습니다. 다음은 개요 수준의 정보입니다. Tableau는 AWS 또는 IDP를 구성하는 방법에 대한 자세한 지침을 제공할 수 없지만 일반적인 접근 방식은 다음과 같습니다.

IdP 구성

  1. Tableau Desktop용 IDP 및 Tableau Server 또는 Tableau Cloud에서 OAuth 클라이언트를 만듭니다. Desktop 클라이언트에는 PKCE 활성화가 필요하고 http://localhost 리디렉션을 사용해야 합니다.

  2. 권한 부여에 사용할 필수 사용자 지정 클레임을 역할에 추가합니다.

  3. Tableau OAuth 구성 파일을 만듭니다. GitHub(링크가 새 창에서 열림)의 설명서와 예시(링크가 새 창에서 열림)를 참조하십시오. 다른 IDP의 사례도 유용합니다.

    1. Tableau OAuth 구성 ID 앞에 'custom_'을 붙여야 합니다.

    2. IDP가 동적 localhost 포트를 지원하는 경우 OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL을 사용하지 않도록 설정합니다. 지원하지 않는 경우 구성 파일과 IDP의 허용 목록에 여러 localhost 콜백 URL을 추가해야 합니다.

  4. 데스크톱 컴퓨터 및 Tableau Server 또는 Tableau Cloud 사이트에 Tableau OAuth 구성 파일을 설치합니다.

2단계: AWS에서 IDP 및 역할 구성

이에 대한 자세한 내용은 AWS 설명서를 참조하십시오.

3단계: Redshift에 연결

  1. Redshift에 연결합니다.

  2. Authentication(인증)으로 OAuth를 선택합니다.

  3. Federation Type(페더레이션 유형)으로 Identity Center(아이덴티티 센터)를 선택합니다.

  4. (선택 사항) 필요한 경우 Identity Center Namespace(아이덴티티 센터 네임스페이스)를 지정합니다.

올바로 구성되면 Tableau에 대해 토큰을 인증하고 권한을 부여할 수 있도록 IDP로 리디렉션됩니다. Tableau에 액세스 토큰 및 새로 고침 토큰이 수신됩니다. 인증을 위해 드라이버에 액세스 토큰을 보냅니다.

Okta

Okta를 사용하는 경우 '조직 권한 부여 서버'를 사용하는 대신에 '사용자 지정 권한 부여 서버'를 사용하는 것이 더 좋습니다. 사용자 지정 권한 부여 서버가 더 유연합니다. 사용자 지정 권한 부여 서버는 기본적으로 생성되며 '기본값'이라고 합니다. 권한 부여 URL은 다음과 같이 표시됩니다.

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

드라이버 업데이트

IAM IDC 서비스를 사용하는 Redshift OAuth의 경우 버전 2.0.1.0 이상의 Redshift ODBC 드라이버를 사용해야 하며, 이 드라이버는 https://github.com/aws/amazon-redshift-odbc-driver/tags(링크가 새 창에서 열림)에서 다운로드할 수 있습니다. 참고로, OSX용 v2 드라이버는 없습니다.

Redshift IAM IDC OAuth 문제 해결

첫 번째 연결 시 드라이버에서 유효하지 않거나 만료된 토큰에 대한 오류 메시지가 표시되면(오류 메시지에 [28000] 또는 [08001]과 같은 SQLState 오류 코드가 표시됨) Tableau에서 OAuth 흐름이 성공적으로 완료되었고 드라이버에서 실패한 것입니다. 이는 AWS 측이나 IDP 측의 구성이 잘못되었음을 의미합니다. 또한 드라이버에서 반환되는 사용 권한 또는 권한 부여 오류가 있을 수도 있으며, 이는 또한 Tableau에서 제어할 수 없는 부분입니다.

이러한 오류를 진단하는 가장 좋은 방법은 Tableau를 제거하는 것입니다. 먼저 드라이버에 보낼 액세스 토큰(IAM IDC의 기본값) 또는 액세스 토큰(사용자 지정한 경우)을 가져와야 합니다.

Okta를 예로 들면 다음과 같습니다. 이를 수행하는 방법은 거의 모든 IDP에서 매우 유사합니다. 이 방식을 사용하려면 리소스 소유자 비밀번호 부여 유형을 사용하도록 설정해야 합니다. IDP URL, 클라이언트 암호, 클라이언트 ID, 사용자 이름 및 비밀번호를 입력하십시오.

curl -X POST "https://OKTA_URL/v1/token" \
-H 'accept: application/json' \
-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=USER&password=PASSWORD&scope=openid"

토큰이 있으면 DSN을 사용하여 테스트할 수 있습니다. 다음은 Windows에서 ODBC 드라이버 관리자를 사용하는 예입니다. Mac에서는 iODBC 드라이버 관리자 UI를 사용할 수 있습니다. Linux에서는 Tableau Server의 customer-bin 폴더에 포함된 isql 명령줄 도구를 사용할 수 있습니다.

피드백을 제공해 주셔서 감사합니다!귀하의 피드백이 제출되었습니다. 감사합니다!