What is OAuth(Open Authorization)
- Standard protocol for token-based authentication and authorization.
- It allows a client (such as an application or user) to obtain limited access to a resource on behalf of a
resource owner (such as a user) without exposing the resource owner's credentials.
- OAuth 2.0 is the current version of the OAuth protocol.
- OAuth in
Fortinet Authenticator
Terms:
Term | Meaning |
---|---|
Relying Party | OAuth clients that have been issued credentials for requesting OAuth tokens from the FortiAuthenticator |
Client type |
- Confidential: client ID, user credentials, and the client secret to obtain an OAuth token - Public: client ID & user credentials to obtain an OAuth token |
Authorization grant types |
- Password-based: Authentication and authorization is API-based. - Authorization code: Authentication and authorization is initiated by the relying party, but the end-user provides their credentials through their browser on the FortiAuthenticator login portal. - Authorization code with PKCE: FortiAuthenticator applies modifications to the standard Authorization code |
Client ID | A generated value is provided by default |
Client secret | A generated value is provided by default |
Policy | Policy Page |
Access token expiry | length of time for which OAuth access tokens issued by this application are valid |
Redirect URIs | (URI) that the OAuth service is authorized to redirect end-users to after authentication |
Refresh token expiry | time in days/weeks/months the refresh token issued is valid upon authorization (default = 1 day) |
Relying Party Scopes | Add scopes for the relying party |
Claims | Cliams |
sequenceDiagram participant FortiAuthenticator-WebInterface participant FortiAuthenticator participant Client note over FortiAuthenticator-WebInterface: Configure OAuth in Web Interface note over FortiAuthenticator-WebInterface: Authentication > OAuth Service > General>
Set Authorization code expiry(1-56000sec)
Auto-generated client secret length(16 - 256, default = 128)
>Save note over FortiAuthenticator-WebInterface: Configure Relying Party params FortiAuthenticator-WebInterface ->> FortiAuthenticator: client_id, client-secret FortiAuthenticator ->> Client: client_id, client-secret Client ->> FortiAuthenticator: Authenticate (client_id, secret) FortiAuthenticator ->> Client: ok Client ->> FortiAuthenticator: Provide oauth token (client_id, secret, Auth_Grant_type) FortiAuthenticator ->> Client: Oauth Token(with expiry, other info) note over Client: Client includes OAuth token in REST API calls Client ->> FortiAuthenticator: GET /api/resource HTTP/1.1 Host:abc.com
Authorization: Bearer asssssasa..
