Documentation Index

Fetch the complete documentation index at: https://support.fortanix.com/llms.txt

Use this file to discover all available pages before exploring further.

Collaborating Groups and Shared Workflow - Intel TDX Applications

Prev Next

1.0 Introduction

This article describes the steps to create collaborating groups in Fortanix Armor Identity and Access Management (IAM) for Intel TDX application in Confidential Computing Manager (CCM) and run the application on Intel TDX.

A Collaborating Group in Fortanix CCM represents a collaboration established between two Fortanix Armor IAM groups that belong to different Fortanix Armor accounts. Through this collaboration, the participating groups can securely share selected resources and work together on common workflows. 

This document explains the end-to-end collaboration process, including creating collaborating groups, sharing collaboration tokens, building shared workflows, approving workflows, and managing collaboration lifecycle events.

Figure 1: Collaborating groups and shared workflow

2.0 Collaborating Groups for Intel TDX Applications

A Fortanix Armor Identity and Access Management (IAM) collaborating group is created when groups from different Fortanix Armor accounts establish a collaboration. Through this collaboration, the groups can share resources and participate together in workflows.

In a collaborating setup:

  • One group acts as the consumer group and initiates the collaboration.

  • One group acts as the publisher group and participates by contributing permitted resources.

The collaboration is represented and managed through shared workflows, which enforce controlled interaction, approval sequencing, and access restrictions between participating groups.

This article describes collaboration between two Fortanix Armor IAM groups from different Fortanix Armor accounts using a workflow that includes an Intel TDX application. In this example, one group acts as the consumer group and another group acts as the publisher group.

NOTE

In Intel TDX shared workflows, only application sharing is supported. Shared datasets are not supported with workflows configured to use the shared Intel TD application node type.

3.0 Create Consumer Group (Enterprise)

This section describes how to create a consumer group that participates in a workflow collaboration with a publisher group.

A Consumer Group is created by an enterprise that wants to run a proprietary model on-premises.

In this example, a consumer group is created in a Fortanix Armor account and initiates collaboration with a publisher group using a shared workflow. The consumer group adds an Intel TDX placeholder application to the workflow, enabling the publisher group to contribute the application to the shared workflow.

Perform the following steps to create a consumer group for workflow-based collaboration:

  1. Log in to Fortanix Armor and create a new account, for example, DemoA, or log in to an existing account. For more information on how to log in and create a new Fortanix Armor account, refer to Getting Started with Fortanix Armor.

  2. On the Available Solutions page, select Identity and Access Management.

  3. In the IAM left navigation panel, click Groups, and then on the GROUPS tab, click ADD GROUP to create the consumer group.

  4. In the Create group dialog box:

    1. Name: Enter a group name. For example, DemoA-Group1.

    2. Add description: Click this to add a description, if needed.

    3. Labels: Add one or more Key-Value labels to the group

  5. Click CREATE GROUP to add a new consumer group.

Figure 2: Consumer group created

4.0 Create Publisher Group (Model Owner)

This section describes how to create a publisher group that participates in workflow collaboration with a consumer group.

A Publisher Group is established by the model owner to securely share their application (proprietary model) with enterprises without disclosing the model, model weights, or other configurations.

In this example, a publisher group is created in a different Fortanix Armor account and contributes the application to a shared workflow initiated by the consumer group.

NOTE

To collaborate with resources in the consumer group, you must create an additional group in a different Fortanix Armor account, as collaboration between groups within the same account is not supported.

Perform the following steps:

  1. Create two new Fortanix Armor accounts, for example, DemoB and DemoC, or log in to an existing account. For more information on how to log in and create a new Fortanix Armor account, refer to Getting Started with Fortanix Armor.

  2. Repeat Steps 2 to 5 in Section 3.0: Create Consumer Group in Fortanix Armor, to create the two new publisher groups, for example, DemoB-Group2 and DemoC-Group3.

4.1 Create Application

Perform the following steps to add an ACI application: 

  1. From the Armor Solutions drop down menu on the top navigation bar, click Confidential Computing Manager to open the CCM user interface (UI).

  2. In the CCM UI left navigation panel, click Applications, and then on the ACTIVE APPLICTIONS tab, click ADD APPLICATION to add a new application.

  3. In the Add Application form, select  Intel TDX, and then click NEXT to proceed to create an application.

    NOTE

    Ensure to select the Consumer group created in Section 3.0: Create Consumer Group.

For more information on how to create an Intel TDX application, refer to Add Application.

The application is added for approval and appears on the  ACTIVE APPLICATIONS list.

Figure 3: App created

For more information on how to create an Intel TDX application build, refer to Create Application Build.

4.2 Create Application Configuration

Once the application build is created, create an application configuration to associate the build with a group and enable its participation in the workflow.

Perform the following steps to create an application configuration:

  1. Go to the CONFIGURATION tab and then click ADD CONFIGURATION to add a new configuration. 

    Figure 4: Add app configuration

  2. In the Add Application Configuration form:  

    1. Select Add new configuration.

    2. Configuration name: Enter a name for the configuration.

    3. Group: Select the required group from the drop down menu to associate the configuration with that group. For example, DemoB-Group2.

    4. Description (optional): Enter a description for the configuration.

    5. Build: Select the application build for which the configuration will be created.

    6. Ports: Keep this field empty.

    7. Label Details: Add any meaningful key value pair to identify your application configuration.

    8. Configuration items: Keep this field empty.  

  3. Click ADD CONFIGURATION to save the configuration.

5.0 Generate Collaboration Token

To initiate collaboration, a consumer group must authenticate itself to a publisher group. Without authentication, a publisher group could receive unsolicited or spam collaboration requests from another consumer group. To prevent this, the publisher group administrator generates a “collaboration token”, which serves as proof of identity for collaboration requests.

When a consumer group requests collaboration, it includes the collaboration token provided by the publisher group in the request. The publisher group then verifies the token and authenticates the consumer group before allowing the collaboration to proceed.

Perform the following steps to generate the collaboration token in Fortanix Armor IAM:

  1. Go to the detailed view of DemoB-Group2 in the DemoB account.

  2. Click COLLABORATE to generate a new collaboration token.

    Figure 5: Collaborate

  3. In the Collaborate dialog box, click GENERATE TOKEN to generate the token.

  4. Once the token is generated, click COPY to copy the collaboration token.  

  5. You must share this collaboration token with the consumer group administrator to enable collaboration. The method used to share the collaboration token is outside the scope of this guide.

  6. Click Show previous tokens to view the previously generated tokens.

6.0 Create Collaborating Group

This section explains the collaboration process between the consumer group and the publisher group using the collaboration token shared by the publisher group.

Perform the following steps to create a collaborating group for workflow collaboration:

  1. Open the detailed view of the consumer group, for example, DemoA-Group1, in the DemoA account.

  2. Click ACCEPT TOKEN.

    Figure 6: Accept collaboration token

  3. In the Accept token dialog box, paste the collaboration token shared by the publisher group in Section 5.0: Generate Collaboration Token.

  4. Click PROCEED to initiate the collaboration request.

  5. Navigate to Groups and select the COLLABORATION GROUPS tab.

  6. On the CONSUMER tab, verify that the consumer group DemoA-Group1 appears associated with the publisher group DemoB-Group2.

    Figure 7: Consumer group collaboration request

  7. In the Status column, observe that the collaboration request is in Pending state.

    NOTE

    The publisher group must accept the collaboration request before collaboration can begin.

  8. Go to the publisher group (DemoB-Group2) and navigate to the COLLABORATION GROUPS tab.

  9. On the PUBLISHER tab, verify that DemoB-Group2 shows an association request from DemoA-Group1.

  10. Click the overflow menu for the publisher group row and click Accept to approve the collaboration request.

  11. Verify that the collaboration status updates to Accepted in the publisher group view.

    Figure 8: Status accepted

  12. Return to the consumer group account (DemoA) and confirm that the collaboration status for the consumer group (DemoA-Group1) also shows Accepted.

    Figure 9: Status accepted

7.0 Create Shared Workflow

After creating the collaborating groups, the consumer group administrator initiates collaboration by creating a shared workflow.

In the shared workflow, the consumer group administrator creates placeholder node. Each placeholder node is assigned to a specific publisher group, and only administrators of that publisher group can populate the placeholder nodes assigned to them.

Perform the following steps as a consumer group administrator to create a shared workflow:

  1. In the CCM UI left navigation panel, click the Workflows menu item in the DemoA account.

  2. On the Workflows page, click ADD WORKFLOW to create a new workflow.

  3. In the Add workflow form:

    1. Name: Enter a name for the workflow.

    2. Group: Select the consumer group (DemoA-Group1) for the shared workflow.

    3. Click ADD WORKFLOW to create the shared workflow.

  4. On the workflow canvas, add the application that belongs to the consumer group, DemoA-Group1 created in Section 4.1: Create Application.

  5. Add a dataset placeholder node to the workflow and assign it to the publisher group, DemoB-Group2.

  6. Click SAVE DRAFT to save the workflow.

Saving the workflow as a draft makes it available to the publisher group, allowing the administrator of the assigned publisher group to access the draft workflow in its respective account and populate the placeholder node assigned to it.

7.1 Fill the Placeholder Nodes with Actual Data

After the consumer group creates the shared workflow and assigns placeholder nodes, members of the publisher groups populate the placeholder nodes with their own resources.

Each publisher group can update only the placeholder node assigned to its group. Publisher group administrators cannot add, remove, or modify other nodes in the workflow.

Perform the following steps as a publisher group administrator:

  1. Log in to the DemoB account and click the Workflows menu item in the CCM UI left navigation panel.

  2. On the Workflows page, click the Draft menu item. The draft shared workflow created by the consumer group appears in the list.

  3. Select the workflow and locate the placeholder node assigned to the publisher group DemoB-Group2.

  4. Click the placeholder node to add the application.
    In the APPLICATION form, select the Intel TDX application build that was created in Section 4.1: Create Application.

  5. Click SAVE DRAFT to save the updated shared workflow.

    After the publisher group populates its assigned placeholder node, the shared workflow is complete and ready for approval.

7.2 Request Approval to Create Approved Workflow

After the publisher group fills its assigned placeholder nodes, the shared workflow is ready for approval.

The publisher group must review and approve the workflow before the consumer group can complete the approval process.

NOTE

The consumer group cannot approve the workflow until the publisher group approves it. This ensures that the publisher group explicitly consents to the sharing of data.

Perform the following steps to request and approve the shared workflow:

  1. Log in to the DemoA account as a consumer group administrator.

  2. In the CCM UI left navigation panel, click the Workflows menu item.

  3. Click the Draft menu item and select the shared workflow for which you want to request approval.

  4. Click SAVE AND REQUEST APPROVAL to send the approval request to all the publisher groups.

    A confirmation dialog appears. Click REQUEST APPROVAL to submit the approval request to the publisher groups.

  5. The workflow moves to the Pending state.

  6. Go to the Pending tab to view workflows awaiting approval.

  7. Log in to the DemoB account as a publisher group administrator. Navigate to the Workflows menu item and click the Pending menu item.

  8. Select the shared workflow from the list and click VIEW REQUEST for the shared workflow.

  9. In the Approval request for creating workflow dialog box, click APPROVE.

  10. After the publisher group approves the workflow, log in to the DemoA account as the consumer group administrator and approve the workflow to complete the approval process.

  11. The workflow now appears in the Approved tab.

NOTE

After a shared workflow reaches the Approved state, it cannot be modified.
To make changes, edit the workflow to create a new version using EDIT WORKFLOW. After approval, the new version replaces the previous one.

7.3 Run the Shared Workflow

Only the consumer group administrator, who owns the workflow, can run a shared workflow.

The members of the publisher groups cannot run the workflow.

Perform the following steps to run the workflow:

  1. Click the workflow application and copy the Runtime configuration hash from the APPLICATION dialog box. This value is used for APPCONFIG_ID parameter.

  2. Ensure you have downloaded the attestation client as described in Deploy Confidential VM Applications on Intel TDX Using Fortanix CCM.

  3. Set the following environment variables:

    export RUST_BACKTRACE=1
    export RUST_LOG=debug
    export APP_CERT_ALT_NAMES=<your_domain>
    export APPCONFIG_ID=<runtime configuration hash>

    Where,

    • <your_domain>: Specifies the application domain.

    • <runtime configuration hash>: Specifies the application configuration ID obtained in Step 1.

  4. Launch the TD where attestation client is embedded and check if the app is deployed.

    This triggers the attestation client and issues the application certificate in the corresponding location (/opt/fortanix/attestation-client).

  5. The Publisher (Model Owner) navigates to the application details view to confirm that:

    1. The build is deployed in Fortanix CCM.

    2. The audit log contains a successful REQUEST_APP_CERTIFICATE event, indicating that the application certificate was generated.

      Figure 10: Audit logs for Publisher

  6. The Consumer (Enterprise) navigates to the Tasks page to confirm that:

    1. The certificate request is approved  in Fortanix CCM.

    2. The audit log contains a successful REQUEST_APP_CERTIFICATE event, indicating that the application certificate was generated.

      Figure 11: Audit logs for consumer

    NOTE

    The audit logs are available in the log tool configured by the Publisher and Consumer.

8.0 Manage Tokens

8.1 Revoke Token

A collaboration token can be revoked by a publisher group administrator.

Revoking a collaborating token does not affect existing active collaborations between the publisher group and consumer group that were established using that token. Any existing shared workflows continue to function as expected.

Figure 12: Revoke token

8.2 Revoke Status

Perform the following steps to revoke a collaboration between a consumer group and a publisher group:

  1. Navigate to the COLLABORATION GROUPS page.

  2. Locate the collaboration entry you want to revoke.

  3. Click the overflow menu for the corresponding row and select Revoke from the drop down menu to revoke the collaboration.

You can revoke the collaboration from either the consumer group or the publisher group.

After you revoke the collaboration, the shared workflow cannot progress, and collaboration between the groups stops.

Figure 13: Revoke collaboration status

Fortanix-logo

4.6

star-ratings

As of August 2025