Claude Platform Docs
AmministrazioneSecurity posture

Riferimento per i risultati di Security posture

Consulta l’endpoint della Compliance API che restituisce i risultati attuali di Security posture di un’organizzazione: la richiesta, i campi della risposta, il significato di ciascuno stato e gli errori.

Questo endpoint restituisce una voce per la maggior parte dei controlli di sicurezza di un’organizzazione, valutati al momento della richiesta, con l’attestazione di Security posture che la risposta mostra per ciascun controllo. Ti serve una Compliance Access Key che copra l’organizzazione, con lo scope read:compliance_org_data o read:org_audit; Disponibilità di Security posture indica quali organizzazioni possono essere lette.

Richiesta

Invia una richiesta GET a /v1/compliance/organizations/{organization_id}/security_posture. Ogni chiamata legge una sola organizzazione e la risposta non è impaginata.

cURL
curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/security_posture" \
  -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  -H "anthropic-version: 2026-10-21"
ElementoRegola
organization_idL’uuid di un’organizzazione collegata ottenuto da Elencare le organizzazioni; qualsiasi altro valore restituisce 404.
ChiaveUna chiave per l’organizzazione padre può indicare qualsiasi organizzazione collegata, e una chiave per una singola organizzazione può indicare solo quell’organizzazione.
anthropic-versionObbligatorio; una richiesta senza di esso restituisce 400.
Parametri di queryNessuno; una richiesta con qualsiasi parametro di query restituisce 400.

Risposta

Il seguente esempio abbreviato mostra quattro dei controlli che una risposta può contenere. È la risposta a una chiave che dispone di read:compliance_org_data e read:compliance_user_data.

Response
{
  "type": "security_posture",
  "organization_id": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
  "evaluated_at": "2027-02-09T09:00:02.417305Z",
  "comments_status": "not_enabled",
  "controls": [
    {
      "id": "sso_enabled",
      "display_name": "Single sign-on (SSO)",
      "section": "identity_access",
      "setting_name": "sso_enabled",
      "status": "passed",
      "rating": "passed",
      "current_value": "On",
      "desired_state": "On",
      "attestation": null
    },
    {
      "id": "directory_sync_enabled",
      "display_name": "Directory sync (SCIM)",
      "section": "identity_access",
      "setting_name": "directory_sync_enabled",
      "status": "failed_check_accepted_risk",
      "rating": "passed",
      "current_value": "Off",
      "desired_state": "On",
      "attestation": {
        "state": "in_force",
        "attested_at": "2026-10-20T15:04:00.220114Z",
        "comment": null,
        "attested_by": {
          "type": "user_actor",
          "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
        }
      }
    },
    {
      "id": "allowed_invite_domains",
      "display_name": "Allowed email domains",
      "section": "identity_access",
      "setting_name": "allowed_invite_domains",
      "status": "descriptive",
      "rating": "descriptive",
      "current_value": "example.com",
      "desired_state": null,
      "attestation": null
    },
    {
      "id": "oauth_conditional_access",
      "display_name": "OAuth conditional access on connected SaaS",
      "section": "connectors_integrations",
      "setting_name": null,
      "status": "not_attested",
      "rating": "not_attested",
      "current_value": null,
      "desired_state": "Completed",
      "attestation": {
        "state": "review_due",
        "attested_at": "2026-11-02T09:30:00.008771Z",
        "comment": null,
        "attested_by": {
          "type": "user_actor",
          "user_id": "user_01AbCdEfGhJkLmNpQrStUvWx"
        }
      }
    }
  ]
}

Ogni campo è sempre presente, e un campo senza valore è null, mai omesso. Un orario non ha cifre frazionarie oppure ne ha sei, quindi confronta gli orari come orari, non come stringhe.

Campi di primo livello

CampoTipoDescrizione
typestringaSempre security_posture.
organization_idstringaL’UUID dell’organizzazione.
evaluated_atstringa (RFC 3339, UTC)Il momento in cui ogni controllo è stato valutato.
comments_statusstringaIndica se i commenti delle attestazioni sono stati letti; consulta Chi ha attestato e i commenti.
controlsarray di oggettiI controlli dell’organizzazione; l’array non è mai vuoto.

Campi di controls[]

CampoTipoDescrizione
idstringaL’identificatore del controllo, che è lo stesso per ogni organizzazione e non cambia mai.
display_namestringaIl nome visualizzato del controllo, come testo di visualizzazione in inglese la cui formulazione può cambiare.
sectionstringaLa sezione a cui appartiene il controllo, una delle dieci elencate dopo questa tabella; possono essere aggiunti altri valori, quindi tratta un valore sconosciuto come una sezione a sé.
setting_namestringa o nullIl name della voce nelle impostazioni effettive dell’organizzazione che questo controllo legge; null quando non legge alcuna voce di questo tipo.
statusstringaIl motivo del risultato del controllo; consulta Valori di stato.
ratingstringaIl risultato del controllo, che deriva da status; consulta Valori di stato.
current_valuestringa o nullIl valore attuale, come testo di visualizzazione in inglese la cui formulazione può cambiare; null su un controllo manuale o quando non è stato letto alcun valore.
desired_statestringa o nullIl valore consigliato, come testo di visualizzazione in inglese la cui formulazione può cambiare; null quando non ce n’è uno per questa organizzazione.
attestationoggetto o nullL’attestazione che la risposta mostra, anche mentre non è in vigore; null mentre status è descriptive, not_applicable o not_evaluated, e in questi casi.

section è uno tra identity_access, data_privacy, capabilities, connectors_integrations, chats_desktop_mdm, cowork_admin_console, cowork_desktop_mdm, claude_code_admin_console, claude_code_managed_settings e healthy_adoption.

Per confrontare i valori nel codice, cerca setting_name nelle impostazioni effettive della stessa organizzazione. La ricerca può non trovare nulla, e due controlli possono condividere lo stesso setting_name.

Campi di attestation

CampoTipoDescrizione
statestringaIndica se l’attestazione è in vigore; consulta Stati dell’attestazione.
attested_atstringa (RFC 3339, UTC)Quando è stata effettuata l’attestazione.
commentstringa o nullIl commento salvato con l’attestazione, di al massimo 2.000 caratteri; null se non ce n’è uno, o se comments_status non è available.
attested_byoggetto o nullLa persona che ha attestato; null quando la chiave non dispone né di read:compliance_user_data né di read:org_audit, quando l’account di quella persona è stato eliminato o è in fase di eliminazione, o quando l’endpoint non restituisce per l’organizzazione chi ha attestato.

Campi di attested_by

CampoTipoDescrizione
typestringaSempre user_actor.
user_idstringaL’ID dell’utente, che inizia con user_.

Valori di stato

status indica il motivo del risultato di un controllo, e ogni stato ha un solo rating.

statusTipo di controlloSignificatoratingNella pagina
passedautomaticoIl valore attuale soddisfa il valore consigliato.passedSuperato
matches_profileautomaticoIl valore attuale è uguale al valore consigliato.passedSuperato
exceeds_baselineautomaticoIl valore attuale è più restrittivo del valore consigliato.passedSuperato
failed_check_accepted_riskautomaticoLa verifica automatica ha esito negativo, e un rischio accettato è in vigore.passedSuperato
failedautomatico o manualeIl valore attuale non soddisfa il valore consigliato, oppure un’attestazione che la risposta omette dà questo risultato.failedNon superato, oppure Superato con un’attestazione Completato in vigore
reviewautomaticoIl valore attuale è meno restrittivo del valore consigliato.failedNon superato
attested_completedmanualeÈ in vigore un’attestazione con il valore Completato (completed).passedSuperato
attested_accepted_riskmanualeÈ in vigore un’attestazione con il valore Rischio accettato (accepted_risk).passedSuperato
not_attestedmanualeNessuna attestazione è in vigore.not_attestedNon attestato
attestation_not_enabledmanualeNessuno può attestare il controllo.not_attestedDescrittivo
descriptivesolo informativoIl controllo viene riportato, non classificato.descriptiveDescrittivo
not_applicablequalsiasiIl controllo non si applica all’organizzazione.descriptiveDescrittivo
not_evaluatedqualsiasiNon è stato possibile leggere l’impostazione, o un’altra impostazione che determina se il controllo si applica.descriptiveDescrittivo

Nessun campo indica il tipo di controllo; per failed, un current_value null contraddistingue un controllo manuale. Possono essere aggiunti altri valori, quindi conta un controllo con uno status sconosciuto in base al suo rating, e non considerare Superato un rating sconosciuto. Lo stato review e lo stato dell’attestazione review_due non sono correlati.

Stati dell’attestazione

state indica se l’attestazione che la risposta mostra è in vigore.

stateSignificato
in_forceL’attestazione è in vigore.
review_dueÈ arrivata la data di fine.
setting_changedLa verifica ha esito negativo su un valore diverso da quello il cui rischio è stato accettato, oppure il rischio accettato era già stato registrato come terminato.
check_passingLa verifica ha esito positivo, quindi non c’è alcun rischio da accettare.

Quando si applica più di un motivo, la risposta indica il primo tra check_passing, setting_changed e review_due. A partire dalle 00:00 UTC della sua data di fine, un’attestazione non è in vigore. La risposta non riporta alcuna data di fine, quindi decide state; una data di fine che è stata salvata è il review_date dell’attività di attestazione. Considera uno state sconosciuto come non in vigore.

Come appare un’attestazione nella risposta

La risposta mostra alcune attestazioni e ne omette altre, quindi un attestation null non dimostra che nessuno abbia attestato.

Tipo di controlloAttestato comestatusratingattestation
ManualeNessuna attestazionenot_attested, oppure attestation_not_enabled laddove nessuno possa attestarenot_attestednull
ManualeCompletatoattested_completedpassedMostrata
ManualeRischio accettatoattested_accepted_riskpassedMostrata
ManualeNon superato (control_failed)failedfailednull: mai mostrata
Automatico, verifica con esito negativoNessuna attestazionefailed o reviewfailednull
Automatico, verifica con esito negativoRischio accettatofailed_check_accepted_riskpassedMostrata
Automatico, verifica con esito negativoCompletatofailed, anche dove la verifica automatica dà reviewfailednull: mai mostrata
Automatico, verifica con esito negativoNon superatoLo status che dà la verifica automaticafailednull: mai mostrata
Automatico, verifica con esito positivoNessuna attestazionepassed, matches_profile o exceeds_baselinepassednull
Automatico, verifica con esito positivoCompletatoLo status che dà la verifica automaticapassednull: mai mostrata
Automatico, verifica con esito positivoRischio accettatoLo status che dà la verifica automaticapassednull finché la verifica ha esito positivo sul valore accettato
Automatico, verifica con esito positivoNon superatofailedfailednull: mai mostrata
Solo informativoQualsiasi valoredescriptivedescriptivenull: mai mostrata
Qualsiasi, mentre l’attestazione non è in vigoreUn valore che una riga precedente mostraCome senza attestazioneCome senza attestazioneMostrata, con uno state diverso da in_force
Qualsiasi, mentre l’attestazione non è in vigoreUn valore che una riga precedente ometteCome senza attestazioneCome senza attestazionenull

Ogni riga tranne le ultime due vale finché l’attestazione è in vigore. Su un controllo automatico, un’attestazione non è in vigore finché il valore letto dalla verifica differisce da quello su cui è stata salvata. Ogni attestazione che la risposta mostra su un controllo automatico è un rischio accettato. Anche l’Activity Feed registra le attestazioni dei tipi che la risposta omette.

Contare i risultati

Verifica quattro aspetti quando conti i controlli per rating.

Se contiVerifica anche
Superato (passed)Include ogni controllo con un rischio accettato in vigore, quindi cerca failed_check_accepted_risk e attested_accepted_risk.
Non superato (failed)Include un controllo attestato come Non superato (control_failed), e una verifica automatica con esito negativo con un’attestazione Completato in vigore, che la pagina Security posture mostra come Superato.
Descrittivo (descriptive)Può nascondere un controllo che non è stato possibile leggere, quindi cerca not_evaluated.
Tutti i controlliUn controllo mancante dalla risposta non è considerato Superato e non viene nominato, quindi confronta i valori id con quelli che hai visto per l’organizzazione.

Chi ha attestato e i commenti

attested_by viene compilato solo per una chiave che dispone di read:compliance_user_data insieme a read:compliance_org_data, oppure di read:org_audit. Una chiave con solo read:compliance_user_data riceve un 403. Lo user_id in attested_by è lo stesso dello user_id dell’actor nell’attività di attestazione. attested_by contiene solo l’ID utente: Elencare gli utenti dell’organizzazione fornisce il nome e l’indirizzo email di ogni membro attuale. Prima di aggiungere questi scope, consulta Chi può vedere chi ha attestato.

L’endpoint non restituisce commenti, anche quando la pagina Security posture ne mostra uno: ogni comment è null, e comments_status è not_enabled o not_permitted. Quindi not_enabled e un commento null non significano che l’attestazione non abbia un commento. comments_status indica come interpretare un commento null, e lo schema definisce questi valori.

comments_statusSignificato
not_permittedLa chiave API non dispone né di read:compliance_user_data né di read:org_audit, quindi ogni comment e ogni attested_by è null.
requires_organization_keyLa chiave API non è stata creata nell’organizzazione, come nel caso di una chiave per l’organizzazione padre, quindi ogni comment è null. Riprovare non serve.
availableI commenti sono stati letti, quindi un commento null significa che non ce n’è uno, o che è stato salvato pochi istanti fa.
not_enabledQuesto endpoint non restituisce commenti per l’organizzazione, quindi ogni comment è null.
unavailableNon è stato possibile leggere i commenti per questa risposta; una richiesta successiva potrebbe riuscire, ma alcune cause persistono finché il cliente non interviene.

Possono essere aggiunti altri valori; considera un valore sconosciuto come unavailable.

Errori

Gli errori usano lo stesso corpo del resto della Compliance API; questa tabella elenca quelli che questo endpoint restituisce in modo specifico.

Stato ed error.typeQuandoCosa fare
400 invalid_request_erroranthropic-version è mancante o non valido, la Compliance API non è abilitata per l’organizzazione padre, oppure è presente un parametro di query.Correggi ciò che indica error.message.
401 authentication_errorLa chiave è mancante, non riconosciuta, oppure non è una Compliance Access Key o una chiave Admin API.Invia una Compliance Access Key valida in x-api-key.
403 permission_errorLa chiave non può chiamare questo endpoint, di solito perché non dispone né di read:compliance_org_data né di read:org_audit.Usa una chiave con uno dei due scope.
404 not_found_errorConsulta le cause elencate dopo questa tabella.Non riprovare immediatamente, e non interpretarlo mai come assenza di controlli non superati.
429 rate_limit_errorIl limite di velocità condiviso della Compliance API, o il limite più basso di questo endpoint, è esaurito; error.message indica quale.Attendi retry-after; consulta 429 Too Many Requests.
503 overloaded_error, con error.details.error_code pari a posture_evaluation_failedNon è stato possibile produrre il risultato.Attendi retry-after, poi riprova; se si ripresenta per una singola organizzazione nelle esecuzioni successive, contatta il supporto Anthropic una sola volta.
503 senza error_code, oppure 504 timeout_errorUn errore temporaneo.Riprova con backoff esponenziale.

Cause di un 404:

  • organization_id non è un UUID, non indica alcuna organizzazione, oppure indica un’organizzazione eliminata.
  • organization_id indica l’organizzazione padre, un’organizzazione sotto un’altra organizzazione padre, oppure un’organizzazione che una chiave per una singola organizzazione non copre.
  • L’organizzazione non è su Claude Enterprise, oppure Security posture non è disponibile per essa, come nel caso di un’organizzazione Claude Console.
  • La pagina Security posture è stata disattivata per l’organizzazione (vedi Disponibilità di Security posture).
  • Security posture è disponibile per l’organizzazione, ma l’endpoint non la serve.
  • Non è stato possibile verificare la disponibilità; una richiesta successiva può riuscire.

Ogni 404 ha lo stesso corpo, così come un percorso che non esiste.

Aggiornamento dei dati ed effetti collaterali

L’endpoint valuta ogni controllo quando lo chiami, e evaluated_at è quel momento.

  • Una modifica degli ultimi minuti potrebbe non comparire.
  • Un risultato può cambiare senza che sia cambiata alcuna impostazione, ad esempio quando arriva una data di fine o Anthropic modifica un valore consigliato.
  • Se Anthropic riformula un valore attuale, un rischio accettato su di esso non è più in vigore.
  • Una chiamata non archivia alcun risultato e non fa terminare alcuna attestazione.
  • Ogni richiesta che supera le verifiche di chiave, scope e versione senza un parametro di query registra un’attività compliance_api_accessed, sia che riesca sia che fallisca; il suo url indica l’organizzazione letta, e organization_uuid è null per una chiave per l’organizzazione padre.

Questa pagina ti è stata utile?