한국어
  • Just-in-Time

Just-in-Time 프로비저닝 이해하기

Just-in-Time 프로비저닝은 사용자가 시스템에 처음 로그인할 때 사용자를 신속하게 생성하는 ID 및 액세스 관리 시스템에서 많이 사용하는 프로세스입니다. 이 기사는 Just-in-Time 프로비저닝의 기본 개념을 설명하고, 구현에 대한 일반적인 질문에 답변합니다.

Guamian
Guamian
Product & Design

Just-in-Time 프로비저닝에 대해 논의하기 전에, 당신이 SaaS B2B 앱을 개발 중이고, 회원 기능을 지원하여 사용자가 쉽게 당신의 워크스페이스(테넌트)에 가입할 수 있도록 하고 싶다고 가정해 봅시다. 어떤 기능을 제안할 수 있을까요? 여기에 체크리스트를 제공합니다:

시나리오흐름
관리자 초대사용자가 조직에 가입하기 위해 이메일 초대를 받을 수 있습니다.
관리 API 사용자 생성 또는 가져오기사용자가 사전에 생성된 사용자 계정을 이용하여 조직에 가입할 수 있습니다.
Just-in-Time 프로비저닝앱에 처음 로그인하는 사용자가 조직에 가입할 수 있습니다.
디렉토리 동기화(예: SCIM)IdP의 디렉토리 동기화 기능을 사용하여 미리 앱에 사용자를 사전 프로비저닝합니다.

Just-in-Time(JIT) 프로비저닝은 사용자가 시스템에 처음 로그인할 때 신속하게 사용자 계정을 생성하는 데 사용되는 ID 및 액세스 관리 시스템에서 중요한 역할을 합니다. 사전에 사용자 계정을 미리 프로비저닝하는 대신, JIT 프로비저닝은 사용자가 인증할 때 필요한 사용자 계정을 동적으로 생성하고 구성합니다.

Just-in-time 프로비저닝은 효율성, 관리 개입 없음, 자동화된 조직 가입 등과 같은 고유한 특성을 가진 인기 있는 기능입니다. 이제 Just-in-Time 프로비저닝의 기본 개념을 이해했다면, 실질적인 제품 개발에 깊이 들어가면서 여러 가지 질문이 생길 수 있습니다. 이 질문들은 때로는 논란이 될 수 있으며, 특정 비즈니스 사례에 따라 달라질 수 있습니다.

제품에서 Just-in-Time 프로비저닝을 구현해야 할까요?

다중 테넌트 아키텍처, 엔터프라이즈 SSO, 기업과의 작업, 팀 온보딩 기능이 필요한 B2B 앱을 구축할 때 흔히 발생하는 사례들입니다. 다음은 클라이언트가 직면할 수 있는 예시 시나리오입니다.

빠른 온보딩

채용이 빈번하거나 급성장하는 클라이언트가 JIT 프로비저닝을 사용하여 새 직원의 사용자 계정을 신속하게 설정할 수 있습니다. 예를 들어 봅시다:

Sarah는 SuperFantasy라는 회사의 새로운 직원으로, Okta를 엔터프라이즈 아이덴티티 공급자로 사용합니다. HR 팀은 그녀의 비즈니스 아이덴티티인 [email protected]을 Okta에 한 번 입력만 합니다. Sarah가 이 이메일을 사용해 처음으로 Smartworkspace 라는 회사에서 사용하는 생산성 앱에 로그인하면, 시스템은 자동으로 계정을 생성하고 그녀에게 회사의 워크스페이스 내에서 적절한 역할을 부여합니다. 이렇게 하면 Sarah나 SuperFantasy의 HR 팀이 계정 생성 및 역할 할당을 위해 여러 단계를 거칠 필요가 없습니다.

인수 합병 및 임시 직원

인수 합병을 겪는 클라이언트가 JIT 프로비저닝을 사용하여 새로운 사용자가 인수된 회사의 시스템에 접근하는 과정을 간소화할 수 있습니다. 또 다른 예를 들면,

Peter는 최근 SuperFantasy에 인수된 MagicTech에서 일하고 있습니다. MagicTech는 엔터프라이즈 SSO가 없는 작은 조직이지만 Peter는 이미 Smartworkspace에서 비즈니스 계정을 가지고 있습니다.

HR 팀은 Peter를 Okta에 추가할 수 있습니다. Peter가 Okta를 통해 Smartworkspace에 처음 로그인할 때, 시스템은 자동으로 그의 기존 비즈니스 계정을 연결하고 SuperFantasy 내에서 적절한 액세스를 허용합니다.

위의 시나리오는 JIT 기능을 구현하기에 이상적입니다.

이 기능은 SAML 및 엔터프라이즈 SSO에만 국한된 것일까요?

Just-in-time(JIT) 프로비저닝은 종종 SAML 인증에서 Single sign-on(SSO)과 연관되지만, SAML에만 국한되지는 않습니다. JIT 프로비저닝은 OAuth 2.0 및 OpenID Connect와 같은 다른 인증 프로토콜과 함께 사용할 수 있으며, 항상 엔터프라이즈 SSO 설정이 필요한 것은 아닙니다.

예를 들어, 이메일 기반 JIT 프로비저닝은 사용자의 이메일 도메인에 따라 사용자를 자동으로 워크스페이스에 추가함으로써 팀 온보딩을 간소화할 수 있습니다. 이것은 엔터프라이즈 SSO를 구매하고 관리할 예산과 리소스가 부족한 조직에 특히 유용합니다.

JIT 프로비저닝의 기본 아이디어는 특정 프로토콜에 관계없이 사용자가 서비스에 처음 접근하려 시도할 때 사용자 계정을 자동으로 생성하거나 업데이트하는 것입니다.

이 기능은 앱의 새로운 사용자와 기존 사용자 모두에게 적용될까요?

이것은 까다로운 질문입니다. Just-in-time(JIT) 프로비저닝은 일반적으로 앱에 처음 접근하려는 시도를 의미하지만, 서로 다른 제품이 이 기능을 다르게 인식할 수 있습니다. 일부는 JIT 프로비저닝을 오로지 아이덴티티 및 계정 생성에 사용하며, 다른 일부는 Just-in-Time 계정 업데이트, 즉 재프로비저닝 및 속성 동기화도 포함합니다.

자동 사용자 생성 외에도, SAML JIT 프로비저닝은 프로비저닝의 일부로 그룹 멤버십을 부여하거나 철회할 수 있으며, IdP 사용자 저장소 속성과 동일하게 하기 위해 서비스 제공자(SP) 저장소에서 프로비저닝된 사용자를 업데이트할 수 있습니다.

예를 들어, Oracle Cloud에서는 여러 가지 방식으로 Just-in-Time 프로비저닝을 구성할 수 있습니다.

  1. Just-in-Time 생성
  2. Just-in-Time 업데이트

Oracle Identity Cloud Service 관리: SAML Just-In-Time 프로비저닝 이해하기.

사용자가 로그인할 때:흐름
존재하며 JIT 프로비저닝이 활성화됨.정상적인 SSO 실패 흐름.
존재하지 않으며 JIT 생성이 활성화됨.사용자가 생성되고, JIT 설정에서 매핑된 대로 SAML 어설션 속성으로 채워짐.
존재하며 JIT 업데이트가 활성화됨.사용자 속성 값은 JIT 설정에서 매핑된 대로 SAML 어설션 속성으로 업데이트됨.

기존 사용자의 후속 로그인 시나리오를 고려하려면, JIT 시스템과 함께 강력한 프로비저닝 시스템을 갖출 필요가 있습니다. 예를 들어,

  • 충돌 해결: 계정 정보가 IdP에서 제공하는 정보와 다를 경우, 시스템이 충돌을 처리하는 전략을 가져야 합니다. 이는 조직의 정책 및 IdP 설정에 대한 자세한 제어가 필요할 수 있습니다.
  • 감사 추적: JIT 프로세스로 인해 새 계정이 생성되거나 기존 계정이 업데이트된 내용을 보안을 위해 기록하는 것이 중요합니다.
  • 성능: JIT 프로비저닝이 신속하게 이루어지지만, 특히 기존 사용자의 경우 로그인 시 정보 업데이트 시 성능에 미치는 영향을 고려해야 합니다.
  • 데이터 일관성: 기존 사용자 계정을 업데이트할 때 JIT 프로비저닝이 데이터 일관성을 유지하도록 보장하십시오.

JIT와 SCIM의 차이점은 무엇입니까?

Just-in-Time(JIT) 프로비저닝 외에도, SCIM(System for Cross-domain Identity Management)에 대해 들어보았을 겁니다. SCIM은 서로 다른 시스템과 도메인 간에 사용자 아이덴티티 관리를 간소화하고 자동화하기 위해 설계된 오픈 표준 프로토콜입니다. 디렉토리 동기화 시나리오에서 주로 사용됩니다.

JIT와 SCIM의 주된 차이점은 JIT가 사용자의 로그인 시도 중에 계정을 생성하는 반면, SCIM은 사용자의 로그인 시도와 독립적으로 비동기적으로 사용자 프로비저닝을 수행할 수 있다는 것입니다.

이는 JIT가 새로운 사용자 온보딩에 중점을 두고 있는 한편, SCIM은 사용자 전 라이프사이클 관리를 중점적으로 다룬다는 것을 의미합니다.

더 나아가, JIT는 종종 SAML의 일부분으로 제공되며 시스템별로 구현이 일관되지 않은 반면, SCIM은 아이덴티티 관리에 대한 잘 정의된 표준 프로토콜(RFC 7644)입니다.

일부 대규모 조직은 계정 프로비저닝을 위해 SCIM을 사용하고 있으며, 이를 자체 시스템에 통합하고 있습니다. 이는 매우 복잡할 수 있으며, 경우에 따라 달라질 수 있습니다. 이러한 조직에서는 자동화된 프로세스와 수동 관리자가 개입하는 프로비저닝 시스템을 모두 포함할 수 있는 시스템을 갖추고 있을 수 있습니다.

Logto에서의 Just-in-Time 프로비저닝

Logto에서 우리는 SSO Just-in-Time 프로비저닝이메일 도메인 Just-in-Time 프로비저닝을 지원합니다.

Logto에서 우리는 사용자가 특정 기준을 충족할 경우 자동으로 조직에 가입하고 역할을 받을 수 있도록 하는 기능을 조직 수준에서 제공합니다.

우리는 JIT 기능을 가장 확장 가능하고 안전한 수준에서 구현하여, 개발자가 클라이언트의 온보딩 프로세스를 쉽게 자동화할 수 있도록 합니다. 그러나 이전에 논의한 바와 같이, 프로비저닝 시스템은 복잡하고 클라이언트의 특정 요구사항에 맞게 맞춤화될 수 있기 때문에, Logto의 사전 구축된 JIT 기능과 신중하게 설계된 시스템, 그리고 Logto 관리 API를 활용하여 강력한 프로비저닝 시스템을 구축해야 합니다.

Logto에서의 작동 방식을 다음 다이어그램을 통해 확인해봅시다,

엔터프라이즈 SSO 프로비저닝

Logto에서 엔터프라이즈 SSO를 설정했다면, 당신의 조직 엔터프라이즈 SSO를 선택하여 Just-in-time 프로비저닝을 활성화할 수 있습니다.

엔터프라이즈 SSO를 통해 최초로 로그인하는 새로운 사용자 또는 기존 사용자는 자동으로 조직에 가입하고 기본 조직 역할을 부여받습니다.

다음 표는 가능한 흐름을 나열한 것입니다:

사용자 상태흐름 설명
사용자가 존재하지 않으며 JIT가 활성화됨.사용자가 생성됨과 동시에 해당 조직에 적절한 역할로 자동으로 가입됩니다.
사용자가 엔터프라이즈 SSO와 동일한 검증된 이메일 주소로 존재하며, JIT가 활성화됨.사용자의 이메일 주소가 자동으로 엔터프라이즈 SSO 계정과 연결되며, 적절한 역할로 해당 조직에 가입됩니다.
사용자가 존재하지 않으며 JIT가 활성화되지 않음.정상적인 SSO 실패 흐름.
사용자가 존재하며 JIT가 활성화되지 않음.정상적인 SSO 흐름.

SSO 프로비저닝

이메일 도메인 프로비저닝

조직이 전용 엔터프라이즈 SSO를 갖추고 있지 않은 경우, 이메일 도메인을 사용하여 Just-in-Time 프로비저닝을 활성화할 수 있습니다. 이는 엔터프라이즈 SSO에 대한 예산이 부족하지만 여전히 일정 수준의 회원 온보딩 자동화 및 보안 관리를 원하는 소규모 비즈니스에서 주로 발생합니다.

사용자가 가입할 때, 그들의 검증된 이메일 주소가 조직 수준에서 설정된 이메일 도메인과 일치하면, 적절한 역할로 해당 조직에 프로비저닝됩니다.

이메일 도메인 프로비저닝

이메일 도메인 프로비저닝은 다음에 적용됩니다:

  1. 이메일 가입 인증
  2. 소셜 가입 인증

이메일 흐름

사용자 상태흐름 설명
사용자가 존재하지 않으며 이메일로 가입하고, JIT가 활성화됨.사용자가 생성됨과 동시에 해당 조직에 적절한 역할로 자동으로 가입됩니다.
사용자가 프로비저닝된 이메일 도메인과 동일한 검증된 이메일 주소로 존재하며, JIT가 활성화됨.정상적인 이메일 로그인 흐름.
사용자가 존재하지 않으며 이메일로 가입하고, JIT가 활성화되지 않음.정상적인 이메일 가입 흐름.
사용자가 존재하며 이메일로 로그인하고, JIT가 활성화되지 않음.정상적인 이메일 로그인 흐름.

소셜 흐름

사용자 상태흐름 설명
사용자가 존재하지 않으며, 검증된 이메일로 소셜 계정으로 가입하고, JIT가 활성화됨.사용자가 생성됨과 동시에 해당 조직에 적절한 역할로 자동으로 가입됩니다.
사용자가 존재하지 않으며, 검증되지 않은 이메일 또는 이메일이 없는 소셜 계정으로 가입하고, JIT가 활성화됨.정상적인 소셜 가입 흐름.
사용자가 프로비저닝된 이메일 도메인과 동일한 검증된 이메일 주소로 존재하며, 소셜 계정으로 로그인하고, JIT가 활성화됨.정상적인 소셜 로그인 흐름.
사용자가 존재하지 않으며, 소셜 계정으로 가입하고, JIT가 활성화되지 않음.정상적인 소셜 가입 흐름.
사용자가 존재하며, 소셜 계정으로 로그인하고, JIT가 활성화되지 않음.정상적인 소셜 로그인 흐름.

이메일 도메인 프로비저닝과 엔터프라이즈 SSO 간의 잠재적 충돌 처리

초기에는 이메일 도메인 프로비저닝을 설정하고 나중에 동일한 이메일 도메인에 대해 엔터프라이즈 SSO를 구성한 경우, 사용자 이메일 주소를 입력하면 이메일 인증을 우회하고 SSO 흐름으로 리디렉션됩니다. 즉, JIT 프로세스가 트리거되지 않습니다.

이를 해결하기 위해 구성 시 경고 메시지를 표시할 것입니다. Just-in-time 프로비저닝을 활성화하려면 올바른 SSO를 선택하고 이메일 도메인 프로비저닝에 의존하지 않도록 처리하세요.

충돌 해결

기본 조직 역할

사용자를 프로비저닝할 때 기본 조직 역할을 설정할 수 있습니다. 역할 목록은 조직 템플릿에서 가져오며, 역할을 선택하거나 빈칸으로 둘 수 있습니다.

엔터프라이즈 SSO Just-in-Time 업데이트

다행히도, 우리는 이미 이 기능을 엔터프라이즈 SSO에 내장했습니다! 첫 로그인 시 또는 매 로그인 시 프로필 정보가 Logto에 동기화될지를 선택할 수 있습니다. 향후 역할 및 조직 매핑, 재프로비저닝과 같은 더 많은 기능을 추가할 예정입니다.

SSO JIT 업데이트

여기에서 자세히 알아보세요.

Just-in-Time 기능은 Logto에서 즉시 사용할 수 있습니다. 오늘 Logto에 가입하여 클라이언트의 회원 온보딩을 자동화하기 시작하세요.