서명된 임베디드 인증 오류 문제 해결

Looker 콘텐츠에 서명된 삽입을 사용하면 인증 오류 문제를 해결하기가 어려울 수 있습니다. 몇 가지 다른 방법으로 문제를 진단하고 진단할 수 있으며, 리디렉션이 사용자를 전송하는 위치에 따라 접근 방식을 선택합니다. 이 페이지의 도움말은 별도로 명시하지 않는 한 Looker의 삽입 예 GitHub 저장소와 비슷한 스크립트를 사용해 서명된 삽입 URL을 생성한다고 가정합니다.

먼저 해야 할 일반적인 작업

임베딩을 시작하기 전에보안 비밀 삽입관리 패널에서 생성되었는지, 삽입한 콘텐츠가 개발 모드가 아닌 프로덕션 모드에서 작동하는지 확인합니다.

관리자 권한이 있는 경우 sudo를 삽입 사용자로 사용하여 콘텐츠가 작동하는지 확인합니다. Oops, we can't find that page 오류가 표시되는 경우 이는 권한 또는 콘텐츠 액세스와 관련된 문제일 가능성이 높으며 인증 문제와 관련이 없을 수 있습니다. Looker 관리 패널의 사용자 페이지에 삽입 사용자가 표시되지 않으면 사용자가 생성되지 않았고 삽입 URL이 실패하는 것입니다. 이 페이지에 나열된 몇 가지 제안 사항과 리소스를 사용하여 문제를 해결할 수 있습니다.

인스턴스가 자체 호스팅되는 경우 클라이언트 서버가 Looker 서버에 연결할 수 있는지 확인하고, 클라이언트와 서버 간의 데이터가 공개 인터넷을 통해 전송되는 경우 SSL(HTTPS)이 사용 중인지 확인합니다.

이 페이지의 나머지 부분에서는 발생할 수 있는 오류 및 기타 문제해결 단계를 설명합니다.

로그인 페이지 또는 '싱글 사인온(SSO) 실패' 페이지로 리디렉션됩니다

로그인 페이지 또는 Single sign on failure. Please contact an adinistrator. 오류가 있는 페이지로 리디렉션되는 경우 일반적으로 서명된 삽입 인증이 제대로 작동하지 않기 때문입니다.

먼저 서명된 삽입 URL을 새로 생성하고 Looker 관리 패널의 삽입 페이지 아래에 있는 삽입 URI 검사기에서 테스트합니다. 삽입 URI 검사기는 오류가 발생한 이유와 관련된 중요한 정보를 보여줄 수도 있습니다.

삽입 URI 검사기가 예상대로 표시됩니까?

Looker 관리 패널의 삽입 페이지에서 삽입 URI 검사기가 표시되지 않으면 서명된 임베딩이 아직 사용 설정되지 않은 것입니다. 서명된 임베딩을 사용 설정해야 합니다.

'signature param' failed to authenticate 오류가 발생합니다

이 오류가 표시되면 스크립트에서 생성된 서명이 예상대로 작동하지 않는 것입니다. 가능한 해결 방법은 다음 섹션을 참조합니다.

보안 비밀 삽입이 일치합니까?

Looker 인스턴스의 보안 비밀 삽입은 서명된 삽입 URL 생성 스크립트의 서명된 보안 비밀 삽입과 동일해야 합니다. 확실하지 않으면 보안 비밀 재설정을 선택하여 새 보안 비밀을 생성하고 스크립트에 추가합니다. 키를 재설정하면 이전 키를 사용한 모든 삽입이 중단됩니다.

Create Signed Embed Url 엔드포인트를 사용하여 삽입 URL을 만들고 호출 본문에 secret_id의 보안 비밀을 지정하여 스크립트를 작성합니다. 사용 중인 보안 비밀이 유효하지 않은지 응답에서 알려줍니다.

서명 문자열이 올바른 순서로 배치되었습니까?

서명 문자열의 삽입 매개변수는 URL 생성 스크립트의 올바른 순서로 되어 있어야 합니다. 적절한 순서는 서명된 임베딩 문서 페이지에 설명되어 있습니다.

출력 시 서명 문자열은 인코딩되기 전에 다음과 같아야 합니다.

  company_name.looker.com
  /login/embed/embed%2Fdashboards%2F123
  "ac786cbc06162b1edde3a8b35920a93e"
  15852443573600
  "test_external_user_id"
  ["access_data","see_user_dashboards"]
  ["test_model"]
  []
  "test group space"
  {"test_user_attribute":"yes"}
  {}

보안 비밀 삽입으로 서명 문자열에 서명한 후에는 최종 URL의 매개변수가 서명 문자열에 지정된 매개변수와 일치하는지 확인합니다. +/와 같은 특수 문자가 URL 매개변수에 인코딩되어 있는지 확인하고(예를 들어, +가 제대로 인코딩되지 않은 경우 공백으로 해석될 수 있음) 서명된 삽입 URL에 줄 바꿈이 없어야 하며 인코딩 후 놓칠 수 있습니다.

스크립트를 스크립트 예시와 비교하여 스크립트가 모든 적절한 단계를 거치는지 확인하고 서명이 적절한 암호화를 사용하는지 확인합니다.

This request includes invalid params: ["embed_domain"] 오류가 발생합니다

이 오류의 문제를 해결하기 전에 embed_domain 매개변수는 스크립트가 JavaScript 이벤트 리스너를 사용하는 경우에만 필요합니다. 이는 일반적으로 기본 서명된 삽입 구현의 요구사항은 아닙니다. 애플리케이션이 JavaScript 이벤트를 리슨할 필요가 없는 경우 가장 간단한 옵션은 embed_domain 매개변수를 완전히 삭제하는 것입니다.

삽입 애플리케이션에서 JavaScript 이벤트를 사용해야 하는 경우 URL 생성 스크립트를 확인하여 embed_domain 매개변수가 추가되는 위치를 확인합니다. 이 오류는 일반적으로 embed_domain 매개변수가 embed_url 내에 직접 배치되지 않고 실수로 서명된 삽입 매개변수로 배치되었음을 의미합니다. 스크립트는 embed_domain 매개변수가 실제로 embed_url의 일부가 아닌 한 형식을 올바르게 지정하지 않으며 삽입 URL 뒤와 모든 매개변수 앞에 추가해야 합니다.

스크립트에서 embed_domain 매개변수가 올바르게 지정되면 다음과 같이 표시됩니다.

  embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Create Signed Embed Url 엔드포인트를 사용하는 경우 embed_domain 매개변수를 target_url 끝에 배치해야 합니다.

'nonce' param already used this hour 오류가 발생합니다

nonce 매개변수의 값은 같은 시간 내에 반복되어서는 안 되며 255자(영문 기준) 미만이어야 합니다. 따라서 이미 액세스한 URL을 테스트하는 경우 이 오류가 표시됩니다. 아직 브라우저에 로드되지 않은 새 삽입 URL을 생성하고 nonce가 변경되며 재사용되지 않았음을 확인합니다.

Uh-Oh, Something went wrong 오류로 리디렉션됩니다

이 오류가 표시되면 Looker 지원에 문의하여 문제를 진단합니다.

401 오류 메시지 You are not authenticated to view this page.가 포함된 페이지로 리디렉션됩니다

적용 가능한 모든 문제 해결 단계를 시도했지만 401 문제가 지속되면 브라우저에서 타사 쿠키를 차단하고 있을 가능성이 높습니다. 대부분의 브라우저는 점점 더 엄격해지고 있으며 이러한 쿠키를 차단하는 쿠키 정책이 기본적으로 사용됩니다. 예를 들어 Chrome의 시크릿 모드에서 서드 파티 쿠키 차단 설정과 마찬가지로 Safari의 크로스 사이트 추적 방지 설정이 사용 설정되어 있습니다.

애플리케이션에서 Looker 콘텐츠를 삽입하고 Looker 인스턴스의 도메인 이름이 company.looker.com에서 끝나는 경우, 브라우저의 쿠키 개인정보 보호 설정이 수정되지 않으면 브라우저에서 도메인 간에 삽입된 iframe이 인증되지 않습니다.

Looker 호스팅 인스턴스

사용자가 브라우저에서 타사 쿠키를 수동으로 사용 설정하지 않으려는 Looker 호스팅 관리자는 Looker 호스팅 인스턴스의 도메인 이름을 변경해야 합니다. 예를 들어 Looker에서 호스팅하는 인스턴스는 일반적으로 https://<hostname>.<subdomain>.<domain>.com 형식을 사용합니다. Looker 도메인 이름이 변경되면 Looker가 더 이상 타사 도메인으로 간주되지 않습니다. Looker 인스턴스의 URL이 변경되면 어떻게 되나요?를 참조 자세한 내용은 권장사항 페이지를 확인합니다.

Looker 인스턴스의 커스텀 도메인을 추가하려면 Looker 지원팀에 문의하여 필요한 DNS 구성을 설정합니다.

자체 호스팅 인스턴스

Looker 인스턴스를 자체 호스팅하는 경우 Looker 인스턴스의 DNS 항목을 변경하여 서명된 임베딩을 사용하는 애플리케이션이 Looker 인스턴스와 동일한 기본 도메인에 있는지 확인합니다.

또한 Chrome에서는 samesite=none 플래그가 있는 세션 쿠키도 secure을 지정해야 합니다. Looker 인스턴스에 --ssl-provided-externally-by=<s> 시작 플래그가 제공되지 않는 경우 Looker에 secure가 표시되지 않으므로 이 시작 플래그가 구성되었는지 확인합니다.

문제가 계속 발생합니다. 어떻게 해야 합니까?

이 페이지의 제안을 시도한 후에도 문제가 발생하면 Looker 담당자에게 문의하거나 Looker 지원으로 이동하여 티켓을 엽니다.