"Authentication as a service"

Prev Next

Nexus Authentication can be used as a system-to-system service where the customer defines it's own users and roles.

Nexus Authentication as a service overview

Authentication in the customer's digital platform

Different systems in the customer's platform such as system adapters and client facades authenticate themselves using JWTs created by the Authentication service in Nexus Link Fundamentals.

The customer's Business api provides endpoints for creating tokens (based on ClientName and ClientSecret), and for getting the public key of the authentication, with wich a service can verify the signature of a JWT (the public key can be cached for a long time).

XLENT Link AB provides an SDK to make this easy.

Authentication

The operations below requires either Organization Admin access or Tenant Admin access.

  • When prompted, enter the Organization Name or Environment Name as "Username" and the password, either for the organization or the tenant.
  • See Authentication under Bootstrapping a new tenant

Create/Update/Delete authentication roles

To handle a basic level of authorization, use a set of authentication Roles of which a Client have one or more. These will be used as role claims in the token.

CRUD Roles

  • Create an Authentication Role PRDSIM, [PRD](https://nexus-prd-fundamentals.azurewebsites.net/swagger/ui/index#!/Authentication32as32a32service/AuthenticationAdministration_CreateRoleAsync
  • Delete an Authentication Role PRDSIM, PRD

Create/Read/Update/Delete Clients

For each client, create a Client with a set of Roles.

CRUD Clients

  • Create a Client PRDSIM, PRD
  • Update a Client: todo
  • Delete a Client: todo

Use a token

  • In the client, use the credentials to create a token through the customer's Business API
  • The api in turn calls Nexus Fundamentals on PRDSIM, PRD

Validate a token

To validate a JWT, you need the public part of the key that was used to create it.

  • Nexus Fundamentals provides an endpoint for getting the public key for a tenant.
    • Get public key: PRDSIM, PRD
    • The organization's Business API should provide an endpoint for the platform systems to access the public key
  • Use standard libraries to verify the signature of the token

TODO: sdk/libs