Adquirir autorização para acessar recursos
Esse artigo ajuda você, como desenvolvedor, a entender a melhor forma de garantir Zero Trust ao adquirir permissões de acesso a recursos para seu aplicativo. Para acessar um recurso protegido, como dados de email ou calendário, seu aplicativo precisa da autorização do proprietário do recurso. O proprietário do recurso pode consentir ou negar a solicitação do aplicativo. Seu aplicativo recebe um token de acesso quando o proprietário do recurso concede consentimento; seu aplicativo não recebe um token de acesso quando o proprietário do recurso nega o acesso.
Revisão conceitual
Você pode usar a plataforma de identidade da Microsoft para autenticar e autorizar aplicativos e gerenciar permissões e consentimentos. Vamos começar com alguns conceitos:
Autenticação (às vezes abreviada como AuthN) é o processo de provar que sua identidade reivindicada é precisa. A plataforma de identidade da Microsoft usa o protocolo OpenID Connect para processar a autenticação. Autorização (às vezes abreviada como AuthZ) concede a uma parte autenticada permissão para fazer algo. Ele especifica quais dados a parte autenticada pode acessar. A plataforma de identidade da Microsoft utiliza o protocolo OAuth 2.0 para processar a autorização. Opções de autorização incluem listas de controle de acesso (ACL), controle de acesso baseado em funções e controle de acesso por atributos (ABAC). A autenticação geralmente é um fator de autorização.
O acesso delegado (atuando em nome de um usuário conectado) ou acesso direto (atuando apenas como a própria identidade do aplicativo) permite que seu aplicativo acesse dados. Acesso delegado exige permissões delegadas (também conhecidas como escopos); o cliente e o usuário devem ser autorizados separadamente para fazer a solicitação. O acesso direto pode exigir permissões de aplicativo (também conhecidas como funções de aplicativo); quando funções de aplicativo são concedidas a aplicativos, elas podem ser chamadas de permissões de aplicativos.
Permissões delegadas, usadas com acesso delegado, permitem que um aplicativo atue em nome de um usuário, acessando somente o que o usuário pode acessar. Permissão de aplicativo, usada com acesso direto, permite que um aplicativo acesse todos os dados aos quais a permissão está associada. Apenas administradores e proprietários de entidades de segurança podem consentir com as permissões de aplicativos.
Consentimento é a maneira pela qual os aplicativos recebem permissões. Os usuários ou administradores autorizam um aplicativo a acessar um recurso protegido. Uma solicitação de consentimento lista as permissões que o aplicativo exige junto com as informações do fornecedor.
Pré-autorização é a maneira pela qual os proprietários de aplicativos de recursos concedem acesso aos aplicativos cliente. Eles podem fazer isso no portal do Azure ou usando o PowerShell e APIs como o Microsoft Graph. Eles podem conceder permissões de recursos sem exigir que os usuários vejam um prompt de consentimento para o conjunto de permissões pré-autorizadas.
Diferença entre permissão delegada e permissão de aplicativo
Aplicativos funcionam em dois modos: quando um usuário está presente (permissão delegada) e quando não há nenhum usuário (permissão de aplicativo). Quando há um usuário na frente de um aplicativo, você é obrigado a agir em nome desse usuário; você não deve estar agindo em nome do aplicativo em si. Quando um usuário está direcionando seu aplicativo, você está agindo como o representante desse usuário. Você está recebendo permissão para agir em nome do usuário que o token identifica.
Os aplicativos de tipo de serviço (tarefas em segundo plano, daemons, processos de servidor para servidor) não têm usuários que possam se identificar ou digitar uma senha. Eles exigem uma permissão de aplicativo para agir em nome próprio (em nome do aplicativo de serviço).
Práticas recomendadas de autorização de aplicativos Confiança Zero
Sua abordagem de autorização tem autenticação como componente quando você se conecta a um usuário presente no aplicativo e ao recurso que você está chamando. Quando seu aplicativo está agindo em nome de um usuário, não confiamos em um aplicativo de chamada para nos dizer quem é o usuário ou permitir que o aplicativo decida quem é o usuário. O Microsoft Entra ID verifica e fornece diretamente informações sobre o usuário no token.
Quando você precisa permitir que seu aplicativo chame uma API ou autorize seu aplicativo para que o aplicativo possa acessar um recurso, esquemas de autorização modernos podem exigir autorização por meio de uma estrutura de permissão e consentimento. Práticas recomendadas de segurança de referência para propriedades de aplicativos que incluem URI de redirecionamento, tokens de acesso (usados para fluxos implícitos), certificados e segredos, URI do ID do aplicativo e propriedade do aplicativo.
Próximas etapas
- Personalizar tokens descreve as informações que você pode receber nos tokens do Microsoft Entra. Ele explica como personalizar tokens para melhorar a flexibilidade e o controle e, ao mesmo tempo, aumentar a segurança de confiança zero do aplicativo com menos privilégios.
- Configurar declarações de grupo e funções de aplicativo em tokens mostra como configurar seus aplicativos com definições de função de aplicativo e atribuir grupos de segurança a funções de aplicativo. Esses métodos ajudam a melhorar a flexibilidade e o controle, ao mesmo tempo que aumentam a segurança de confiança zero do aplicativo com menos privilégios.
- Desenvolver estratégia de permissões delegadas ajuda você a implementar a melhor abordagem para gerenciar permissões em seu aplicativo e desenvolver usando princípios de Zero Trust.
- Desenvolver estratégia de permissões de aplicativos ajuda você a decidir sobre sua abordagem de permissões de aplicativos para gerenciamento de credenciais.
- Fornecer credenciais de identidade de aplicativo quando não há usuário explica por que Identidades Gerenciadas para recursos do Azure são a melhor prática de credenciais de cliente para serviços (aplicativos que não são de usuário) no Azure.
- O artigo Práticas recomendadas de autorização ajuda você a implementar os melhores modelos de autorização, permissão e consentimento para aplicativos.
- Utilize as práticas recomendadas de desenvolvimento de gerenciamento de identidades e acesso com Confiança Zero no seu ciclo de vida de desenvolvimento de aplicativos para criar aplicativos seguros.
- O artigo Criar aplicativos com uma abordagem de identidade de Confiança Zero segue o artigo de melhores práticas de desenvolvimento de gerenciamento de identidade e acesso da Confiança Zero para ajudar você a usar uma abordagem de Confiança Zero para identidade em seu ciclo de vida de desenvolvimento de software (SDLC).