Przejdź do głównej zawartości

Konta zespołu — właściciele, cykl życia dostępu i warunki danych

Konta zespołowe w narzędziach AI do programowania to przede wszystkim kontrola tożsamości, a dopiero potem sposób płatności. Maksymalny wynik w pytaniu Q3 CTO Scorecard wymaga imiennych kont należących do organizacji, logowania technicznie przypiętego do niej, przetestowanych kontroli joiner/mover/leaver i comiesięcznego uzgodnienia licencji oraz kosztów. Sama firmowa faktura go nie daje.

Ta strona jest dla CTO lub VP Engineering, który odpowiada za wydatki na narzędzia AI, oraz dla tech leada, który prowadzi comiesięczny przegląd licencji. Typowy punkt wyjścia: dział finansów płaci za 60 licencji Claude i Codex, dostawca tożsamości (IdP) ma 52 aktywnych inżynierów, dwie osoby, które odeszły, wciąż mogą się zalogować, a trzy kolejne rozliczają prywatne plany jako wydatki służbowe, bo na firmowej licencji „skończył się limit”. Nikt nie potrafi powiedzieć, które z tych kont obejmują firmowe warunki przetwarzania danych.

  • Macierz przydziału licencji, która przypisuje rolom i workflow typ licencji i klasę danych, więc nikt nie kupuje najwyższego planu „na wszelki wypadek”.
  • Zarządzane ustawienia logowania dla Claude Code i Codex, które odrzucają prywatne konta i konta obcych organizacji na firmowych komputerach.
  • Runbook joiner/mover/leaver z ćwiczeniem offboardingu, które zostawia dowody.
  • Skrypt uzgadniający eksport z IdP z eksportem licencji każdego dostawcy, który kończy się błędem, gdy znajdzie licencję osieroconą albo należącą do osoby, która odeszła.
  • Kryteria akceptacji, które zespół bezpieczeństwa i finanse mogą zatwierdzić bez ręcznego audytu każdego konta.

Scorecard CTO daje cztery odpowiedzi na pytanie „Jak zarządzacie kontami usług AI, cyklem życia dostępu, warunkami danych i kosztami?”. Tabela pokazuje, co każda z nich zostawia bez kontroli.

OdpowiedźWynikCo pozostaje bez kontroli
Deweloperzy płacą sami, bez zwrotu0Wszystko: warunki danych, dostęp, offboarding, koszt
Zwrot za prywatne faktury1Warunki danych i offboarding; konto należy do pracownika
Centralny zakup planów indywidualnych (Pro, Max)2Przypięcie tożsamości, SSO, audyt; firma płaci, ale nie może odebrać dostępu ani zajrzeć do konta
Centralnie zarządzane konta z właścicielami, kontrolą joiner/mover/leaver, przeglądem warunków danych i audytowalnym kosztem3Nic strukturalnego, pod warunkiem że kontrole opisane niżej są testowane

Różnica między 2 a 3 to przypięcie tożsamości. Plan indywidualny opłacany przez firmę nadal jest kontem prywatnym. Nie odbierzesz go z poziomu IdP, a ustawienia danych na poziomie organizacji go nie obejmują. Plany zespołowe i enterprise istnieją właśnie po to, by tę lukę zamknąć. Wybór planu i poziomu to decyzja zakupowa opisana w zakupie narzędzi AI do programowania. Aktualne ceny planów są w jednym miejscu: w analizie kosztów.

  1. Spisz macierz przydziału licencji. Wypisz każdą rolę, workflow, które wykonuje z agentami, i najwyższą klasę danych, z jaką ma kontakt. Typ licencji wyprowadzaj z danych o użyciu, nie ze stażu. Szablon w następnej sekcji to artefakt do przyjęcia.

  2. Przejrzyj usługę przed pierwszą licencją. Dla każdego narzędzia i planu zapisz produkt, plan, kontrolę tożsamości (SSO, SCIM), retencję danych, użycie do trenowania, podprocesorów, region i właściciela umowy. Weryfikuj plan, nie markę. Anthropic wymienia na przykład SCIM, Compliance API i zero data retention (ZDR) jako funkcje planu Enterprise, a panel analityczny jako funkcję planów Team i Enterprise (strona dostępności funkcji Claude Code, sprawdzone 2026-09-26). Sam przegląd danych prowadzisz według strony prywatność danych i polityki firmowe.

  3. Zakładaj imienne konta przez IdP. Używaj SSO wszędzie, gdzie plan to oferuje, SCIM tam, gdzie plan go obsługuje, MFA i żadnych współdzielonych danych logowania. Następnie przypnij narzędzia na firmowych komputerach do organizacji ustawieniami zarządzanymi (zob. Przypnij każde logowanie do organizacji). Bez tego deweloper zaloguje się kontem prywatnym, a opłacona licencja będzie leżeć bezczynnie.

  4. Co miesiąc uzgadniaj dostęp i koszty. Porównaj eksport z IdP, eksport licencji każdego dostawcy, daty ostatniej aktywności i fakturę. Uruchom skrypt uzgadniający z tej strony i dołącz jego wynik do faktury.

  5. Przeprowadź offboarding, a potem go udowodnij. Odbierz dostęp w IdP, usuń licencję u dostawcy, przekaż artefakty należące do tej osoby (współdzielone projekty, zaplanowane zadania, klucze API przypięte do niej), zrotuj dane uwierzytelniające, do których miała dostęp, i zachowaj zapis audytowy. Raz na kwartał przećwicz to na koncie testowym.

Skopiuj tę tabelę do polityki narzędziowej i wypełnij ją na podstawie realnych danych o użyciu. Nazwy licencji to przykłady z obecnych planów Claude i Codex. Anthropic opisuje licencję Team Premium jako dającą „5x more usage than standard seats” (claude.com/pricing, sprawdzone 2026-09-26), dlatego macierz przypisuje poziomy według obciążenia, a nie stanowiska.

RolaZatwierdzone workflow z agentamiNajwyższa klasa danychNarzędzie i typ licencjiWymagane kontroleWłaściciel
Inżynier produktowyLokalne sesje agenta, review PRKod wewnętrznyplan Claude Team, licencja Standard, albo Codex w workspace BusinessSSO, zarządzane przypięcie logowaniaKierownik zespołu inżynierskiego (engineering manager)
Inżynier platformowyDługie i równoległe przebiegi agentów, agenci w CIKod wewnętrzny, konfiguracja infrastrukturyplan Claude Team, licencja Premium (lub odpowiednik w Enterprise)SSO, ustawienia zarządzane, osobna tożsamość w CI według strony tożsamość i sekrety agentówLider platformy
Inżynier danychSesje agenta na schematach hurtowniPoufneWyłącznie plan Enterprise z ustawieniem retencji wymaganym przez przegląd danychSSO, SCIM, przejrzana retencja, minimalne uprawnienia MCPLider zespołu danych
KontraktorSesje agenta w jednym repozytoriumKod wewnętrznyLicencja w twoim workspace, nigdy jego własne kontoSSO, data końca w IdP, brak kluczy APIWłaściciel umowy

Zakup licencji zespołowych nie powstrzyma dewelopera przed zalogowaniem się prywatnym kontem na tym samym laptopie. Rozwiązaniem jest ustawienie zarządzane, które odrzuca każde logowanie spoza organizacji. Pełna polityka dla wszystkich narzędzi (modele, serwery MCP, pluginy, minimalny poziom uprawnień) jest na stronie jedna polityka dla wszystkich agentów. Ta sekcja dotyczy wyłącznie przypięcia kont.

Wdróż te klucze przez źródło zarządzane na urządzeniu: managed-settings.json (w Linuksie i WSL /etc/claude-code/managed-settings.json), profil konfiguracyjny macOS albo rejestr zasad Windows.

{
"forceLoginMethod": "claudeai",
"forceLoginOrgUUID": "YOUR_ORG_UUID"
}

YOUR_ORG_UUID to identyfikator organizacji widoczny w ustawieniach administracyjnych claude.ai dla organizacji Team lub Enterprise. Gdy klucze są w źródle zarządzanym, Claude Code zgłasza błąd przy logowaniu claude.ai do innej organizacji i kończy działanie przy starcie, jeśli używane poświadczenie należy do organizacji spoza listy. Blokuje też sesje uwierzytelniane przez ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN lub apiKeyHelper, bo dla poświadczenia ze środowiska nie da się sprawdzić przynależności do organizacji.

Cztery luki, o których musisz wiedzieć (dokumentacja uwierzytelniania Claude Code, sprawdzone 2026-09-26 dla v2.1.283):

  • Ustawienia zarządzane z serwera (konsola claude.ai) docierają tylko do kont już zalogowanych do organizacji, więc nie przekierują pierwszego logowania. Umieść klucze w źródle na urządzeniu, a jeśli używasz ustawień z serwera, także tam, bo źródła zarządzane się nie scalają.
  • Interaktywny ekran /login tylko wstępnie wybiera metodę, nie wymusza jej, więc deweloper nadal może tam dokończyć logowanie przez Claude Console, a Claude Code nie sprawdza, do której organizacji należy poświadczenie Console, ani przy logowaniu, ani przy starcie. Połącz przypięcie z kontrolami workspace w Console albo odbierz deweloperom dostęp do Console.
  • claude setup-token i /install-github-app wymuszają tylko forceLoginMethod, więc mogą wygenerować token w innej organizacji.
  • Sesje dostawców chmurowych (Amazon Bedrock i inni) oraz poświadczenia profilu lub federacji Anthropic nie są sprawdzane pod kątem organizacji; są blokowane tylko wtedy, gdy na komputerze jest też poświadczenie w postaci klucza API. Ogranicz je przez IAM w chmurze i dostawcę tożsamości.

Eksporty licencji i faktury rozjeżdżają się z IdP w ciągu kilku tygodni: osoby, które odeszły, zachowują licencje, kontraktorzy zachowują dostęp po zakończeniu umowy, a po zmianie nazwiska ktoś dostaje drugą licencję w tym samym narzędziu. Poniższy skrypt porównuje jeden eksport z IdP z dowolną liczbą eksportów licencji i kończy się kodem różnym od zera, gdy znajdzie licencję osieroconą lub należącą do osoby, która odeszła. Możesz więc uruchamiać go jako zaplanowane zadanie CI. Skrypt dopasowuje osoby po adresie e-mail, więc zmiana nazwiska, która zmienia adres, pojawi się jako ORPHANED dla starego adresu; zanim usuniesz taką licencję, sprawdź historię aliasów w IdP.

#!/usr/bin/env python3
"""Reconcile AI tool seats against the identity provider export.
Usage: python3 reconcile_seats.py idp.csv seats-claude.csv seats-codex.csv ...
idp.csv: email,status,cost_center (status: active | suspended | terminated)
seats-*: email,seat_type,last_active (last_active: YYYY-MM-DD, empty if never)
"""
import csv, sys
from datetime import date, timedelta
STALE_AFTER = timedelta(days=30)
def rows(path):
with open(path, newline="") as f:
return [{k: (v or "").strip() for k, v in r.items()} for r in csv.DictReader(f)]
idp = {r["email"].lower(): r for r in rows(sys.argv[1])}
findings, seen = [], {}
for path in sys.argv[2:]:
for seat in rows(path):
email = seat["email"].lower()
person = idp.get(email)
seen.setdefault(email, []).append(path)
if person is None:
findings.append((path, email, "ORPHANED: no identity in the IdP export"))
elif person["status"] != "active":
findings.append((path, email, f"LEAVER: IdP status is {person['status']}"))
elif not person.get("cost_center"):
findings.append((path, email, "UNOWNED: no cost center"))
last = seat.get("last_active")
try:
seen_on = date.fromisoformat(last[:10]) if last else None
except ValueError:
findings.append((path, email, f"BADDATE: last_active is {last!r}"))
continue
if seen_on is None or date.today() - seen_on > STALE_AFTER:
findings.append((path, email, f"IDLE: last active {last or 'never'}"))
for email, paths in seen.items():
if len(paths) != len(set(paths)):
findings.append((paths[0], email, "DUPLICATE: two seats in one tool"))
w = csv.writer(sys.stdout)
w.writerow(["source", "email", "finding"])
w.writerows(sorted(findings))
sys.exit(1 if any(f[2].startswith(("ORPHANED", "LEAVER")) for f in findings) else 0)

Eksporty dostawców mają własne nazwy kolumn, więc przed uruchomieniem zmień je na email, seat_type i last_active. Skrypt czyta pierwsze dziesięć znaków last_active jako datę RRRR-MM-DD, więc znacznik czasu ISO, np. 2026-09-01T10:00:00Z, zadziała; każdy inny format daty sprowadź do RRRR-MM-DD, inaczej wiersz trafi do wyniku jako BADDATE. Skąd wziąć dane, według dokumentacji z 2026-09-26:

  • Claude Team i Enterprise: email weź z listy członków organizacji w ustawieniach administracyjnych claude.ai, a aktywność z panelu analitycznego Claude Code (claude.ai/analytics/claude-code), który pokazuje dzienną liczbę aktywnych użytkowników i eksportuje dane per użytkownik do CSV; sprawdź, czy eksport zawiera datę, którą da się przypisać do last_active. Raport wydatków w ustawieniach analityki organizacji służy tylko jako źródło kosztów: pojawia się dopiero po włączeniu kredytów użycia (usage credits) i nie mierzy użycia w ramach limitu licencji. W planie Enterprise Claude Enterprise Analytics API zwraca raporty zaangażowania, użycia i kosztów per użytkownik; w planie Team to API nie jest dostępne.
  • Claude Console (rozliczenie przez API): tabela team insights pokazuje miesięczny koszt per użytkownik, a Claude Code Analytics API zwraca te same dzienne metryki per użytkownik po uwierzytelnieniu kluczem Admin API. Anthropic zaznacza, że kwoty w panelu są szacunkowe; faktyczne koszty są na stronie rozliczeń.
  • Codex i Cursor: użyj eksportu członków i użycia z panelu administratora workspace. Formatu żadnego z tych eksportów nie dało się tu zweryfikować, więc przed zaplanowaniem zadania sprawdź nazwy kolumn na prawdziwym eksporcie.

IDLE traktuj jako powód do rozmowy, nie do anulowania. Licencja nieużywana od 30 dni może należeć do kogoś na urlopie. ORPHANED i LEAVER traktuj jako incydenty: usuń licencję tego samego dnia i zapisz, dlaczego IdP tego nie wychwycił. Jako punkt odniesienia dla budżetu: według Anthropic średni koszt we wdrożeniach firmowych to „around $13 per developer per active day and $150-250 per developer per month” (strona kosztów Claude Code, sprawdzone 2026-09-26). Przypisywanie kosztów do zespołów i wyników opisuje strona zarządzanie kosztami użycia AI.

Uruchom je w Claude Code, Codex lub Cursor z eksportami w katalogu roboczym. We wszystkich trzech narzędziach działają tak samo. Dane osobowe przetwarzaj wyłącznie w narzędziach zatwierdzonych w przeglądzie danych.

Nie musisz otwierać każdego konta. Potrzebujesz dowodów, które dają wyraźny sygnał, gdy kontrola przestaje działać, i imiennej osoby, która je zatwierdza.

KontrolaDowódWarunek zaliczeniaZatwierdza
Właściciel licencjiComiesięczny wynik uzgodnienia dołączony do fakturyZero wierszy ORPHANED i LEAVER albo każdy zamknięty zgłoszeniemKontroler finansowy odpowiedzialny za inżynierię
Przypięcie logowaniaPróba logowania prywatnym kontem na zarządzanym komputerzeNarzędzie ją odrzuca, a odrzucenie jest zapisaneLider bezpieczeństwa
OffboardingKwartalne ćwiczenie na koncie testowymPierwsze nieudane logowanie w docelowym czasie od zawieszenia w IdPWłaściciel IT lub tożsamości
Warunki danychDatowany rekord usługi dla każdego narzędzia i planuKonfiguracja konta zgadza się z zatwierdzonym rekordemWłaściciel ochrony danych
WyjątkiRejestr wyjątkówKażdy prywatny plan ma właściciela, zakres i niewygasłą datę końcaCTO

Dwie zasady sprawiają, że ten proces jest wiarygodny. Po pierwsze, przegląd kosztów patrzy na nieużywane licencje i ukończoną pracę. Nigdy nie układa rankingu pracowników według aktywności, bo ranking zużycia tokenów nagradza marnotrawstwo. Po drugie, dowody leżą tam, gdzie audytor może je przeczytać: pliki CSV z uzgodnień, zapisy ćwiczeń i rekordy usług trafiają do wersjonowanego repozytorium lub zgłoszenia, a nie do wątku na czacie.

Centralna faktura, niezarządzany dostęp. Finanse płacą za licencje, a deweloperzy dalej logują się prywatnymi kontami. Uzgodnienie pokazuje licencje bez aktywności przy wysokim użyciu. Naprawa: wdróż zarządzane przypięcie logowania z zakładek powyżej, a potem sprawdź logowaniem prywatnym kontem, że zostaje odrzucone.

IdP nie jest źródłem prawdy. Licencje dodano ręcznie w konsoli dostawcy, więc usunięcie przez SCIM lub SSO ich nie obejmuje. Pierwsze uzgodnienie pokazuje wiersze ORPHANED. Naprawa: usuń osierocone licencje, ogranicz przydzielanie licencji do grup w IdP tam, gdzie plan na to pozwala, i ustaw zadanie uzgadniające tak, by każda nowa osierocona licencja przerywała build.

Tokeny działają dłużej niż zatrudnienie. Licencji już nie ma, ale klucz API, token o długim okresie ważności z claude setup-token albo sekret CI założony przez tę osobę nadal działa. Naprawa: dodaj inwentaryzację poświadczeń do runbooka offboardingu, zrotuj wszystko, co ta osoba mogła odczytać, i przenieś agentów CI na własne tożsamości, jak opisuje strona tożsamość i sekrety agentów.

Limity użycia wypychają ludzi z powrotem na prywatne plany. Deweloperzy na niższej licencji trafiają na limit i rozliczają prywatny plan, co znów otwiera lukę w warunkach danych. Naprawa: przenieś te osoby na wyższą licencję przez macierz przydziału licencji, a każdy wniosek o zwrot za plan AI traktuj jako sygnał do przeglądu macierzy, nie jako koszt do zwrotu.

Warunki danych przejrzane raz i nigdy więcej. Zmiana planu, nowy model lub nowa funkcja zmieniają retencję. Anthropic klasyfikuje na przykład Claude Fable 5.1 jako Covered Model, który domyślnie wymaga retencji danych, co ma znaczenie dla organizacji z ZDR. Naprawa: przeglądaj rekord usługi przy każdej zmianie planu, domyślnego modelu lub funkcji dotyczącej danych i opatrz każdy rekord datą.

Zarządzanie kontami leży między decyzją o zatwierdzonych workflow a modelem kosztów. Zacznij od polityki, potem zajmij się wydatkami.