For the new OpenID based authentication mechanism in Acter, we have to implement new screens for login and registration. As we will be handling our service via authentik and that allows us to follow the same flow via its API (interactive API browser on M-2 here) we want to provide native screens for the flows. To be able to do that we need to:
To recreate the steps from https://authentik.m-2.acter.global/if/flow/default-authentication-flow/?next=%2F and https://authentik.m-2.acter.global/if/flow/default-enrollment-flow/?next=%2F from within the App (without having to go through the website).
For the UI flow itself, we have to implement various widgets (input fields and alike), and pages (for each of the "components" that might be returned). For our case we must at least implements:
Components
Fields
Notes:
- you can find the API of the test server here, including an interactive browser
- the setup default flow is
default-authentication-flow, which will also point you to the registration flow, which is default-enrollment-flow -- neither must be hard-coded though!
- As this is against a documented API, we should have a large test coverage with all possible states and content, especially error cases and problems!
For the new OpenID based authentication mechanism in Acter, we have to implement new screens for login and registration. As we will be handling our service via authentik and that allows us to follow the same flow via its API (interactive API browser on M-2 here) we want to provide native screens for the flows. To be able to do that we need to:
X-Powered-By-Header provides that information)To recreate the steps from https://authentik.m-2.acter.global/if/flow/default-authentication-flow/?next=%2F and https://authentik.m-2.acter.global/if/flow/default-enrollment-flow/?next=%2F from within the App (without having to go through the website).
For the UI flow itself, we have to implement various widgets (input fields and alike), and pages (for each of the "components" that might be returned). For our case we must at least implements:
Components
ak-stage-identificationak-stage-prompt(which has custom fields, see below)ak-stage-passwordak-stage-authenticator-emailak-stage-authenticator-static,ak-stage-authenticator-totpxak-flow-redirectak-stage-authenticator-smsak-stage-authenticator-duoak-stage-authenticator-validateak-stage-user-loginFields
type: usernametype: emailtype: checkboxtype: textNotes:
default-authentication-flow, which will also point you to the registration flow, which isdefault-enrollment-flow-- neither must be hard-coded though!