OAuth2.0 is a standard that permits a website or application to access resources maintained by other web apps on behalf of a user. OAuth stands for "Open Authorization." In 2012, it replaced OAuth 1.0 and has since become the accepted method for online authorization. OAuth2.0 authentication grants permitted access without ever disclosing the user's credentials and places restrictions on what the client app is allowed to do with resources on the user's behalf.
OAuth 2.0 is the authorization protocol that is generally used. While offering separate authorization channels for online apps, desktop applications, mobile applications, and home devices, OAuth 2.0 prioritises the comfort of client developers. The working group for IETF OAuth is responsible for creating this specification and any related extensions.
The OAuth 2 specification provides how to manage delegated access to different client types (browser-based applications, server-side web applications, native/mobile apps, linked devices, and so on) even though the web is the principal platform for the protocol.
OAuth2.0 Basics
OAuth2.0 authentication is not an authentication protocol, but rather an authorisation protocol. It's designed to allow access to distant APIs or user data.
OAuth 2.0 uses access tokens. A token represents a user's right to access resources. OAuth2.0 has no Access Token format. Some scenarios employ JSON Web Token (JWT). Issuers of tokens can now incorporate data. Security-wise, access tokens may expire.
OAuth2.0roles
OAuth2.0's core specification includes roles. OAuth2.0 authentication system components:
The user or system that owns and can access protected resources.
Client: The system requiring protected resources. Clients need Access Tokens to access resources.
This service receives Access Token requests from clients and issues them after authentication and resource owner authorization. The authorization server exposes two endpoints: Authorization, which handles interactive authentication and consent, and Token, which handles machine-to-machine interaction.
Resource server safeguards user resources and receives Client access requests. It takes, validates, and returns the Client's Access Token.
Tokens and codes for OAuth2.0 authentication
The OAuth 2 Authorization server may not immediately return an access token after resource owner authorization. An authorization code may be returned instead of an access token to improve security. The authorization server may also issue a refresh token. Refresh Tokens have long expiration dates, unlike Access Tokens, and can be traded for new ones. Because of their properties, clients must securely store Refresh Tokens.
What's OAuth2.0 Authentication?
The client must receive credentials from the Authorization Server before using OAuth2.0 authentication to identify and authenticate itself when seeking an access token.
A smartphone app, website, smart TV app, desktop programme, etc., starts OAuth2.0 access requests. Flow of token request, exchange, and response:
1-The Client asks authorisation from the Authorization server, specifying the client id, secret, scopes, and endpoint URI (redirect URI) to which the Access Token or Authorization Code should be provided.
2-The Authorization server confirms the Client's scopes.
3-Resource owner contacts Authorization server to allow access.
4-The Authorization server returns an Authorization Code or an Access Token to the Client, as stated below. Returns a Refresh Token.
5-The Client requests access to the resource using the Access Token.
Grant Types in OAuth2.0 Authentication
OAuth2.0 authentication requires clients to get grants to access resources. The authorization framework includes multiple grant types:
The Authorization server returns a single-use Authorization Code to the Client, which is exchanged for an Access Token. This is best for classic web programmes where exchanges can happen securely on the server. Authorization Code flow is for SPAs and mobile/native apps. Authentication during the transaction is limited to the client id because the client secret cannot be securely retained. The PKCE Authorization Code is preferable.
The Access Token is returned straight to the Client in an implicit grant. The authorization server may return the Access Token in a callback URI or form post in Implicit flow. First option discontinued due to token leaking.
Authorization code with PKCE: This authorization route is similar to Authorization Code grant, but with additional steps to secure mobile/native apps and SPAs.
Client must first obtain the resource owner's credentials before passing them to the Authorization server. Therefore, it's limited to completely trustworthy Clients. It doesn't require a redirect to the Authorization server, making it useful in some instances.
Recommendations Grant type: Automated processes, microservices, etc. Using client id and secret, the application is authorised.
Device Authorization Flow: A permission that lets apps run on smart TVs.
Exchange a Refresh Token for a new Access Token.
Applet io is a great integration platform.
Applet.io can effortlessly combine data from numerous sources, databases, and file types. Application integration platform helps Reduces manual data entry and errors. It also lets firms effortlessly connect to various data sources. It syncs data between devices, regardless of creation.