This image has an empty alt attribute; its file name is cpIyQ5AgpOquJfixKFjsvLF3ySKVi9JYmPVqZodzTAQljU6hZt5xn9p64F74W1AmOUDNfk5LOaIEzRi5as4aaZZf9JLK_9Alb_-OtWNvRlHDxmTovgxkamPnvkXzD9q5JpHJy-fl
Last Updated08 March 2022
Document Tagtch-research-next-gen-authz
Authorsimonm@thecyberhut.com
Part of Research ProductNext Generation Authorization Technology

ForgeRock’s authorization components fall under their Access Management umbrella of features. Authorization capabilities within the ForgeRock portfolio can be applied to B2E (employee), B2C (consumer) and IoT related environments.

ForgeRock authorization capability can be broken down into several categories:

  • Policy Decision Point / Policy Management
  • OAuth2 Authorization Service
  • Identity Gateway OAuth2 Resource Server / Policy Enforcement Point

Policy Decision Point / Policy Management

The ForgeRock PDP solution is a long-standing component that has its origins from the Sun Microsystems OpenSSO days.  There is a centralized user interface where administrators can create policies based on resources, subjects and conditions.  The policy set is accessible and is enforced by agents or a REST API.

Source: ForgeRock official documentation

Policies can be used to protect URL’s or arbitrary string based representations of any object.  This allows the policy engine to be extended to protect IoT or physical objects that can have a custom schema attached to them.  

Source: ForgeRock official documentation

For example a string representation of a door could be house://door/front or office://floor/ground/entrance.  Conditions can be leveraged to capture and analyse context during the access evaluation process, which could include session properties, location, time of day or custom scripts.

Source: ForgeRock official documentation

Changes to the PDP since 2019:

DateFeatureDetails
August 2020Improvements to Transactional AuthorizationTransactional authorization is the ability to provide policy enforcement for single events, requiring a set of repeated steps to be performed before access is granted.  If the user credentials provided are invalid or the user authentication event fails, a 401 is returned during eval, instead of continuing to the resource where a 403 would be returned.

OAuth2 Authorization Service

ForgeRock provides a fully capable OAuth2 authorization service and is involved in the IETF OAuth2 working group.  It provides support for the likes of MTLS client authentication, device flow, PKCE and other sub profiles of OAuth2.  ForgeRock can also act as an OAuth2 client to other third party authorization services.

DateFeatureDetails
April 2019OAuth2 MTLS SupportOAuth2 clients that register against the ForgeRock authorization service, can now authenticate using certificates, in a way that mutually authenticates the service and the client.
April 2019OAuth2 Certificate Bound Access TokensClients that authenticate using MTLS can be issued with tokens that are bound to the client.  This is possible using a hash of the client certificate.  Proof of ownership of the corresponding private key is required when the issued access token is used. 
April 2019OAuth 2.0 Dynamic Client Registration Management Protocol (RFC7592) Fully SupportedClients of the ForgeRock OAuth2 service can now register and manage their profile information in a standards based way.
June 2019OAuth2 Access Token Modification ScriptsForgeRock issued OAuth2 access tokens now have a scripted component that allows for the arbitrary process of context and addition or removal of attributes or scopes within a token.
Aug 2020Support for Macaroons based TokensA new token format called Macaroons, which can be used when issuing OAuth 2.0 access and refresh tokens was added.
Macaroons allow caveats to be appended to them, which restrict how a token can be used. Macaroons provide additional security, as tokens can be restricted just before use.
May 2021New Properties Available to Claims and Access Token ScriptsThe ability to now analyse the contents of the inbound client request details before issuing access tokens was added to the scripting API.
May 2021OAuth 2.0 and OpenID Connect Token Exchange SupportForgeRock added support for the IETF standard RFC 8693 which allows for the exchange of access and OIDC id tokens from the same authorization server, to allow different resource servers to have more scoped tokens.

Identity Gateway

The ForgeRock Identity Gateway is a small software based application that acts as an HTTP based reverse proxy.  It intercepts inbound requests before they hit a protected resource.  IG can then perform authorization enforcement functions either by calling out to a policy decision point or via locally coded transformations and logic run through.  IG can then alter the response from the protected resource before it is returned to the calling client.

A selection of changes made to IG since 2019 as they related to authorization capabilities:

DateFeatureCapabilities
March 2019OAuth2 Client Authentication via MTLSWhen IG is acting as an OAuth2 client to the ForgeRock OAuth2 authorization service, it can authenticate using MTLS.
March 2019Improved PDP Policy Advice RedirectionWhen IG receives policy advice from the ForgeRock PDP, the redirection URL that requires the end user to perform a verification event is now configurable.
Dec 2019Request Policy Decisions From AM Using a Configurable Resource URLIG when acting as the PEP can request information from AM as the PDP using a protected resource URL that is configurable.
Aug 2020Locally Enforced Declarative AuthorizationAbility to create rules that are evaluated locally within the IG instance.  Requests are only allowed if a set of conditions are met.
Aug 2020Financial Grade API SecurityAdditional client side filters to increase support for FAPI standards.
Aug 2020Ability to Cache OAuth2 Access TokensCreation of new object to improve the caching of presented OAuth2 access tokens.

Categories:

Signup for New Content Updates