원문 캡처 · fusionauth.io
원문 캡처 · fusionauth.io

서비스형 소프트웨어(SaaS)를 기업에 판매하고 그 기업이 최종 사용자에게 제공하는 구조는 B2B2U라고 부른다. 최종 사용자가 중간 기업의 고객이면 B2B2C, 직원이나 계약자이면 B2B2E다. 두 모델은 다중 테넌트와 데이터 격리 문제를 공유하지만, 사용자 신원을 누가 소유하고 관리하는지에 따라 인증과 접근 관리 방식이 달라진다.

B2B2U 구조에는 애플리케이션을 만드는 SaaS 기업, 제품을 구매해 최종 사용자에게 제공하는 중간 기업, 그리고 소프트웨어를 사용하는 최종 사용자가 참여한다. 최종 사용자는 보통 SaaS 기업을 직접 알지 못한다. 예를 들어 근태 관리 소프트웨어를 SaaS 기업이 은행에 판매하면, 은행과 소프트웨어를 이용하는 직원이나 거래처가 각각 중간 기업과 최종 사용자 역할을 한다.

B2B2C에서는 최종 사용자가 중간 기업의 고객이며, 그 기업의 서비스에 비용을 내거나 앞으로 낼 수 있다. 은행이 외부 SaaS 기업이 개발한 개인 금융 관리 도구를 제공하는 경우가 이에 해당한다. 사용자가 직접 가입하고 정보를 관리하는 경험을 지원하는 동시에, 중간 기업의 보안과 규정 준수 요구도 충족해야 한다. 따라서 가입·전환·유지 기능과 프로필 관리, 계정 복구, 다중 인증 같은 기능이 중요하다. 사용자 수나 이용량에 따라 가격을 책정하는 경우도 많다.

B2B2E에서는 최종 사용자가 중간 기업의 직원이나 계약자다. 이때 사용자 신원은 대체로 기업이 소유하고 통제하며, 직원이 입사하거나 퇴사할 때 접근 권한을 추가하거나 회수해야 한다. 이에 따라 SAML, OpenID Connect(OIDC) 같은 기업용 인증 연동과 계정 생명주기를 관리하는 SCIM 연동이 중요해진다. 역할을 애플리케이션 권한에 연결하고, 감사 및 규정 준수 요건을 지원하는 기능도 요구될 수 있다. 가격은 좌석 수나 기업 단위 라이선스를 기준으로 하는 경우가 흔하다.

두 모델 모두 SaaS 제공업체가 여러 기업의 사용자와 데이터를 분리하고, 권한이 다른 기업의 데이터까지 확장되지 않도록 해야 한다. 테넌트별 호스트 이름, 사용자가 입력하는 테넌트 식별자, 로그인 후 기업 선택, 요청의 IP 주소나 사용자 에이전트 같은 속성을 이용해 사용자를 올바른 테넌트로 연결할 수 있다. 중간 기업은 자사 테넌트의 이용 현황과 성능을 확인할 수 있어야 하며, 고객 지원도 해당 테넌트의 맥락을 고려해야 한다.

설계의 우선순위는 최종 사용자에 따라 달라진다. B2B2C는 사용자가 자신의 신원을 관리하면서 중간 기업이 가입과 참여를 지원하는 방식에 가깝다. 반면 B2B2E는 기업의 신원 관리 체계와 접근 통제가 중심이다. 따라서 SaaS 제공업체는 두 경우 모두 보안과 유연성, 사용 편의성을 갖춰야 하지만, 어떤 인증 연동과 운영 기능이 필요한지는 고객과 최종 사용자의 관계에 맞춰야 한다.

관련 기술 자료: B2B2C 기술 사용 사례, B2B2E 기술 사용 사례