OAuth 2.0
A especificação OAuth2 define uma estrutura que permite que aplicativos (provedores de serviços) solicitem a autenticação do usuário a qualquer pessoa que solicite acesso a dados protegidos, sem precisar interagir com suas credenciais privadas. Ele consegue isso interagindo com um parceiro confiável (provedor de identidade) que trata da identificação do usuário, valida suas credenciais e retorna ao aplicativo as informações necessárias para prosseguir com segurança. Você pode aprender mais sobre o OAuth2 Authorization Framework lendo seu documento de especificações.
+----------+ | Resource | | Owner | | | +----------+ ^ | (B) +----|-----+ Client Identifier +---------------+ | -+----(A)-- & Redirection URI ---->| | | User- | | Authorization | | Agent -+----(B)-- User authenticates --->| Server | | | | | | -+----(C)-- Authorization Code ---<| | +-|----|---+ +---------------+ | | ^ v (A) (C) | | | | | | ^ v | | +---------+ | | | |>---(D)-- Authorization Code ---------' | | Client | & Redirection URI | | | | | |<---(E)----- Access Token -------------------' +---------+ (w/ Optional Refresh Token)