IT와 보안 담당자용
이미 다들 만들고 있어요. 안전하게 둘 곳을 주세요.
TeamOnly는 AI로 만든 사내 툴을 회사 로그인 뒤에서 호스팅해요. 앱 코드가 실행되기 전에 로그인을 강제하고, 모든 앱을 서로 격리하고, 모든 앱에 지정된 담당자가 있어요. 만드는 사람이 보안을 설정할 일이 없으니, 잘못 설정할 일도 없어요.
01지금
지금 일어나고 있는 일
재무팀의 누군가가 주말 동안 승인 툴을 만들었어요. 잘 돌아가요. 그런데 개인 계정에서 돌아가고, 공개돼 있을 수도 있고, 링크는 단체 채팅방에 있어요.
- 개인 계정. 앱은 만든 사람이 가입한 아무 플랫폼에서 그 사람 카드로 결제되며 돌아가요. 그 사람이 퇴사하면 회사가 볼 수 있는 것도 함께 사라져요.
- 기본이 공개. 많은 AI 앱 빌더는 비공개 옵션에 돈을 내거나 그 옵션을 찾지 않으면 웹에 공개로 올려요.
- 채팅방 속 링크. 접근 제어가 “링크를 가진 사람”이에요.
가정이 아니에요. 2026년 5월, RedAccess 연구진은 AI 툴로 만든 앱 수천 개가 누구나 접근할 수 있는 상태로 회사 또는 개인 데이터를 노출하고 있었고, 그중 상당수가 Google에 색인돼 있었다고 발표했어요. (Security Boulevard 기사.)
경비 앱 앞에 관계자 외 출입금지라고 적힌 문이 있어요. sam@acme.com으로 로그인한 Sam은 문에서 확인을 받고 들어가요. 이어서 randomperson@gmail.com과 봇이 같은 문에서 확인을 받고 돌려보내져요. 확인이 앱보다 먼저, 문에서 이뤄지기 때문에 이들은 앱에 닿지도 못해요.
02먼저 강제
앱 코드보다 로그인이 먼저
모든 앱으로 가는 모든 요청은 먼저 저희 디스패치 계층을 거쳐요. 여기서 세션을 확인하고, 로그인한 회사 도메인 사람만 앱으로 넘겨요.
디스패치 계층은 요청이 위조하려는 신원 헤더를 모두 제거하고, 확인된 이름과 이메일을 직접 넣어요. 앱은 누가 로그인했는지 믿을 수 있고, 만드는 사람이 로그인을 끌 수도 없어요.
로그인 없이 접근할 수 있는 앱은 없어요. 공개 설정도 없어요.
03신원
로그인은 회사 도메인으로 제한
ID 공급자는 이미 쓰고 있는 걸 그대로 써요. Google Workspace와 Microsoft 365 모두 지금 바로 되고, 다른 회사 이메일도 일회용 코드로 돼요. 회사 도메인 주소만 들어와요.
로그인은 도메인 클레임까지 포함해 저희 서버에서 검증해요. 누구나 지울 수 있는 hd 힌트에는 의존하지 않아요.
회사 및 학교 계정만 허용해요. 개인 Microsoft 계정은 거부되고, 이메일 도메인은 회사 도메인 중 하나여야 해요.
Zoho, Fastmail, GoDaddy, 자체 메일 서버를 쓰나요? 동료들은 회사 주소로 6자리 코드를 받아요. 코드는 10분 뒤 만료되고, 5번까지 시도할 수 있고, 요청한 브라우저에서만 작동해요. 모든 보호 장치.
acme.com과 acme.co.uk처럼 도메인이 여러 개인가요? 모두 추가하세요. 디렉터리에서 누군가를 비활성화하면 그 사람은 어떤 앱에도 로그인할 수 없어요.
04격리
앱마다 각자의 방
고객 코드는 신뢰할 수 없는 코드로 다뤄요. 각 앱은 따로 실행되고, 그 앱을 위해 만든 것에만 접근할 수 있어요.
방 세 개가 있는 평면도: expenses, inventory, lookup 앱이에요. 방마다 자기 데이터, 파일, 시크릿을 갖고 있어요. expenses 앱이 inventory 방으로 손을 뻗다가 벽에 막혀요. inventory 앱도 lookup 방으로 손을 뻗다가 벽에 막혀요. 데이터, 쿠키, 시크릿은 각자의 방에 그대로 있어요.
- 데이터
- 자기 데이터베이스. 어떤 앱도 다른 앱의 데이터베이스 자격 증명을 갖고 있지 않아요.
- 파일
- 자기 저장 공간. 그 앱의 바인딩으로만 접근할 수 있어요.
- 쿠키
- 세션 쿠키는 앱의 정확한 주소로만 범위가 정해지고, 공유 상위 도메인에는 절대 설정되지 않아요.
- 시크릿
- 코드 밖에 저장되고, 그 시크릿이 속한 앱에만 주어져요.
05인벤토리
한 목록에 모두: 앱, 담당자, 접근 권한, 마지막 배포
조직의 모든 앱에는 지정된 담당자와 접근 규칙이 있어요: 회사 전체 또는 지정한 사람 목록. dashboard.teamonly.dev의 대시보드는 모든 앱, 담당자, 열 수 있는 사람, 모든 배포를 보여 주고, 관리자는 거기서 앱을 열 수 있는 사람을 바꾸거나 앱을 새 담당자에게 넘길 수 있어요. npx teamonly whoami는 같은 목록을 터미널에서 보여 줘요. 요청하면 전체 목록을 IT 팀에 이메일로 보내 드릴 수도 있어요.
만드는 사람이 무료 체험이나 카드로 직접 가입하기 때문에 IT 팀이 관여하기 전에 앱이 생길 수 있어요. 바로 그게 핵심이에요: 준비가 되면 IT 팀이 조직을 넘겨받고, 모든 게 이미 한곳에 있어요.
앱 페이지마다 승인자나 재무 같은 앱 안의 역할과 그 역할을 가진 사람도 보여 주고, 관리자가 거기서 바꿀 수 있어요. 앱은 회사 사람에게만 이메일을 보낼 수 있고, 같은 페이지에서 앱마다 지난 30일 동안 보낸 이메일 수와 예약 작업이 마지막으로 실행된 때를 볼 수 있어요.
acme.com의 앱 대장이 한 줄씩 채워져요. expenses: 담당자 dana@acme.com, acme.com 전 직원에게 공개, 마지막 배포 오늘 9:41. inventory: 담당자 marco@acme.com, 6명에게 공개, 어제 배포. lookup: 담당자 priya@acme.com, priya, marco 외 3명에게 공개, 10월 21일 배포. requests: 담당자 lee@acme.com, acme.com 전 직원에게 공개, 10월 18일 배포. 이어서 marco@acme.com이 퇴사 처리되고, 그에게 접근 권한을 주던 줄은 모두 지워져요.

06퇴사자 처리
누군가 퇴사하면
회사 계정을 비활성화하면 TeamOnly에도, 어떤 앱에도 더 이상 로그인할 수 없어요. 그 사람의 앱을 쓰던 사람들은 별도 계정이 아니라서, 따로 지울 것도 없어요.
그 사람의 앱은 다른 사람들을 위해 계속 운영돼요. 관리자가 대시보드에서 앱마다 새 담당자에게 넘기니, 책임자 없이 남는 앱이 없어요.
07범위
처음부터 사내 앱 전용
TeamOnly는 공개 웹사이트나 고객용 앱을 호스팅하지 않아요. 앱을 공개로 바꾸는 설정이 없으니, 실수로 공개될 일도 없어요.
로그인 화면을 포함해 앱의 모든 응답이 검색 엔진에 색인하지 말라고 요청해요.
08Business 요금제
Business 요금제에서는
IT 팀이 관리를 맡을 때를 위한 요금제예요. 아래 항목이 모두 포함되고, 가입할 때 IT 팀과 함께 설정해 드려요.
- Okta, OneLogin 등 SSO회사 ID 공급자를 OpenID Connect나 SAML로. IT 팀과 함께 설정.
- 감사 로그누가 언제 배포하고, 접근 권한을 바꾸고, 무엇을 열었는지. 함께 구성.
- 데이터 리전앱 데이터를 저장할 곳을 골라요. 가입할 때 함께 설정해 드려요.
- 인보이스 결제카드 대신 인보이스로 결제. 가입할 때 함께 준비해요.
월 $899, 지금 구독할 수 있어요. Business 구독하기.
09정책
금지보다 나은 이유
사람들이 이런 툴을 만드는 건 실제 문제를 풀기 때문이에요. 금지한다고 문제가 사라지진 않아요. 툴이 보이지 않는 곳으로 옮겨 갈 뿐이에요.
만드는 사람에게 승인된 배포 장소 한 곳을 주면, 툴은 회사 로그인 뒤에, 회사 도메인 규칙을 따라, 읽을 수 있는 목록에 남아요. 허락은 하면서도 무엇이 돌아가는지는 알 수 있어요.
10허용 목록
네트워크에서 허용할 것
방화벽이나 웹 필터가 새 사이트를 막고 있다면, TeamOnly에 필요한 주소는 이것뿐이에요. 몇 분이면 되고, 한 번만 하면 돼요.
| 주소 | 필요한 사람 | 용도 |
|---|---|---|
*.<yourcompany>.teamonly.app | 앱을 여는 모든 사람 | 회사의 앱이에요. 대시보드에 나오는 TeamOnly의 회사 이름을 넣으세요. 다른 회사의 앱은 계속 막혀 있어요. |
auth.teamonly.app | 앱을 여는 모든 사람 | 로그인 단계예요. 앱이 열리기 전에 회사 계정을 확인해요. |
accounts.google.comlogin.microsoftonline.com | Google이나 Microsoft로 로그인하는 사람 | 회사 ID 제공자의 로그인 페이지예요. 보통 이미 허용되어 있어요. |
challenges.cloudflare.com | 이메일 코드로 로그인하는 사람 | 코드 입력 양식을 봇이 아닌 사람이 쓰는지 확인하는 단계예요. |
teamonly.devdashboard.teamonly.dev | 관리자와 제작자 | 대시보드예요. 모든 앱, 담당자, 열 수 있는 사람을 볼 수 있어요. |
api.teamonly.devregistry.npmjs.org | 제작자 | 터미널에서 npx teamonly로 배포할 때 써요. |
로그인 코드는 signin@teamonly.app에서, 초대는 hello@teamonly.app에서, 앱이 보내는 이메일은 notify@teamonly.app에서 와요. 메일 필터가 새 발신자를 보류한다면 teamonly.app에서 오는 메일을 허용하세요.
원하면 공개 앱 빌더 사이트는 계속 막아 두어도 돼요. 여기서 배포한 앱은 위에 있는 회사 전용 주소에서, 회사 로그인 뒤에서 실행돼요.
직원들이 이미 만든 AI 앱은 어떻게 찾나요?
SSO나 Google Workspace 로그인 기록에서 앱 빌더 플랫폼(Replit, Lovable, Vercel, Netlify)을 찾고, 경비 내역에서 구독료를 확인하는 것부터 시작하세요. 그다음 탓하지 말고 물어보세요. 누가 만드는 사람인지 알게 되면, 그 앱을 옮길 승인된 곳으로 TeamOnly를 알려 주세요.
Okta가 필요한가요?
아니요. 동료들은 Google Workspace, Microsoft 365, 또는 회사 이메일로 받은 코드로 로그인하고, 회사 도메인만 허용돼요. Okta, OneLogin 등 다른 SSO 제공자를 원하면 Business 요금제에 포함되고, IT 팀과 함께 설정해 드려요.
앱끼리 서로의 데이터를 볼 수 있나요?
아니요. 앱마다 자기 데이터베이스, 자기 파일 저장소, 자기 시크릿이 있어요. 앱에는 다른 것에 접근할 자격 증명이 없고, 세션 쿠키는 그 앱의 주소로만 범위가 정해져요. 자세한 내용은 보안 페이지에 있어요.
앱을 만든 사람이 퇴사하면 어떻게 되나요?
회사 계정이 비활성화되니 TeamOnly에도, 어떤 앱에도 더 이상 로그인할 수 없어요. 앱은 다른 사람들을 위해 계속 운영돼요. 관리자는 대시보드에서 그 사람의 앱을 하나씩 새 담당자에게 넘길 수 있어요. Business 요금제에서는 퇴사자 처리도 가입할 때 함께 설정해 드려요.
Okta나 SAML을 지원하나요?
Business 요금제에서는 지원해요. 가입할 때 IT 팀과 함께 OpenID Connect나 SAML로 Okta, OneLogin 등 SSO 제공자를 설정하고, 감사 로그도 함께 설정해요. Google Workspace, Microsoft 365, 이메일 코드 로그인은 모든 요금제에서 쓸 수 있어요.
앱이 회사 밖으로 이메일을 보낼 수 있나요?
아니요. 앱은 회사 자체 이메일 도메인의 주소, 즉 로그인할 수 있는 사람에게만 이메일을 보낼 수 있어요. 모든 이메일에 어느 앱이 보냈는지 적혀 있고, 앱마다 시간당 수신자 100명, 하루 500명 한도가 있으며, 대시보드에서 앱마다 지난 30일 동안 보낸 이메일 수를 볼 수 있어요.
얼리 액세스
만드는 사람에게 안전한 배포 장소를 주세요.
TeamOnly는 얼리 액세스 중이고, 지금 모든 요금제에 가입할 수 있어요. 만드는 사람은 카드 없이 14일 동안 무료로 써 보거나 구독할 수 있어요. 회사 준비는 바로 끝나고, 만드는 사람은 당일에 배포할 수 있어요.
아직 준비가 안 됐나요? 소식 받기
질문은 hello@teamonly.dev로 보내 주세요. 사람이 직접 답해요.