SSO(단일 로그온) 구성

SSO(단일 로그온) 구현은 매우 유연합니다. IdP(ID 공급자) 서버와 Shotgun 서버가 서로 직접 통신이 가능해야 할 필요가 없습니다. 한 곳에서 다른 곳으로 이동하는 정보 흐름은 고객 응용프로그램을 통해 신호를 받고 전달됩니다. 일반적으로 이러한 응용프로그램은 Shotgun에 연결하는 브라우저가 됩니다.

우선 IdP 구성을 완료해야 합니다. IdP는 사용자의 Shotgun 로그인에 매핑되는 login_id를 Shotgun에 보내야 합니다. 이는 두 시스템 간의 키 링크입니다. 기존 Shotgun 사이트를 SSO로 전환하는 경우 IdP에서 보낸 항목과 Shotgun의 기존 로그인이 일치하는지 확인하십시오. IdP에서 보낸 login_id를 적절하게 정렬하지 못하면 Shotgun 로그인에 중복된 사용자가 생길 수 있습니다.

기존 사이트를 전환하는 경우 첫 번째 단계는 Shotgun에서 사용되는 로그인을 감사하는 것입니다. 이 작업이 불가능하거나 너무 복잡한 경우 두 로그인 세트를 정렬하기 위해 Shotgun에서 기존 사용자에 대한 문제를 처리할 수 있는 방법을 제공합니다. 자세한 정보는 Shotgun 관리자 섹션을 참조하십시오.

구성 안내는 IdP 관리자와 Shotgun 관리자용의 두 섹션으로 분할했습니다.

IdP 관리자

Shotgun은 SAML 2.0을 사용하여 SSO 지원을 구현합니다. 이는 수년간 사용된 표준이며 저희가 고려한 대부분의 IdP 제공자가 지원합니다.

모든 IdP 시스템에는 다양한 관리 메커니즘이 있습니다. ADFSOkta에서 통합 예를 제공하지만 환경에 따라 달라질 수 있습니다.

SAML 속성

IdP 구성에서 Shotgun에 전달할 속성을 추가해야 합니다.

SAML2 응답 페이로드는 다음 속성을 포함해야 합니다.

이름 유형 현재 상태 참고 사항
login_id 문자열 필수 사용자가 Shotgun에서 사용할 로그인 ID입니다.
이 ID는 Shotgun 내에서 고유해야 하며, 세션 간에 일관성이 있어야 합니다.
이름 문자열 필수 사용자 이름입니다.
문자열 필수 사용자의 성입니다.
이메일 문자열 필수 사용자의 이메일 주소입니다.
액세스 문자열 필수 true 또는 false 값만 가질 수 있습니다.
true인 경우 사용자는 Shotgun에 액세스할 수 있습니다.
그룹 문자열 선택 표시되지 않거나 비어 있는 경우 사용자의 권한 그룹이 현재 값에서 수정되지 않습니다. 새 사용자의 경우 사이트 기본 설정에서 정의된 대로 기본 사용자 권한 그룹이 사용됩니다.
표시되는 경우 Shotgun에서 정의된 권한 그룹 중 하나의 이름이어야 합니다. 이름이 일치하지 않으면 사용자에게 기본 사용자 권한 그룹의 권한이 부여됩니다.
예: “관리자(Admin)”

참고 사항

  • 그룹 속성은 선택 사항이며 없을 경우(또는 유효하지 않은 경우) 사용자의 권한 그룹을 수정할 수 없습니다. 이 속성을 채우는 것은 복잡하므로, 초기 구성을 용이하게 진행할 수 있도록 적어도 초반에는 이 속성을 건너뛰는 것이 좋습니다. 이 작업은 Shotgun 관리자가 관리할 수 있습니다.
  • SAML 페이로드에서 제공된 NameID는 사용하지 않습니다. 대신 고객이 제공한 login_id 속성에 의존합니다.

login_id, 액세스그룹에 대해 결정하는 데 사용할 수 있는 여러 전략이 있습니다.

login_id는 고유하고 변함이 없어야 합니다. 이메일 주소 또는 이름이 좋은 후보처럼 보일 수 있지만 절대 변하지 않는 것이 무엇인지 이해하는 것이 중요합니다(예: 자신의 성을 변경하는 사람도 있음).

액세스그룹의 경우 Windows 환경에서 공통된 전략 한 가지는 Active Directory 보안 그룹을 사용하는 것입니다. 지정된 그룹에서 사용자의 존재는 속성 값에 반영됩니다.

IdP를 처음 구성할 때는 그룹 속성을 생략하는 것이 좋습니다. 그런 다음 나중에 중앙에서 관리하는 것이 좋은지 아니면 Shotgun 관리자에게 맡기는 것이 좋은지 판단할 수 있습니다.

SAML 엔드포인트

Shotgun 서버는 2개의 특정 SAML 엔드포인트를 정의합니다. 이러한 엔드포인트는 SAML을 인증 방법을 설정했거나 SAML 구성을 테스트하는 경우에만 활성화됩니다.

Shotgun에 대한 IdP를 구성할 때는 다음과 같은 엔드포인트가 필요합니다.

URL 참고 사항
https://YOUR_SITE_URL/saml/metadata Shotgun에서 다른 엔드포인트를 알리는 SP 엔드포인트입니다.
https://YOUR_SITE_URL/saml/saml_login_response IdP가 Shotgun에 암호화된 클레임을 보내야 하는 엔드포인트입니다.

IdP(ID 공급자) 구성

다음 단계는 ID 공급자를 구성하는 것입니다. 가능한 모든 공급자에 대한 지침을 제공할 수는 없지만 다음은 가장 널리 사용되는 2가지의 편리한 단계별 지침입니다.

다음 단계

이제 IdP를 구성했기 때문에 Shotgun 관리자가 필요한 정보를 가지고 Shotgun을 구성하고 테스트할 수 있습니다.

Shotgun 관리자는 다음이 필요합니다.

  • SAML 2.0 엔드포인트(HTTPS) URL
  • IdP가 페이로드에 서명하는 데 사용하는 공용 인증서
  • ID 공급자 발급자 문자열

이 작업에 사용되는 실제 이름은 사용되는 IdP에 따라 변경될 수 있습니다.

Shotgun 구성 중에 문제 해결 및 수정에 대한 지원을 받을 수 있는 것이 좋습니다.

Shotgun 관리자

Shotgun 구성을 시작하기 전에 IdP가 구성될 때까지 기다려야 합니다. 이 작업이 완료되면 IdP 관리자가 Shotgun에서 필요로 하는 정보를 제공할 것입니다.

Shotgun 구성

관리자로 로그인하면 오른쪽 상단에 있는 설정 메뉴를 통해 사이트 기본 설정(Site Preferences) 페이지로 이동해야 합니다.

Shotgun 사용자 메뉴
Shotgun 사용자 메뉴

인증(Authentication) 창으로 이동하여 엽니다.

Shotgun 인증 창
Shotgun 인증 창

경고: 테스트를 마치기 전에 SAML 인증을 활성화하지 마십시오.

’SAML 인증(SAML Authentication)’ 라디오 버튼 및 섹션이 표시되지 않는 경우 이를 활성화할 수 있도록 Shotgun 지원 팀에 문의하십시오.

이제 SAML 인증(SAML Authentication) 섹션을 열고 다음 정보를 입력할 수 있습니다.

Shotgun 인증 창 설정
Shotgun 인증 창 설정

  • SAML 2.0 엔드포인트(HTTPS): Shotgun에서 인증을 위해 리디렉션하는 SSO 백엔드의 URL입니다.
  • 공용 인증서: IdP와 통신하는 데 필요한 인증서입니다.
  • ID 공급자 발급자: IdP에서 정의한, 서비스에 대한 엔티티 ID입니다.
  • SSO 구성(YAML 형식): 추가 구성 설정입니다. 다음 섹션을 참조하십시오.

추가 구성을 사용해야 합니까?

SSO 구성(SSO Configuration) 패널에서 YAML 형식에 이어 추가 구성이 가능합니다. 이러한 옵션은 특별한 경우에만 사용됩니다.

다음은 허용되는 토큰 및 샘플 사용 목록입니다. 알 수 없는 토큰은 그냥 무시됩니다. 부적합한 형식 지정 또는 잘못된 값은 구성 전체에 영향을 줄 수 있습니다. 주의해 주시기 바랍니다.

암호화

기본적으로 IdP에서 제공한 공용 키를 사용한 암호화만 사용합니다. 필요한 경우, Shotgun에서 해당 요청에 서명할 수도 있습니다. 인증서가 생성되면 IdP에서 공용 인증서를 사용할 수 있어야 합니다. 개인 키는 다음에서 입력됩니다.

service_provider:
  private_key: "KEY" # the key used for encryption
security:
embed_sign: true # embed the signature in the SAML header authn_requests_signed: true # authorization requests are encrypted logout_requests_signed: true # logout requests are encrypted logout_responses_signed: true # logout responses are encrypted

SLO(단일 로그아웃)

기본적으로 SLO를 사용하지 않습니다. SLO를 사용해야 하는 경우 다음 토큰으로 구성할 수 있습니다.

identity_provider:
  slo_target_url: https://single.logout.url

업데이트 시 일부 필드 무시

앞에서 언급했듯이, Shotgun은 IdP를 신뢰할 수 있는 사용자 정보 소스로 간주합니다. Shotgun에 있는 모든 정보는 로그인 시 그리고 클레임을 갱신할 때 IdP를 통해 업데이트됩니다.

특별한 경우, Shotgun에서 관리자가 설정한 정보를 보호하고 이 정보가 IdP 정보로 업데이트되지 않도록 해야 하는 경우도 있을 수 있습니다.

허용되는 토큰 목록은 이름, 성, 이메일 및 그룹입니다.

ignore_updates:
  - email

자동 프로비저닝

기본값: true

자동 프로비저닝이 활성화되면 Shotgun에 대한 액세스 권한을 부여받았지만 해당 데이터베이스에는 존재하지 않는 사용자가 IdP에서 제공한 정보를 사용하여 자동으로 생성됩니다. 지정된 그룹이 없는 경우 해당 사용자에게는 사이트 기본 설정(Site Preference)의 고급(Advanced) 설정에 표시된 대로 Shotgun의 기본 사용자 권한 그룹 값이 할당됩니다.

자동 사용자 생성이 바람직하지 않은 경우도 있습니다. 새 사용자는 관련 프로젝트에 액세스할 수 없으며 수정하려면 Shotgun 관리자가 개입해야 합니다. 일반적으로 관리자가 적절한 권한과 올바른 로그인으로 사전에 사용자를 생성하는 것이 더 좋습니다. 이렇게 하면 사용자 경험이 더 간편해집니다.

autoprovision: false

SSO 활성화 시 이메일 보내기 건너뛰기

기본값: false

SSO가 활성화되거나 비활성화될 때마다 모든 활성 사용자에게 이메일이 발송됩니다. 이 이메일을 통해 SSO 상태 및 취해야 하는 액션에 대해 알 수 있습니다.

스테이징 서버에서 초기 테스트를 수행할 때 또는 프로덕션 서버에서 테스트를 수행할 때는 활성화 이메일을 비활성화하는 것이 좋습니다. 이렇게 하면 사용자 혼란과 불필요한 지원 문의를 피할 수 있습니다.

skip_activation_email: true

보조 브라우저 창을 사용하여 사용자 자격 증명 갱신

기본값: false

Shotgun은 웹 브라우저에서 iframe을 사용하여 IdP 서버에 대한 사용자의 클레임을 갱신합니다. 일부 IdP 시스템에서는 고객이 인증에 iframe을 사용하는 것을 허용하지 않습니다. 예를 들어, Okta의 기본 구성은 IdP 관리자가 명시적으로 변경하지 않는 한 iframe 사용을 거부합니다. Okta의 경우에는 이 부분이 Shotgun만이 아닌 다른 모든 응용프로그램에 영향을 주는 시스템 전체 설정입니다. 여러분의 IdP에도 유사한 제한 사항이 있을 수 있습니다.

이 제약을 해결하기 위해 Shotgun에서는 화면 왼쪽 하단 모서리에 보조 브라우저 창을 엽니다. 사용자는 이 창을 닫을 수 없습니다. iframe이 허용되지 않을 경우 이 설정을 사용하여 Shotgun을 구성해야 합니다.

saml_claims_renew_iframe_embedding_disabled: true

구성 테스트

필요한 값을 입력했으면 설정을 저장하고 인증 모드는 아직 SAML 인증(SAML Authentication)으로 설정하지 마십시오. 테스트(Test) 링크를 사용하여 구성을 먼저 확인합니다. Shotgun에서 팝업 창을 열도록 허용해야 할 것입니다.

테스트를 수행할 때 IdP 관리자가 함께 있는 것이 좋습니다. 그러면 문제 해결 시 도움이 될 것입니다.

실패

Shotgun 테스트 실패
Shotgun 테스트 실패

테스트가 실패한 경우 문제를 확인하는 데 도움이 되는 표시, 팝업 또는 출력이 나타날 것입니다. 여러분 및 IdP 관리자가 해당 문제를 찾을 수 없는 경우 저희가 서버 로그를 확인할 수 있도록 Shotgun 지원 티켓을 열어야 할 수 있습니다.

성공

Shotgun 테스트 성공
Shotgun 테스트 성공

테스트에 성공하면 다음 단계로 계속 진행하면 됩니다.

다음 단계

이제 구성이 작동하므로 진행할 준비가 되었습니다.

먼저 스테이징 서버 테스트

앞에서 몇 차례 언급하긴 했지만 이 단계의 필요성은 정말 강조해야 합니다. 이를 통해 모든 도구, 스크립트 및 타사 응용프로그램이 Shotgun과 올바르게 통신할 수 있습니다. 프로덕션 파이프라인의 모든 부분이 예상대로 작동하는지 확인해야 합니다. 프로덕션 사이트에서 SSO가 활성화되면 안정성이 가장 문제입니다.

프로덕션 사이트에서 SSO가 활성화되기 전에 스테이징에서 수행한 모든 테스트가 성공했음을 나타내는 명확하고 확실한 언급이 있어야 합니다. 이를 바탕으로 지원 팀이 사이트에 있는 SSO 관련 문제를 계속 살펴볼 수도 있습니다.

SSO 활성화

스테이징 사이트의 경우 사용자의 혼란을 방지하려면 이메일 알림을 비활성화해야 합니다. SSO 활성화와 비활성화를 몇 차례 반복하게 될 것입니다.

프로덕션 사이트의 경우에도 테스트를 수행할 계획인 경우 이메일 알림을 일시적으로 비활성화해야 할 수 있습니다. SSO를 활성화하면 사이트에서 진행 중인 모든 세션이 종료됩니다(구성을 변경 중인 사용자 제외). 테스트는 사용량이 적은 기간(Shotgun과 상호 작용하는 사용자가 적을 때)에 수행해야 합니다.

SSO가 활성화되면 모든 활성 사용자에게 이메일이 발송되기 때문에 그 전에 알림 이메일을 보낼 수도 있습니다. 이 이메일은 사용자에게 테스트를 수행하는 이유와 시기 그리고 문제가 발생할 경우 문의해야 할 연락처에 대해 설명합니다.

Shotgun 로그인 흐름은 초기 로그인 문제를 수정하려고 합니다(가능한 경우). 사용자는 이메일에 따라 자신의 기존 계정을 링크할 수도 있고 이전 사용자 이름 및 암호를 사용하여 직접 인증할 수도 있습니다. 이는 초기 연결 문제를 해결하는 방법을 제공하지만 복잡하고 오류가 발생하기도 쉽습니다. 중복된 사용자가 잘못 생성될 수 있고 이 때문에 지원 문의를 하거나 중복된 해당 사용자를 책임지는 일이 발생할 수도 있습니다.

목표는 SSO로의 전환을 사용자에게 투명하게 하는 것입니다. 그런 취지로, 원활한 전환을 위해 시행할 수 있는 몇 가지 단계가 있습니다.

기존 사용자를 위한 간편한 전환

인증 프로세스의 핵심은 IdP에서 제공한 login_id와 기존 Shotgun 로그인(login) 간 일치를 중심으로 진행됩니다. 기존 Shotgun 사용자 기반 감사를 진행하여 로그인(login) 값을 할당하는 데 사용되는 일정한 규칙이 있는지 그리고 IdP가 일치하는 login_id를 보낼 수 있는 위치에 있는지 확인해야 합니다.

일치하는 경우 사용자는 어떠한 추가 단계나 입력 없이 자신의 Shotgun 사이트에 바로 연결됩니다. 이는 이상적인 상황입니다.

Shotgun 관리자인 여러분은 Shotgun 로그인(login) 이름 지정에 일관성이 없거나 IdP에서 올바른 login_id를 보내는지 쉽게 확인할 수 없는 사례를 해결하기 위한 절차를 시행하게 될 수 있습니다.

첫 번째 해결책:
사용자의 Shotgun 로그인(login)이 IdP login_id와 일치하도록 변경하면 됩니다. 사용자가 새 사용자 이름을 알 수 있도록 해야 합니다. SSO를 꺼야 하는 경우 이전 암호를 사용하여 Shotgun에 연결하려면 새 사용자 이름이 필요합니다.

두 번째 해결책:
IdP 계정과 다음 Shotgun 계정을 링크합니다.

  1. 관리자 계정을 사용하여 Shotgun 사이트에 연결합니다.
  2. 작업자(People) 페이지로 이동합니다.
     
    Shotgun 사용자 메뉴

  3. 단일 로그온 로그인(Single Sign-On Login) 열이 표시되는지 확인합니다.
     
    수정 전 Shotgun 작업자

  4. 문제가 있는 사용자의 필드를 편집하고 IdP에서 보낸 login_id를 입력합니다.
     
    수정 후 Shotgun 작업자

  5. 이제 계정이 링크되었고 문제가 있는 사용자가 올바른 사용자로 로그인할 수 있습니다.

수많은 이례적인 Shotgun 로그인에 대해 이러한 단계를 수행해야 할 수 있습니다.

새 사용자 초대 및 생성

SSO가 활성화된 경우 두 가지 방법으로 새 사용자를 추가할 수 있습니다. 두 경우 모두 Shotgun에서 어떠한 액션을 취하기 전에 이러한 사용자를 허용하도록 IdP를 업데이트해야 합니다.

  1. 관리자 계정을 사용하여 Shotgun 사이트에 연결합니다.
  2. 작업자(People) 페이지로 이동합니다.
     
    Shotgun 작업자 추가

  3. 상황에 따라 다음 두 가지 옵션을 사용할 수 있습니다.
  • 첫 번째 옵션은 새 사용자를 초대하는 것입니다. 이것이 기본 옵션입니다. + 작업자(+ People) 버튼을 클릭하면 초대(Invite) 대화상자가 나타납니다.
     
    Shotgun 작업자 초대
    이 대화상자는 사용자에게 이메일 초대를 보냅니다. Shotgun 내에서 변경되지 않습니다. 사용자는 이미 IdP에서 Shotgun에 액세스할 수 있는 권한이 있어야 합니다.
     
    autoprovisionfalse(으)로 설정된 경우 사용자는 관리자가 사용자를 생성할 때까지 Shotgun을 사용할 수 없습니다.
     
    그렇지 않으면 첫 로그인 시 사용자에게 이전 기존 계정에 링크할 것인지 또는 새 사용자를 생성할 것인지를 묻는 대화상자가 표시됩니다.
     
    전자를 선택하면 사용자는 이전 계정의 Shotgun 사용자 이름 및 Shotgun 암호를 사용하여 인증해야 하는 페이지로 이동하게 됩니다. 후자를 선택하면 모든 프로젝트에 대해 액세스 권한이 없는 새 사용자가 생성됩니다.
     
    참고: 초대 보내기는 새 사용자 추가를 위한 이상적인 선택이 아닐 수도 있습니다.
     
  • 두 번째 옵션은 작업자를 새로 생성하는 것입니다. 이제 새 작업자를 만듭니다(Create a new Person now)를 클릭하면 이전 사용자 생성 대화상자가 나타납니다.
     
    Shotgun 작업자 만들기
    이 옵션은 Shotgun에서 지정된 액세스를 사용하여 새 사용자를 효율적으로 만들고 지정된 주소로 이메일 초대도 보냅니다. 정보를 입력할 때는 주의하십시오. 사용자가 처음 로그인하면 IdP 클레임에 의해 업데이트될 수 있기 때문입니다(업데이트 시 일부 필드 무시 옵션에 의해 방지되지 않은 경우).
     
    기타 필드(More Fields)를 클릭하고 단일 로그온 로그인(Single Sign-On Login) 필드를 추가하여 대화상자를 수정하는 것이 유용할 수 있습니다. 이렇게 하면 추가 정보를 입력하여 새 사용자를 원활하게 연결할 수 있습니다.
     
    참고: 사용자 추가 시 선호하는 방법입니다.

SSO가 활성화된 경우 Shotgun에서의 로그인 흐름

SSO가 활성화된 경우 사용자를 연결하기 전에 Shotgun에서 추가 확인을 수행해야 합니다. 첫 번째 연결 시 훨씬 더 많이 사용되는 방법입니다. 다음은 로그인 흐름 뒤에 있는 논리입니다.

로그인 흐름
로그인 흐름

발생할 수 있는 두 가지 중요한 상황은 계정 링크사용자 생성입니다. 두 경우 모두 사용자는 복잡하게 느껴질 수 있는 일련의 단계를 진행해야 합니다.

원활한 사용자 경험을 위해 Shotgun 관리자는 사용자를 생성하거나 계정을 링크해야 합니다. 이렇게 하려면 관리자가 추가 작업을 수행해야 하지만 사용자에게는 유익합니다. 자세한 정보는 기존 사용자를 위한 간편한 전환을 참조하십시오.

내부 도구 및 타사 응용프로그램을 사용하여 Shotgun 사이트에 액세스

Shotgun 서버와의 연결을 초기화하기 위해 사용자 이름/암호 쌍을 사용하는 모든 내부 도구나 스크립트가 수정되어야 합니다.

일부 사용 가능한 옵션:

  • Shotgun 툴킷과 함께 제공되는 인증 모듈을 사용합니다(PySide/PyQt 필요).
  • Shotgun 데스크톱을 사용하여 인증을 처리하고 여기에서 세션 토큰을 얻습니다.
  • 고유한 SSO 로그인 흐름을 IdP에 구현합니다. 필요한 고급 단계뿐만 아니라 추가 기술 정보도 제공할 수 있습니다.

타사 응용프로그램의 경우 개별 개발자에게 문의해야 합니다(Shotgun의 SSO를 지원하지 않는 경우).

마무리

기존 사용자의 경우 원칙적으로 login_id와 Shotgun 로그인(login)이 일치해야 하지만, 항상 가능한 것은 아닙니다.

내 IdP에서 보낸 login_id 선택 방법

login_id는 시간이 지나도 변하지 않고 고유해야 한다는 제약 조건이 있습니다.

일부 고객은 이메일 또는 이름과 성을 login_id로 사용하기로 결정했지만, 사용자 이름이 바뀔 경우 문제가 발생할 수 있습니다. 그러나 이름을 바꾸는 일은 자주 발생하지 않으므로 이는 실용적인 선택이 될 수 있고 Shotgun 관리자가 가끔 개입하기만 하면 됩니다.

해당 직원의 ID를 사용하기로 한 고객도 있습니다. 이는 직원 이름이 변경되더라도 문제가 없을 수 있지만 Shotgun 관리자가 이를 처리하는 데 있어 약간 주의가 필요할 수 있습니다. 또한 해당 ID를 매핑하는 직원이 누구인지 명확하지 않기 때문에 입력 오류가 발생할 수 있습니다.

추가 정보

구성 프로세스에서 심각한 문제가 발생한 경우 지원 팀에 문의하십시오.

초기 온보딩 회의 이후 초기 구성이나 문제 해결도 지원해드릴 수 있습니다.

본 안내서에 대한 제안 사항이나 코멘트를 남겨주시면 감사하겠습니다. 이 문서에서 설명하지 않은 IdP를 사용하는 경우 여러분이 따른 설정 지침이나 스크린샷을 추가하여 본 안내서를 개선하려고 합니다.

자세한 정보는 “Shotgun의 SSO: 관리자 안내서” 및 “단일 로그온 문제 해결”을 참조하십시오.

팔로우

0 댓글

댓글을 남기려면 로그인하세요.