Faculdade de Ciências e Tecnologias de Informação
Curso de Licenciatura em Desenvolvimento de Software
Programação Web Avançada
API, Autenticação e Autorização
http://www...
Juvêncio Comé, 2023
API
• ASP.NET Core Web API é um framework que tem como principal
finalidade dispor serviços HTTP com restpara os diversos dispositivos
como celulares, tablets, etc., onde tais dispositivos possam se conectar e
consumir informações. O padrão hoje em dia mais utilizado pra o trafego
de informações é no formato JSON (ou pode serXML) que seria o formato
mais simples e performático.
• Essa forma veio como um substituto ao WebService que tinha uma
arquitetura pesada e custosa para o tráfego de informações e a
integração é bem simples, pouco importa quem vai conectar e/ou
consumir, se é feito em uma linguagem pode ser consumida em outra
sem problema, e isso tem um papel fundamental no desenvolvimento de
sistemas.
API
• API corresponde ao termo em inglês “Application Programming
Interface“, que traduzido para o português quer dizer “Interface de
Programação de Aplicações”
• A API é a maneira utilizada para integrar dois sistemas distintos. Essa
aplicação funciona como uma espécie de tradutor, permitindo que um
software entenda a linguagem do outro e, juntos, possam realizar
determinada função.
• API é um conjunto de padrões, rotinas e instruções de programação que
permite que softwares ou aplicativos diferentes se conectem.
• Por meio de uma API é possível, por exemplo, fazer com que dois
computadores “entendam” as instruções um do outro e gerem novas
instruções a serem realizadas.
Finalidade da API
• O uso das APIs evita que um desenvolvedor precise criar e instalar
diferentes recursos para que sistemas ou aplicativos diferentes
“conversem” entre si. Isso contribui para reduzir o tempo da
integração e para liberar o uso da solução muito mais rápido.
• Além disso, uma API também possibilita a otimização de processos,
uma vez que permite gerar gatilhos para que uma ação se inicie tão
logo outra seja finalizada.
Vantagens da API
• Segurança: as APIs são seguras, pois criam uma espécie de barreira
que permite acesso apenas às informações que fazem parte daquela
aplicação, e não ao sistema por inteiro.
• Menor volume de dados: considerando que cada API é específica
para determinada função, são inseridos no sistema apenas os dados
que realmente são necessários para a ação esperada.
• Aumenta a eficiência de sistemas e aplicativos: as APIs contribuem
para melhorar a performance de sistemas, sem que seja preciso
iniciar processos de desenvolvimento que levem a esse resultado do
zero.
Tipo de API
• REST: Representational State Transfer, são interações que não
dependem de requisições prévias
• SOAP: Simple Object Access Protocol, tipo de API que utiliza
plataforma, linguagem e transporte independentes
• CRUD: acrônimo das palavras em inglês create (criar); read (ler);
update (atualizar); delete (deletar). Refere-se a uma API que pode
ser considerada apenas para ciclo de programação.
Exemplos de API
API para WhatsApp
• Possibilita que você se comunique em maior escala por meio do mensageiro mais usado no
mundo.
• Através da integração via API você pode enviar lembretes, ter vários atendentes ao mesmo
tempo e oferecer um suporte 24h com mensagens programadas, sendo possível até criar
um chatbot para WhatsApp.
API SMS
• Permite a você se comunicar com seus clientes por meio de mensagens via celular. Isso
possibilita que as empresas tenham mais agilidade.
• Afinal, ele permite o envio de milhares de mensagens em poucos segundos, sendo uma
ótima ferramenta para divulgar novos produtos, eventos e lançamentos.
API para Instagram
• Permite a optimização do atendimento, uma vez que sua equipe responde de forma mais
eficiente sobre a dúvida dos clientes, proporcionando um suporte mais ágil e de qualidade.
Exemplos de API
API de voz
• A API de voz ajuda a comunicação de larga escala com os clientes e consumidores
através do envio de torpedos de voz.
• Ele é uma mensagem gravada que pode ser transmitida ou reproduzida, fazendo
com que os clientes contactem a empresa mesmo se naquele momento não
houver nenhum atendente humano disponível.
API Multicanal
• Essa é uma solução que engloba vários canais como SMS, WhatsApp, Instagram,
Messenger, RCS, Voz e Telegram.
• São muitas as vantagens de se usar um API Multicanal, sendo que há várias
alternativas de automação a partir dela.
• Por exemplo, é possível fazer uma campanha para atingir uma grande base de
clientes, começando com SMS, passando pelo WhatsApp e terminando no
Instagram.
API Pública
• API pública, também chamada de API aberta, são aquelas aplicações
que podem ser utilizadas por qualquer desenvolvedor ou empresa.
• É possível encontrar APIs públicas com algum tipo de cobrança,
assim como as que são totalmente gratuitas.
• Alguns exemplos de APIs públicas são: Google Maps, Twitter e
Facebook.
API Privada
• Uma API privada é aquela que só pode ser acessada e
utilizada pelas empresas para a qual foi desenvolvida.
• Um dos motivos é que ela dá acesso a informações internas
da organização. Assim, por questões de segurança, somente
os seus desenvolvedores podem utilizá-la.
ASP.NET Core Web API
• ASP.NET Core Web API é um framework que tem como
principal finalidade dispor serviços HTTP com restpara os
diversos dispositivos como celulares, tablets, etc., onde tais
dispositivos possam se conectar e consumir informações. O
padrão hoje em dia mais utilizado pra o trafego de
informações é no formato JSON (ou pode serXML) que seria
o formato mais simples e performático.
ASP.NET Core Web API
• Essa forma veio como um substituto ao WebService que tinha
uma arquitetura pesada e custosa para o tráfego de
informações e a integração é bem simples, pouco importa
quem vai conectar e/ou consumir, se é feito em uma
linguagem pode ser consumida em outra sem problema, e
isso tem um papel fundamental no desenvolvimento de
sistemas.
Autenticação
• A autenticação é responsável por identificar o usuário ou
quem estiver acessando a API. Ela diz quem você é.
• É normal hoje em dia vermos autenticação com terceiros,
como Facebook, Google e agora até a Apple.
• Este mecanismo, interno ou externo, garante que quem
está acessando sua API é realmente quem ele diz ser.
Autorização
• A autorização por sua vez, diz o que o usuário pode
fazer. Ao contrário da autenticação, dificilmente você
poderá terceirizar sua autorização, visto que ela faz
parte do seu negócio e muitas vezes é específica para
uma aplicação.
Roles, Claims e Policies
• A autorização se dá por meio de Roles, Claims e Policies, que
restringem ou permitem o acesso do usuário a determinada parte
da aplicação.
• Um Role (Perfil) é um papel, uma função, um cargo, algo que define
acesso a um ou um grupo de usuários em partes da aplicação.
• Normalmente trabalhamos com Roles em cenários mais simples,
onde não necessitamos de muita interação, onde por exemplo,
apenas sabendo que o usuário possui o papel de Gerente, já
podemos tomar alguma decisão.
Roles, Claims e Policies
• Um Claim (Afirmação) é algo mais imperativo em que na maioria dos
casos utilizamos pra realizar alguma interação antes de deixar o usuário
prosseguir.
• Por exemplo, se precisamos validar se o usuário pertence a uma empresa
específica, se ele realizou determinada venda ou qualquer outra
validação que dependa de banco de dados por exemplo, este é um
cenário interessante para os Claims.
• As Policies (Políticas) nada mais são que as aplicações de Roles e Claims
para determinar contratos de acessos a determinadas áreas de uma
aplicação.
• Você pode ter vários Roles e Claims compondo uma política que
determina acesso a uma parte do seu sistema.
oAuth
• Open Authentication nada mais é do que um padrão que especifica
como fazemos as autenticações. Com a chegada de APIs abertas há um
tempo atrás, foram necessárias algumas especificações mínimas de
segurança e o oAuth foi criado.
• Hoje ele se consolidou no mercado sendo utilizado por gigantes como
Facebook, Twitter, Instagram, Spotify, Netflix dentre outros.
Token
• Um token é uma chave encriptada, contendo informações do
usuário, que só pode ser desencriptada com outra chave (privada)
que fica no servidor.
• Pode parecer estranho dizer que temos informações do usuário
(Não sensíveis) em uma chave, mas ela garante que não precisamos
armazenar estes tokens, tornando possível o que chamamos de
Stateless Applications, ou aplicações sem estado.
• Isto é fundamental para o escalonamento de qualquer aplicação.
Afinal, sempre que uma máquina nova da sua aplicação sobe, sua
memória não é copiada.
JWT
• É a sigla para Json Web Token e pronuncia-se JOT.
• O JWT nada mais é que o armazenamento das informações do token
no formato JSON.
TPC
• Fazer uma API que retorna ”Hello World!”, usando Asp.Net Core.
Para consulta:
https://learn.microsoft.com/pt-br/aspnet/core/tutorials/first-web-
api?view=aspnetcore-7.0&tabs=visual-studio
https://marcionizzola.medium.com/criando-a-primeira-api-com-net-
core-54181b1f5f59
https://www.macoratti.net/21/09/aspn6_minapi1.htm
https://www.youtube.com/watch?v=2TxePNK0kc8
Referências Bibliográficas
https://www.zendesk.com.br/blog/o-que-e-api/ (visitada a
19/10/2023, às 10h)
https://balta.io/blog/aspnet-core-autenticacao-autorizacao (visitada a
19/10/2023, às 10h)
Obrigado!