Pular para o conteúdo
Skillpedia
Análise e planilhas35 mil · #6110

performing-oauth-scope-minimization-review

Faz seu agente revisar permissões de acesso em aplicativos. É útil para encontrar e corrigir acessos excessivos que podem ser um risco.

O que ela faz

Esta ferramenta revisa as permissões dadas a aplicativos de terceiros que acessam seus dados. Ela verifica se esses aplicativos têm mais acesso do que o necessário, se há permissões não utilizadas ou padrões de consentimento arriscados.

Quando usar

  • ✓Ao revisar anualmente as permissões de aplicativos.
  • ✓Após um incidente de segurança com tokens de acesso.
  • ✓Para auditorias de conformidade (como GDPR).

Exemplo do que pedir para a IA

“Revise as permissões de acesso de todos os aplicativos de terceiros.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-oauth-scope-minimization-review/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-oauth-scope-minimization-review/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta coleta informações sobre todas as permissões concedidas a aplicativos. Em seguida, ela as classifica com base no risco, ajudando a identificar e remover acessos excessivos ou desnecessários.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-oauth-scope-minimization-review

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-oauth-scope-minimization-review/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Revisão de Minimização de Escopos OAuth

Quando Usar

  • Revisão anual ou trimestral das permissões OAuth de aplicativos de terceiros
  • Após um incidente de segurança envolvendo tokens OAuth comprometidos ou acesso não autorizado a dados
  • Auditoria de conformidade que exige documentação do acesso a dados por terceiros (GDPR Artigo 28, SOC 2)
  • Descoberta de aplicativos de "shadow IT" acessando dados organizacionais via concessões OAuth
  • Migração ou consolidação de aplicativos SaaS que exigem limpeza de permissões
  • Implementação do princípio de menor privilégio para integrações de API

Não use para revisar permissões de aplicativos de primeira parte dentro do mesmo limite de confiança; a minimização de escopos OAuth foca em concessões de consentimento de terceiros e entre limites.

Pré-requisitos

  • Acesso de administrador aos provedores de identidade (Microsoft Entra ID, Okta, Google Workspace)
  • Permissões da API do Microsoft Graph: Application.Read.All, OAuth2PermissionGrant.ReadWrite.All
  • Inventário de integrações de terceiros aprovadas do departamento de compras ou governança de TI
  • Framework de classificação de risco de escopos OAuth
  • Ferramentas para análise de tokens (jwt.io para revisão manual, scripts automatizados para análise em massa)

Fluxo de Trabalho

Etapa 1: Inventariar Todas as Concessões OAuth e Permissões de Consentimento

Liste todos os registros de aplicativos OAuth e permissões delegadas:

"""
Inventário de Concessões OAuth - Microsoft Entra ID
Lista todos os registros de aplicativos, principais de serviço
e concessões de permissões delegadas/de aplicativo.
"""
import requests
import json
from collections import defaultdict

class EntraOAuthAuditor:
    def __init__(self, tenant_id, client_id, client_secret):
        self.tenant_id = tenant_id
        self.base_url = "https://graph.microsoft.com/v1.0"
        self.token = self._get_token(client_id, client_secret)
        self.headers = {"Authorization": f"Bearer {self.token}"}

    def _get_token(self, client_id, client_secret):
        url = f"https://login.microsoftonline.com/{self.tenant_id}/oauth2/v2.0/token"
        response = requests.post(url, data={
            "grant_type": "client_credentials",
            "client_id": client_id,
            "client_secret": client_secret,
            "scope": "https://graph.microsoft.com/.default"
        })
        return response.json()["access_token"]

    def get_all_service_principals(self):
        """Obtém todos os principais de serviço (aplicativos empresariais)."""
        apps = []
        url = f"{self.base_url}/servicePrincipals?$top=999&$select=id,appId,displayName,appOwnerOrganizationId,servicePrincipalType,accountEnabled,createdDateTime"

        while url:
            response = requests.get(url, headers=self.headers)
            data = response.json()
            apps.extend(data.get("value", []))
            url = data.get("@odata.nextLink")

        return apps

    def get_oauth2_permission_grants(self):
        """Obtém todas as concessões de permissões delegadas (consentimento do usuário)."""
        grants = []
        url = f"{self.base_url}/oauth2PermissionGrants?$top=999"

        while url:
            response = requests.get(url, headers=self.headers)
            data = response.json()
            grants.extend(data.get("value", []))
            url = data.get("@odata.nextLink")

        return grants

    def get_app_role_assignments(self, sp_id):
        """Obtém atribuições de permissões de aplicativo para um principal de serviço."""
        url = f"{self.base_url}/servicePrincipals/{sp_id}/appRoleAssignments"
        response = requests.get(url, headers=self.headers)
        return response.json().get("value", [])

    def build_permission_inventory(self):
        """Constrói um inventário abrangente de permissões OAuth."""
        service_principals = self.get_all_service_principals()
        delegated_grants = self.get_oauth2_permission_grants()

        # Mapeia IDs de principais de serviço para nomes
        sp_map = {sp["id"]: sp for sp in service_principals}

        inventory = []

        # Processa permissões delegadas
        for grant in delegated_grants:
            sp = sp_map.get(grant["clientId"], {})
            scopes = grant.get("scope", "").split()

            for scope in scopes:
                if not scope:
                    continue
                inventory.append({
                    "app_name": sp.get("displayName", "Desconhecido"),
                    "app_id": grant.get("clientId"),
                    "publisher_tenant": sp.get("appOwnerOrganizationId"),
                    "is_third_party": sp.get("appOwnerOrganizationId") != self.tenant_id,

…
Perguntas frequentes

O que são 'permissões' (scopes) em OAuth?

Permissões são como 'chaves' que definem o que um aplicativo pode fazer ou acessar em seu nome (por exemplo, ler seu e-mail, acessar seus contatos).

Por que é importante revisar essas permissões?

Revisar garante que apenas os aplicativos necessários tenham acesso aos seus dados e que eles não tenham permissões excessivas, o que pode ser um risco de segurança.

Esta ferramenta remove permissões automaticamente?

Não, a ferramenta identifica os riscos e excessos, mas a remoção ou ajuste das permissões geralmente requer uma ação manual de um administrador.

Detalhes

Descrição original do autor

Performs OAuth 2.0 scope minimization review to identify over-permissioned third-party application integrations, excessive API scopes, unused token grants, and risky OAuth consent patterns across identity providers and SaaS platforms. Activates for requests involving OAuth scope audit, API permission review, third-party app risk assessment, or consent grant minimization. '

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6110
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas