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

Tableau 2023.3.2부터 OAuth 2.0/OIDC를 사용하여 외부 ID 공급자의 ID를 Amazon Redshift에 페더레이션할 수 있습니다.

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

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

Redshift에 인증을 구현하는 자세한 예는 'AWS IAM 아이덴티티 센터를 사용하여 Tableau 및 Okta를 Amazon Redshift와 통합(영문)(링크가 새 창에서 열림)' 및 'AWS IAM 아이덴티티 센터를 사용하여 Tableau와 Microsoft Entra ID를 Amazon Redshift와 통합(링크가 새 창에서 열림)'을 참조하십시오.

1단계: 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. 데스크톱 호스트의 각 응용 프로그램과 연결된 OAuthConfigs 폴더(Tableau Desktop, Tableau Prep Builder, Tableau Bridge)와 OAuth를 사용할 각 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에 액세스 토큰 및 새로 고침 토큰이 수신됩니다. 인증을 위해 드라이버에 액세스 토큰을 보냅니다.

토큰

기본적으로 IAM IDC에 대한 Redshift OAuth는 액세스 토큰을 드라이버에 전달합니다. Tableau Bridge를 사용하는 고객을 포함하여 온프레미스 고객의 경우 대신 TDC 파일을 사용하여 ID 토큰을 전달할 수 있습니다.

<connection-customization class='redshift' enabled='true' version='10.0'>
	<vendor name='redshift' />
	<driver name='redshift' />
	<customizations>
		<customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/>
	</customizations>
</connection-customization>

.tdc 파일 구성 및 설치에 대한 자세한 내용은 연결 사용자 지정 및 조정(링크가 새 창에서 열림)Tableau Server에서 .tdc 파일 사용(링크가 새 창에서 열림)을 참조하십시오.

Okta

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

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

드라이버 업데이트

IAM IDC 서비스를 사용하는 Redshift OAuth의 경우, 최소 2.x 버전의 ODBC 드라이버를 사용해야 합니다. https://github.com/aws/amazon-redshift-odbc-driver/tags(링크가 새 창에서 열림)에서 Redshift ODBC 드라이버의 최신 버전을 다운로드하십시오. 참고로, OSX용 v2 드라이버는 아직 없습니다.

Redshift IAM IDC OAuth 문제 해결

오류를 진단하는 가장 좋은 방법은 Tableau를 제거하는 것입니다. 대신 드라이버 관리자 또는 유사한 도구를 사용하여 테스트할 수 있습니다. 이 테스트는 문제 해결을 위한 것이므로 이 기능을 일상적으로 사용할 때는 DSN 또는 '기타 ODBC' 커넥터를 사용해서는 안 됩니다. 유효한 테스트를 보장하기 위해, 클러스터 정보, 데이터베이스, 토큰 및 네임스페이스를 제외한 매개 변수는 아래와 같아야 합니다.

첫 번째 연결 시 드라이버에서 유효하지 않거나 만료된 토큰에 대한 오류 메시지가 표시되면(오류 메시지에 [28000] 또는 [08001]과 같은 SQLState 오류 코드가 표시됨) Tableau에서 OAuth 흐름이 성공적으로 완료되었고 드라이버에서 실패한 것입니다. 이는 AWS 측이나 IDP 측의 구성이 잘못되었음을 의미합니다. 또한 드라이버에서 반환되는 사용 권한 또는 권한 부여 오류가 있을 수도 있으며, 이는 또한 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 드라이버 관리자를 사용할 수 있습니다. Linux에서는 Tableau Server의 customer-bin 폴더에 포함된 isql 명령줄 도구를 사용할 수 있습니다.

다른 플러그인은 서버 환경에서 작동하지 않을 수 있으므로 테스트에 사용하지 않는 것이 좋습니다. 고정된 AWS 프로필을 사용하거나 브라우저에 직접 액세스해야 합니다.

다음은 Windows에서 ODBC 드라이버 관리자를 사용하는 예입니다.

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