Deploy the Workflow - Manual
After a Workflow is approved by all the users, the Applications will have the Workflow Application Configurations provided to them. This configuration has information such as which Datasets or Apps they are connected to, any user-provided files or values to be provided within an enclave, and so on.
We provide a configuration to applications using an identifier passed as an input argument.
This identifier is a sha256sum of items that you need to secure from the configuration and workflow.
Fortanix CCM will also embed this identifier inside the certificates it issues so that it is clear what configuration is used for the KMS to allow access to credentials.
It embeds this inside a subject alternate name:
With the identifier above, the KMS that stores the dataset credentials will authenticate and give credentials only to applications that present a proper certificate. When the application starts, CCM will keep track of which applications are allowed to access which configurations using the identifier.
To view the Application Identifier:
- Click the application in the approved Workflow graph.
Figure 1: View the app identifier
- In the detailed view of the Workflow application, copy the value of Runtime configuration hash. This ID is used to run the application.
Figure 2: Copy the app identifier
- To run the application, execute the following command depending on the type of node agent attestation:
If the node attestation type is Enhanced Privacy ID (EPID), use the command:
docker run --privileged -d -v /var/run/aesmd:/var/run/aesmd --device /dev/isgx:/dev/isgx --device /dev/gsgx:/dev/gsgx -p 8085:8080 --net="host" --env NODE_AGENT_BASE_URL="http://<COMPUTE_NODE_IP>:9092/v1" --env APPCONFIG_ID="de7f0cd0a293e8a9a38877d853dd0d94f7b67a09c48c7a520327de4ef87aa9f5" docker.io/fortanix:patient-csp-v1
docker run --privileged -d -v /dev/sgx/enclave:/dev/sgx/enclave -p 8085:8080 --net="host" --env NODE_AGENT_BASE_URL="http://<COMPUTE_NODE_IP>:9092/v1" --env APPCONFIG_ID="de7f0cd0a293e8a9a38877d853dd0d94f7b67a09c48c7a520327de4ef87aa9f5" docker.io/fortanix:patient-csp-v1
APPCONFIG_IDis the Application identifier.
When the App Owner starts the application with the application config identifier:
- Applications will request an attestation certificate from the NodeAgent with the identifier as part of the report data.
- The application requests an application certificate from the NodeAgent.
- The CCM verifies that the application is allowed to access the configuration.
- The application requests from CCM its configuration by providing its certificate provisioned above as an authentication mechanism.
- The CCM does certificate authentication, extracts the application identifier from the certificate, and sends back the configuration corresponding to that identifier.
- The application verifies and applies the configuration hash.
- The application gets the credentials from URLs in the config.
- The application authenticates and reads/writes data from the datasets.