Skip to content

Manage Server

The manage server provides the control plane for ServiceAuthCentral in the form of a GraphQL endpoint for managing the authorization server.

Overview

The manage server provides a GraphQL endpoint providing the control plane for ServiceAuthCentral. This includes the ability to manage authorizations and clients.

flowchart LR
    subgraph SAC[ServiceAuthCentral]
        ManageServer[Manage Server]

        subgraph DataModel[Data Model]
            authorizations[(authorizations)]
            clients[(clients)]
        end

        ManageServer -- Get/Update/Delete\nAuthorization--> authorizations
        ManageServer -- Get/Update/Delete\nClient--> clients
    end

    ServiceAuthCentralWeb[ServiceAuthCentral\nWeb Interface]

    ServiceAuthCentralWeb -- GraphQL --> ManageServer

Build Manage Server Docker Image

Both the manage and token service are compiled from the same repository git repository and Dockerfile. The command to build the manage server requires the correct build-arg to be passed in to generate the docker container for the manage server components.

docker build -f Dockerfile --build-arg MAVEN_PROFILE=server-manage -t serviceauthcentral/server-manage .

Run Manage Server Using Docker

The Docker image for the manage server is configured using environment variables.

Tip

These properties are required to be identical between the manage and token server deployment.

Property Required Description
spring.profiles.active Yes A corresponding profile must be selected for Data Model
sac.issuer Yes The JWT issuer url. Typically the domain name of the token server.
sac.cors.origins Yes CORS origins for web based logins. This is the domain name ServiceAuthCentral Web is deployed to.

Authentication and Authorization

While the primary purpose of ServiceAuthCentral is server-to-server authentication with OAuth 2.0, this management API needs a mechanism to vend access tokens to the web based front end specifically serviceauthcentralweb. To support this server-token supports a PKCE login flow.

The tokens that are able to call the management API have the audience value which has the value of the issuer. Meaning in the JWT the issuer and audience have the same value.