OAuth 클라이언트 생성 및 관리
OAuth는 권한 부여 및 위임을 위한 보안 프로토콜입니다. 이를 통해 타사 응용 프로그램이 최종 사용자 자격 증명을 공개하지 않고도 API 리소스에 액세스할 수 있습니다. OAuth 클라이언트는 권한 부여 코드를 요청하고, 이를 액세스 토큰으로 교환하며, 토큰을 사용하여 API를 통해 Qlik Cloud 콘텐츠에 액세스합니다.
OAuth 클라이언트 유형
OAuth 클라이언트는 사용자를 대신하여 Qlik Cloud의 리소스에 대한 액세스를 요청하는 웹 응용 프로그램 또는 소프트웨어입니다. OAuth는 응용 프로그램(클라이언트)과 권한 부여 서버(Qlik Cloud) 간의 권한 부여를 보호하기 위해 공용 클라이언트와 기밀 클라이언트라는 두 가지 클라이언트 유형을 정의합니다.
Qlik Cloud는 기존 웹(서버 측) 응용 프로그램을 위한 기밀 클라이언트와 특정 권한 부여 흐름을 사용하는 네이티브 및 단일 페이지 응용 프로그램을 위한 공용 클라이언트를 지원합니다.
클라이언트 유형에 대한 공식 OAuth 2.0 사양은 RFC 6749 Section 2.1: OAuth 2.0 Client Types를 참조하십시오.
공용 클라이언트
공용 클라이언트는 필요한 자격 증명의 기밀성을 유지할 수 없기 때문에 클라이언트 암호를 사용하지 않는 응용 프로그램입니다. Qlik Cloud에서 여기에는 내장된 분석이 있는 단일 페이지 응용 프로그램(SPA)과 같은 프런트엔드 응용 프로그램이나 사용자 인증이 필요한 Qlik Sense의 사용자 지정 시각화 확장이 포함됩니다.
기밀 클라이언트
기밀 클라이언트는 클라이언트 ID와 클라이언트 암호를 안전하게 저장하고 이를 사용하여 권한 부여 서버에서 인증할 수 있습니다. 이러한 클라이언트는 클라이언트 암호를 소유하고 있으므로 보호된 리소스에 액세스할 수 있습니다.
예: 사용자 액세스를 관리하거나 데이터 새로 고침 작업을 오케스트레이션하기 위해 Qlik Cloud API와 상호 작용하는 안전한 백엔드가 있는 웹 응용 프로그램.
OAuth 권한 부여 흐름
Qlik는 두 가지 권한 부여 흐름(부여 유형)을 지원합니다.
-
권한 부여 코드 흐름: 기밀 클라이언트용.
-
PKCE(Proof Key for Code Exchange)를 사용한 권한 부여 코드 흐름: 공용 클라이언트용.
권한 부여 코드 흐름
이 흐름은 소스 코드가 공개적으로 노출되지 않는 서버 측 응용 프로그램에서 사용됩니다. 여기에는 권한 부여 코드를 액세스 토큰으로 교환하는 작업이 포함되며, 인증에 클라이언트 암호가 사용됩니다. 토큰 교환 중에 클라이언트 암호가 권한 부여 서버로 전달되므로 이 흐름을 사용하는 웹 응용 프로그램은 서버 측이어야 합니다.
권한 부여 코드 흐름에 대한 자세한 내용은 공식 OAuth 2.0 설명서인 Authorization Code Flow를 참조하십시오.
PKCE를 사용한 권한 부여 코드 흐름
네이티브 및 단일 페이지 응용 프로그램은 소스 코드를 디컴파일하거나 브라우저에서 검사할 수 있으므로 클라이언트 암호를 안전하게 저장할 수 없습니다. PKCE는 액세스 토큰을 얻기 위해 코드 검증기의 사용을 요구하여 보안을 강화합니다.
PKCE를 사용한 권한 부여에 대한 자세한 내용은 공식 OAuth 2.0 설명서인 Authorization Code Flow with Proof Key for Code Exchange (PKCE)를 참조하십시오.
OAuth 범위 및 권한
OAuth 범위는 OAuth 클라이언트 응용 프로그램에 부여되는 액세스 수준을 정의합니다. 예를 들어, 액세스 토큰은 리소스에 대한 전체 액세스를 허용하거나 읽기 전용 액세스로 제한할 수 있습니다. Qlik Cloud에서 범위는 사용 가능한 기능 및 리소스에 대한 클라이언트 액세스를 제어합니다. 범위가 없으면 클라이언트는 어떤 리소스에도 액세스할 수 없습니다.
API 자격 증명은 Qlik Cloud에 대한 직접적인 프로그래밍 방식의 액세스를 제공하며 사용자 인터페이스에서 사용할 수 있는 워크플로에만 국한되지 않습니다. 최소 권한의 원칙을 사용하여 역할 및 OAuth 범위를 할당합니다. 관리자 자격 증명과 동일한 수준의 주의를 기울여 서비스 계정 및 API 자격 증명을 취급하십시오. 자세한 내용은 API 액세스 제어 및 신뢰 경계를 참조하십시오.
사용 가능한 OAuth 범위
이 표에는 사용 가능한 범위와 관련 권한이 나열되어 있습니다.
OAuth 클라이언트 생성
테넌트 관리자는 OAuth 페이지의 관리 활동 센터에서 OAuth 클라이언트를 관리합니다. OAuth 클라이언트를 사용하면 클라이언트 응용 프로그램을 Qlik Cloud와 통합하여 리소스에 안전하게 액세스할 수 있습니다.
OAuth 클라이언트 제한
다음 제한이 적용됩니다.
-
클라이언트당 최대 5개의 리디렉션 URL.
-
클라이언트당 최대 5개의 허용된 원본.
-
클라이언트당 최대 5개의 클라이언트 암호.
-
테넌트당 최대 200개의 OAuth 클라이언트.
OAuth 클라이언트 생성 단계
다음과 같이 하십시오.
-
관리 활동 센터에서 OAuth로 이동합니다.
-
새로 만들기를 클릭합니다.
-
클라이언트 유형을 선택합니다.
-
기밀 클라이언트의 경우 웹.
-
공용 클라이언트의 경우 단일 페이지 앱 또는 네이티브.
-
공용 클라이언트의 경우 익명 임베드.
-
-
대화 상자에서 OAuth 클라이언트의 이름을 입력합니다.
-
선택적으로 설명을 추가합니다.
-
스크롤하거나 검색 필드를 사용하여 사용 가능한 범위 중 하나를 선택합니다.
팁 메모모두 및 선택됨 버튼을 사용하여 모든 범위를 보거나 선택한 범위만 봅니다. -
OAuth 클라이언트 응용 프로그램에 대한 하나 이상의 리디렉션 URL을 입력합니다(최대 5개). 그런 다음 추가를 클릭하여 리디렉션 URL을 허용 목록에 추가합니다.
-
리디렉션 URL은 성공적으로 인증하고 클라이언트 응용 프로그램에 권한을 부여한 후 권한 부여 서버가 사용자의 브라우저를 보내는 곳입니다. 예를 들어 https://www.exampleapp.com/oauth/callback에서 /oauth/callback은 OAuth 공급자의 인증 콜백을 처리합니다.
-
Qlik Cloud는 URL이 리디렉션 URL의 허용 목록에 있는 경우에만 성공적인 권한 부여 후 사용자를 응용 프로그램으로 다시 리디렉션합니다.
-
도메인이 localhost가 아닌 한 URL은 https://로 시작해야 하며, 이 경우 http://로 시작할 수 있습니다. 네이티브 응용 프로그램은 응용 프로그램별 링크 형식(예: exampleapp://)을 사용할 수도 있습니다.
-
-
웹 또는 단일 페이지 앱 클라이언트 유형의 경우 하나 이상의 허용된 원본을 지정합니다(최대 5개).
-
URL이 허용된 원본 목록에 추가된 경우에만 응용 프로그램에 대한 액세스가 부여됩니다.
-
-
클라이언트 유형 웹의 경우 사용자 상호 작용 없이 자동화된 시스템 액세스를 위해 다음 옵션 중 하나를 활성화할 수 있습니다.
-
M2M(Machine-to-Machine) 허용: 사용자 개입 없이 시스템 간 통신을 활성화합니다.
-
M2M 사용자 가장 허용: 응용 프로그램이 사용자를 대신하여 인증하고 인증 프로세스 중에 사용자 역할을 할 수 있도록 허용합니다.
-
-
클라이언트 유형 웹의 경우 인증 방법에서 하나 또는 두 옵션을 모두 선택합니다.
-
클라이언트 암호(기본값)
-
개인 키 JWT, 공유 암호 대신 공개/개인 키 쌍을 사용하여 클라이언트를 인증하는 더 안전한 옵션입니다.
-
개인 키 JWT를 선택하면 공개 키 필드가 나타납니다. 타사 응용 프로그램의 공개 키를 JWK(JSON Web Key) 형식으로 입력합니다. 개인 키는 JWT에 서명하기 위해 응용 프로그램에 유지됩니다. 공개 키 형식에 대한 자세한 내용은 Qlik Developer Portal의 Create a public/private key pair for signing JWTs를 참조하십시오.
정보 메모공개 키는 ID 공급자의 요구 사항에 따라 다릅니다. 타사 응용 프로그램의 공개 키가 다른 형식인 경우 타사 도구를 사용하여 JWK로 변환하십시오.
-
-
-
만들기를 클릭합니다.
-
클립보드에 복사를 클릭하여 나중에 사용할 수 있도록 클라이언트 ID와 클라이언트 암호를 저장합니다. 클라이언트 암호를 안전하게 보관하십시오.
정보 메모공용 클라이언트에는 클라이언트 암호가 없습니다. -
완료를 클릭합니다.
특정 사용 사례를 위한 OAuth 클라이언트
OAuth 클라이언트 사용 사례에 대해서는 다음 리소스를 참조하십시오.
-
Qlik Developer Portal의 OAuth Overview: OAuth 사용 사례 및 다양한 OAuth 유형에 대한 개요.
-
Microsoft Office용 Qlik 추가 기능을 위한 OAuth 클라이언트 생성: Microsoft Excel용 Qlik 추가 기능 설치를 위한 OAuth 클라이언트를 설정합니다.
-
응용 프로그램 콘텐츠의 익명 임베드를 위한 OAuth 클라이언트 생성: 내장된 응용 프로그램 콘텐츠에 대한 익명 액세스를 활성화하기 위해 OAuth 클라이언트를 생성합니다.
Microsoft Office용 Qlik 추가 기능을 위한 OAuth 클라이언트 생성
Microsoft Office용 Qlik 추가 기능을 설치하려면 OAuth 클라이언트 구성이 필요합니다. 추가 기능은 보고서 개발자가 Qlik Cloud를 사용한 응용 프로그램 내 보고용 보고서 템플릿을 준비하는 데 사용됩니다.
추가 기능에서 OAuth가 작동하려면 OAuth 클라이언트가 아래 표시된 정확한 구성으로 구성되어야 합니다.
다음과 같이 하십시오.
-
관리 활동 센터의 Qlik Cloud에서 OAuth로 이동합니다.
-
새로 만들기를 클릭합니다.
-
클라이언트 유형 드롭다운 메뉴에서 단일 페이지 앱을 선택합니다. 더 많은 필드가 나타납니다.
-
이름을 삽입합니다. 설명은 선택 사항입니다.
-
최소한 user_default 범위를 포함하려면 확인란을 선택합니다. 구성에 다른 범위를 포함할 수 있지만 user_default가 없으면 설치가 작동하지 않습니다.
사용할 수 있는 각 범위에 대한 자세한 설명은 사용 가능한 OAuth 범위를 참조하십시오.
-
리디렉션 URL 추가 필드에 Qlik Cloud 테넌트의 URL과 이 고정 문자열을 차례로 삽입합니다: /office-add-ins/oAuthLoginSuccess.html
결과는 다음과 같아야 합니다. https://<tenant or alias hostname>.<region>.qlikcloud.com/office-add-ins/oAuthLoginSuccess.html 예시: http://example-company-123.us.qlikcloud.com/office-add-ins/oAuthLoginSuccess.html
-
추가를 클릭합니다.
-
허용된 원본 추가 필드에 테넌트 URL을 입력하고 추가를 클릭합니다.
-
만들기를 클릭합니다.
-
클라이언트 ID 복사 창이 나타납니다. 클라이언트 ID를 클립보드에 복사하도록 선택하거나 완료를 클릭하여 창을 닫을 수 있습니다.
OAuth 클라이언트를 만든 후, 관리 활동 센터에서 업데이트된 매니페스트 XML 링크를 가져옵니다. 설정 페이지로 이동하여 이메일 및 보고서 탭을 선택합니다. 공유 및 보고서 섹션에서 Microsoft Office용 Qlik 추가 기능을 선택합니다. 제공된 링크를 사용하여 추가 기능을 배포하고 설치합니다.
매니페스트 파일 생성 및 추가 기능 배포 및 설치에 대한 자세한 내용은 다음을 참조하십시오.
응용 프로그램 콘텐츠의 익명 임베드를 위한 OAuth 클라이언트 생성
qlik-embed를 사용하여 익명 액세스를 위한 응용 프로그램 콘텐츠를 임베드하려면 이 사용 사례를 위해 특별히 설계된 유형의 OAuth 클라이언트를 생성해야 합니다.
다음과 같이 하십시오.
-
관리 활동 센터에서 OAuth 섹션으로 이동합니다.
-
새로 만들기를 클릭합니다.
-
클라이언트 유형 드롭다운 메뉴에서 익명 임베드를 선택합니다.
-
OAuth 클라이언트의 이름과 선택적으로 설명을 입력합니다.
-
허용된 원본 아래에 권한을 부여해야 하는 각 원본을 입력합니다. 이들은 내장된 분석에 대한 정보를 검색하기 위해 Qlik Cloud 테넌트에 액세스할 도메인입니다.
각 URL을 삽입한 후 추가를 클릭합니다.
-
완료되면 만들기를 클릭합니다.
-
클립보드에 복사를 클릭하여 나중에 사용할 수 있도록 클라이언트 ID를 저장합니다. 응용 프로그램 콘텐츠가 qlik-embed와 함께 임베드될 때 필요합니다.
-
완료를 클릭합니다.
OAuth 클라이언트 편집
OAuth 클라이언트의 이름을 바꾸거나 설명을 업데이트하거나 리디렉션 URL을 관리할 수 있습니다.
다음과 같이 하십시오.
- 관리 활동 센터에서 OAuth로 이동합니다.
- 편집하려는 OAuth 클라이언트를 찾습니다.
-
를 클릭한 다음 편집을 선택합니다.
- 필요에 따라 OAuth 클라이언트 옵션을 수정합니다.
- 저장을 클릭합니다.
OAuth 클라이언트 삭제
더 이상 필요하지 않거나 액세스를 취소하려는 경우 OAuth 클라이언트를 삭제할 수 있습니다.
다음과 같이 하십시오.
-
관리 활동 센터에서 OAuth로 이동합니다.
-
제거하려는 하나 이상의 OAuth 클라이언트를 선택한 다음 삭제를 클릭합니다.
- 삭제를 확인합니다.
OAuth 클라이언트 게시
OAuth 클라이언트는 처음에 이를 생성한 테넌트에 바인딩됩니다. 그러나 동일한 지역 내의 여러 테넌트에서 공유되도록 OAuth 클라이언트를 구성할 수 있습니다. 이를 통해 타사 응용 프로그램이 다른 Qlik Cloud 테넌트에서 동일한 클라이언트 ID를 사용할 수 있습니다.
응용 프로그램 소유자는 테넌트 관리자의 개입 없이 암호를 교체하고 구성을 업데이트할 수 있습니다. 테넌트 관리자는 자격 증명을 관리하거나 게시된 클라이언트에 대한 구성 세부 정보를 알 필요가 없습니다.
다른 테넌트가 OAuth 클라이언트에 연결할 수 있도록 하려면 이를 게시해야 합니다.
다음과 같이 하십시오.
- 관리 활동 센터에서 OAuth로 이동합니다.
- 게시하려는 OAuth 클라이언트를 찾습니다.
- 클라이언트 옆에 있는
를 클릭하고 게시를 선택합니다.
- 게시를 클릭하여 확인합니다.
OAuth 클라이언트가 게시되면 다른 테넌트에서 외부용으로 사용할 수 있게 됩니다. 사용자가 이 OAuth 클라이언트를 사용하는 외부 웹 사이트를 방문할 때 이미 활성 SaaS 세션이 없는 한 테넌트 호스트 이름과 사용자 자격 증명을 입력하라는 메시지가 표시됩니다.
초기 로그인에는 테넌트 관리자의 동의가 필요합니다. 승인되면 OAuth 클라이언트가 테넌트의 관리 활동 센터에 나타납니다.
동의 방법
기본적으로 Qlik Cloud는 인증 시 사용자에게 동의를 요청합니다. 특히 신뢰할 수 있는 응용 프로그램의 경우 프로세스를 간소화하기 위해 동의 방법을 "신뢰함"으로 설정하여 동의 프롬프트를 건너뛸 수 있습니다.
동의에는 두 가지 옵션이 있습니다.
-
필수: OAuth 클라이언트가 새 범위를 요청할 때마다 사용자에게 동의를 요청합니다. 이 방법은 각 액세스 수준에 대한 명시적인 사용자 승인을 보장합니다.
-
신뢰함: 사용자에게 동의를 요청하지 않습니다. 이 옵션은 게시되지 않은 클라이언트에만 사용할 수 있습니다. 게시된 클라이언트의 경우 여러 테넌트에서 보안을 유지하기 위해 동의 방법이 항상 필수입니다.
동의 방법 변경
OAuth 클라이언트의 동의 방법을 변경하려면 다음을 수행합니다.
- 관리 활동 센터에서 OAuth로 이동합니다.
- OAuth 클라이언트에서
를 클릭하고 동의 방법 변경을 선택합니다.
- 필수 또는 신뢰함을 선택한 다음 동의 방법 변경을 클릭합니다.
OAuth 구성 보기 및 복사
관리 활동 센터의 OAuth 섹션에서 OAuth 구성 보기를 선택하여 Qlik Cloud 테넌트에 대한 인증 세부 정보를 표시합니다. 그러면 OAuth 엔드포인트 및 설정이 포함된 코드 스니펫과 외부 응용 프로그램에서 사용할 수 있도록 복사할 수 있는 URL이 표시됩니다.
이 구성을 사용하여 Qlik Cloud를 타사 응용 프로그램과 통합하거나 API 액세스를 자동화하거나 내장된 분석을 위한 인증을 구성할 수 있습니다.
클라이언트 암호 관리
클라이언트 암호가 손상되었거나 보안 정책에 따라 주기적인 업데이트가 필요한 경우 암호를 추가하거나 제거할 수 있습니다. 가동 중지 시간을 방지하기 위해 여러 클라이언트 암호(최대 5개)를 추가하고 클라이언트 응용 프로그램을 업데이트한 다음 이전 암호를 제거할 수 있습니다.
클라이언트 암호 추가
다음과 같이 하십시오.
- 관리 활동 센터에서 OAuth로 이동합니다.
- OAuth 클라이언트를 찾습니다.
-
를 클릭하고 암호 관리를 선택합니다.
- 새 클라이언트 암호 생성을 클릭합니다.
-
클라이언트 암호와 클라이언트 ID를 복사하여 안전하게 보관합니다.
정보 메모나중에는 클라이언트 암호에 액세스할 수 없습니다. - 닫기를 클릭합니다.
클라이언트 암호 제거
다음과 같이 하십시오.
- 관리 활동 센터에서 OAuth로 이동합니다.
- OAuth 클라이언트를 찾습니다.
-
를 클릭하고 암호 관리를 선택합니다.
- 클라이언트 암호 옆에 있는
를 클릭합니다.
- 닫기를 클릭합니다.
OAuth 클라이언트에 대한 추가 정보
다음 단계: OAuth 클라이언트 응용 프로그램 구축
Qlik Cloud에 OAuth 클라이언트를 등록한 후 Qlik Cloud 콘텐츠에 액세스하기 위한 OAuth 클라이언트 응용 프로그램을 구축할 수 있습니다. 응용 프로그램에서 연결된 클라이언트 ID와 클라이언트 암호를 사용합니다.
단계별 지침은 Qlik Developer Portal의 OAuth Overview 섹션에 있는 자습서를 참조하십시오. 이 자습서에서는 널리 사용되는 프로그래밍 언어를 사용하여 클라이언트 응용 프로그램을 구축하는 방법을 다룹니다.
조직 수준 OAuth 클라이언트
테넌트별 OAuth 클라이언트 외에도 조직 수준 OAuth 클라이언트를 사용할 수 있습니다. 서비스 계정 소유자(SAO)로서 이러한 클라이언트를 생성하고 관리할 수 있습니다. 조직 수준 OAuth 클라이언트는 구독의 모든 테넌트에 걸쳐 테넌트 정보에 대한 액세스를 제공합니다.
자세한 내용은 My Qlik에서 OAuth 클라이언트 관리를 참조하십시오.