Melhores Práticas API REST - Autenticação

Description

Baseado no apigee
Edvaldo Ribeiro
Mind Map by Edvaldo Ribeiro, updated more than 1 year ago More Less
Edvaldo Ribeiro
Created by Edvaldo Ribeiro about 10 years ago
Edvaldo Ribeiro
Copied by Edvaldo Ribeiro about 10 years ago
10
0

Resource summary

Melhores Práticas API REST - Autenticação
  1. Truques para buscas
    1. Exemplos
      1. Busca Global: /search?q=fluffy+fur
        1. Busca com escopo: /owners/5678/dogs?q=fluffy+fur
          1. Busca com resultados formatados: /search.xml?q=fluffy+fur
        2. Exemplos de serviços de autenticação utilizados
          1. PayPal Permissions Service API
            1. Facebook OAuth 2.0
              1. Twitter OAuth 1.0a
              2. Toda chamada REST deve ser executada usando ssl (https), pois evita ataques do tipo man in the midle
                1. Toda chamada deve ocorrer com chaves de API dedicadas
                  1. Todas chamadas REST devem ser autenticadas
                    1. Tipos de autenticação
                      1. Http Básica (Authtype basic)
                        1. Utiliza a autenticação do apache, onde é configurado 'basic' e com utilização de arquivo de senha ou senhas gerenciadas pela aplicação
                          1. Vantagens
                            1. Está disponível desde o Http 1.0
                              1. Api mantém apenas hashes
                              2. Desvantagens
                                1. Depende da configuração do webserver
                                  1. Nome do usuário e senha são transmitidos via base64
                                2. Autenticação de resumo (AuthType digest)
                                  1. Possui 2 elementos a mais do que a básica
                                    1. NONCE: string passada pela api para o cliente que deve ser enviada junto à requisição
                                      1. Geração do NONCE = MD5(TIMESTAMP:METHOD(GET):URI:PKEY)
                                      2. qop: verificador de qualidade de proteção
                                      3. Vantagens
                                        1. Senhas protegidas, utiliza troca de hash
                                          1. Http 1.0
                                            1. Utiliza NONCE e CNONCE, estes protegem contra ataques de ataque repetido, pois possui sincronismo entre api/cliente e também contra inserção de textos manipulados
                                            2. Desvantagens
                                              1. Complexidade maior que a básica
                                                1. Toda requisição deve passar pelo desafio (duplica cada requisição)
                                                  1. Vulnerável a apis forjadas
                                                2. Token de Usuário (WSSE)
                                                  1. É uma extensão do SOAP
                                                    1. Todo processo de autenticação é feito pela aplicação
                                                      1. Desafio de autenticação contém:
                                                        1. Defino o tipo WSSE
                                                          1. Especifica o perfil e regras
                                                          2. Desvantagens
                                                            1. API mantém cópia da senha
                                                              1. Desconsidera método, URI, conteúdo, etc
                                                                1. Vulnerável à intercepções
                                                                2. Vantagens
                                                                  1. Não envia senha pelo meio
                                                                    1. Não requer configuração do servidor
                                                                      1. Identifica servidor, evitando apis forjadas (outras API fingindo ser a sua)
                                                                    2. Assinatura de Requisição Personalizada
                                                                      1. Utiliza Hmac com md5 e sha1
                                                                        1. Utiliza chaves simétricas
                                                                          1. Utilizar NONCE
                                                                            1. A chave pode ser transferida no login ou no momento do cadastro
                                                                              1. Políticas de segurança das chaves, revogadas, alteradas
                                                                                1. Vatagens
                                                                                  1. Servidor identificável
                                                                                    1. Senhas seguras
                                                                                      1. Requisições indiretas
                                                                                      2. Desvantagens
                                                                                        1. Pode se tornar complexo
                                                                                          1. Pode desagradar o desempenho
                                                                                            1. Depende do suporte às bibliotecas
                                                                                          2. OAuth
                                                                                            1. É utilizado pelo Facebook, Twitter, Github
                                                                                            2. Autenticação do Windows
                                                                                              1. Depende dos protocolos suportados pelo Windows
                                                                                                1. É seguro mesmo sem utilizar ssl (https)
                                                                                                  1. Requer os serviços e produtos da Microsoft (Active Directory)
                                                                                                2. A autenticação funciona como um selo de autenticidade que é enviado jungo com cada chamada
                                                                                                  1. A API não utiliza sessão
                                                                                                    1. O cliente consumidor de uma api não precisa utilizar cookies
                                                                                                      1. Armazenamento no cliente consumidor da api
                                                                                                        1. WebStorage -> Armazenar o estado da aplicação no cliente
                                                                                                          1. SessionStorage -> Armazenar o estado de uma aplicação em uma página e o mesmo estado para outra página
                                                                                                            1. LocalStorage -> manter informação de uma dia por outro (muito tempo)
                                                                                                            2. Cada requisição em uma API REST deve ter os dados para autenticá-la

                                                                                                              Media attachments

                                                                                                              Show full summary Hide full summary

                                                                                                              Similar

                                                                                                              Melhores Práticas API REST_2
                                                                                                              Edvaldo Ribeiro
                                                                                                              Core Spring 4.2 Certification Mock Exam
                                                                                                              antoine.rey
                                                                                                              RESTful Web Services with Express Framework and mongoose.
                                                                                                              Angel Martínez Rodriguez
                                                                                                              ASSIGNMENT SHEET 2-1-3: BASIC THEORY REVIEW
                                                                                                              Justin Vaughan
                                                                                                              /service/rest/login/reset/:account
                                                                                                              Nikolaos Grammatikos
                                                                                                              Acronyms
                                                                                                              Shantal K Green
                                                                                                              HW Image API
                                                                                                              danh1964
                                                                                                              testing
                                                                                                              Milka Milkonska
                                                                                                              FHIR
                                                                                                              R A
                                                                                                              .NET Web API
                                                                                                              Pritesh Patel