ForgeRock Identity Platform
- Access Management (AM) 6.5.2+
- Chrome 87
- Firefox 84
- Safari 14
- Edge 87 (Chromium)
- Edge 44 (Legacy): requires one polyfill for TextEncoder,
Tip: Older browsers (like IE11) may require multiple polyfills, which can be found in our documentation.
Setup CORS support in an Access Management (AM) instance.
See Enabling CORS Support in the Documentation.
Create an authentication tree in AM.
See Creating a User Authentication Tree in the Documentation.
Clone this repo:
In the root folder of the repo, use NPM to install dependencies:
npm run build
samples/custom-ui/index.htmland edit the configuration values to match your AM instance.
This SDK requires HTTPS (secure protocol) which means security (SSL/TLS) certificates are necessary. For local testing and development, it's common to generate your own self-signed certificates. You're free to use any method to do this, but if you need assistance in generating your own certs, the following can be helpful:
mkcert's installation guide and simple example of creating certs, you should have two files:
(Ensure these two files are in the root of this project)
Warning: Self-signed certificates or certificates not from an industry-recognized, certificate authority (CA) should never be used in production.
samplesdirectory by using a simple HTTP server.
If you used the
mkcertutility from above, followed their tutorial, and the files are in the root of this project, simply run
npm run start:samples
Or, if you generated certs using a different method, you will need to run the below with your certificate and key file names you created:
http-server samples -c1 -p 8443 --ssl --cert <your_certificate> --key <your_private_key>
/etc/hostsfile to point your localhost (e.g.
In a supported web browser, navigate to
https://sdkapp.example.com:8443, and then click Custom UI.
ForgeRock provides these samples to help demonstrate SDK functionality:
Custom UI -
In most real-world scenarios, you will want to have full control over the UI. In these cases, you can use
FRAuthto obtain typed callback instances from authentication trees and render the UI in whatever way makes sense for your application.
In this example, a simple React app iteratively calls
FRAuth.next()until either an error occurs, or the sample obtains a session token.
The custom React component
<UsernamePassword />is defined to handle an authentication step named "UsernamePassword".
Documentation for the SDKs is provided at https://sdks.forgerock.com, and includes topics such as:
- Introducing the SDK Features
- Preparing AM for use with the SDKS
- API Reference documentation
If you encounter any issues, be sure to check our Troubleshooting pages.
Support tickets can be raised whenever you need our assistance; here are some examples of when it is appropriate to open a ticket (but not limited to):
- Suspected bugs or problems with ForgeRock software.
- Requests for assistance - please look at the Documentation and Knowledge Base first.
You can raise a ticket using BackStage, our customer support portal that provides one stop access to ForgeRock services.
BackStage shows all currently open support tickets and allows you to raise a new one by clicking New Ticket.
If you would like to contribute to this project you can fork the repository, clone it to your machine and get started.
Be sure to check out our Coding Style and Guidelines page.
This code is provided by ForgeRock on an “as is” basis, without warranty of any kind, to the fullest extent permitted by law. ForgeRock does not represent or warrant or make any guarantee regarding the use of this code or the accuracy, timeliness or completeness of any data or information relating to this code, and ForgeRock hereby disclaims all warranties whether express, or implied or statutory, including without limitation the implied warranties of merchantability, fitness for a particular purpose, and any warranty of non-infringement. ForgeRock shall not have any liability arising out of or related to any use, implementation or configuration of this code, including but not limited to use for any commercial purpose. Any action or suit relating to the use of the code may be brought only in the courts of a jurisdiction wherein ForgeRock resides or in which ForgeRock conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions.
This project is licensed under the MIT License - see the LICENSE file for details
© Copyright 2020 ForgeRock AS. All Rights Reserved.