O que é OAuth e como ele segura as chamadas da API de descanso? [fechado]

tenho uma API de descanso para aplicações móveis chamadas que chegam ao meu servidor sem qualquer sinal ou mecanismo de segurança.

Quero garantir as minhas chamadas da API. Estou tentando entender o que é OAuth e como ele vai proteger minhas chamadas API de descanso app móvel que estão batendo no meu servidor?

Também eu quero saber em detalhes sobre os campos abaixo que são usados em OAuth . De onde vou chegar abaixo dos Campos.

Consumer Key
Consumer Secret
Token
Token Secret
Timestamp
Nonce
Author: All Іѕ Vаиітy, 2016-06-07

1 answers

Uma vez que a maioria dos fornecedores usa OAuth 2.0 e OAuth 1.0 foi desactualizado pelos principais fornecedores, vou explicar o OAuth2. 0

O que é OAuth?

OAuth é um padrão aberto para autorização, comumente usado como uma forma de Usuários de Internet para entrar em sites de terceiros usando seus Microsoft, Google, Facebook, Twitter, uma rede, etc. contas sem expor a sua senha.

Você pode implementar seu próprio servidor OAuth, aqui estou explicando sobre auth social. entao o termo OAuth aqui depois refere-se a auth social com OAuth.

Em termos leigos, OAuth permite aos utilizadores acederem ao seu serviço web com contas(Facebook, Google, etc.).

Terminologia:
  • cliente : O Utilizador da sua API.
  • dono do recurso (servidor de api): a sua API
  • servidor de autorização (servidor de auth): servidor de Facebook/Google etc auth.
  • concessão da autorização: o método por que autoriza um utilizador. estamos a usar o código de autorização.
  • código de autorização: um código que o servidor de auth devolve ao cliente que pode ser trocado por um token de acesso no servidor de api.
  • Token de acesso: uma cadeia que identifica um utilizador, normalmente vem com um prazo de validade.
  • Chave Do Consumidor ou APP_ID: {[27] } uma chave pública usada pelo servidor auth para identificar a sua aplicação.
  • segredo de consumo ou APP_SECRET: uma chave privada que deve ser mantida confidencial.

Os termos abaixo não têm nada a ver com OAuth, mas são usados com OAuth para torná-lo mais seguro.

  • Data e hora: um texto que diz a data e hora.
  • Nonce: {[27] } um número ou cadeia que só pode ser usado uma vez.

enter image description here
fonte: http://smerity.com/

Vou explicar o diagrama com o login do Facebook como um exemplo.

Antecedentes. considere que você fez o abaixo, antes de explicar o diagrama.

    Você regista uma aplicação no portal de desenvolvedores do Facebook.
  1. o Facebook dá-te dois códigos, 1) a secret_key e 2) an app_id
  2. Desenhaste um botão que diz:
Agora o diagrama.
  1. O Cliente pede o servidor de API.
  2. o servidor de API redirecciona para a página de autenticação a dizer. To access the data: please login with facebook to access the page
  3. o utilizador clica no botão login with Facbook, um novo popup OAuth dialog abre. a pedir o nome de utilizador e a senha do facebook.
  4. o utilizador introduz o seu nome de utilizador e senha, permitindo depois o acesso à sua aplicação. auth server redirecciona o utilizador para o seu site com um código como parâmetro em URL.
  5. O servidor de API é chamado no passo 4, O servidor de API captura o código do URL.
  6. API server call auth server with the provided client_secret
  7. O Auth server devolve ao access token para o utilizador do servidor de API.
  8. API server pede auth server informação do utilizador para o dado access token.
  9. O Auth Server devolve os detalhes sobre o utilizador, a imagem do perfil, o e-mail, etc.
  10. O servidor API identifica o utilizador, envia-lhe a resposta juntamente com o item de acesso.
  11. o cliente envia o token de Acesso para o servidor de api a pedido seguinte.
  12. servidor de API verifica se o acesso token é válido e responde.
  13. Quando o item de acesso estiver expirado, o cliente é convidado a autenticar-se novamente.
Como é que isto protege a tua api?

Faça as porções que precisam de segurança como login necessário para acessá-los. se o cliente que faz o pedido não estiver logado na sua api, envie-o para o PASSO 2 do diagrama.

Então o que é nonce? hora?

Se alguém roubar uma ficha de acesso, pode ter acesso à API. servidor desde que o item de acesso expire. Então, quando o usuário pede uma página, o servidor envia-lhe de volta um nonce que é armazenado no servidor. o cliente assina o pedido com o nonce recebido e completa o pedido. como o nonce é usado apenas uma vez, o servidor apaga o nonce. quando um atacante pega o nonce,e faz um pedido falso para o servidor, o servidor rejeita o pedido como o número de uma vez é inválido como seu já usado.

É utilizada a data em que o símbolo ou o nonce é criado que é usado para expirar o token ou nonce em um período de tempo limitado( 1-2Segundos), o tempo necessário para um pedido para completar.

 27
Author: All Іѕ Vаиітy, 2016-06-07 18:29:46