# Test Configuration

After the solution and tenants are configured, it should be possible to verify access to the solution. The example configuration created a singlePageApp and a background application. The steps will be provided to update a sample program that will connect to and use the Instance APIs. The program must be executed from a host with a public IP address. Three methods are available to get access. All require allow listing of the public-facing IP address of the hardware running the application.

  • iBoss - Operations can configure the platform to add all the iBoss addresses supported to the Instance and Region APIs. This will allow an application running on an ABB BCE desktop to access the platform.
  • Public IP - Any Azure Windows, Linux, or any other computer device that has a public IP address. A Operations ticket can be created and operations will update the configuration to allow access from this device.
  • ABB Ability Azure SSL VPN Setup - ABB Ability Azure SSL VPN for your ABB BCE laptop or desktop. It is recommended to use iBoss over this solution. However, this solution should work as long as the ABB IS supports ABB Ability Azure SSL VPN.

Once the environment is prepared, use this procedure to validate Solution access.

# Setup Test Environment

The InstanceApp Utility is a simple program that can perform some operations against the Instance API. The appSettings.json must be updated with your instance and your solution request. Here is the default appSettings.json file:

{
  "environment": "Ability-Platform-Int-I-EXAMPLE",

  "AD": {
    "example": {
      "URL": "example.onmicrosoft.com",
      "RedirectURI": "http://localhost:4040",
      "USERS": {
        "user01": "some secret password"
      }
    }
  },
  "tenants": {
    "EXAMPLE": {
      "AD": "example",
      "users": [ "example_user01" ]
    }
  },

  "solutions": {
    "EXAMPLE": {
      "namespace": "cst.example",
      "singlePageApp": [ "the client id", "the client secret" ],
      "background": [ "the client id", "the cilent secret" ],
      "tenants": [ "EXAMPLE" ]
    }
  },

  "Ability-Platform-Int-I-EXAMPLE": {
    "SALT": "rst02",
    "V": "2141",
    "SUB": "ABB-Ability-Platform-EXAMPLE",
    "GIG": "https://example_gig.abilityplatform.abb/api",
    "DPS": "0ne000A3934",
    "PORTAL": "https://portal-rstexample.dev.abilityplatform.abb",
    "REGION": "https://portal-example.dev.abilityplatform.abb",
    "INSTANCE": "https://api-istexample.dev.abilityplatform.abb",
    "B2CTenant": "AbilityrstEXAMPLEEunOps",
    "defaultTenant": "EXAMPLE",
    "defaultSolution": "EXAMPLE",
    "defaultUser": "example_user01"
  }
}

The file can be used with multiple environments, solutions, and tenants. This example identifies how to fill in the file with your instance and your solution request.

# Update Active Directory and Tenant

This section covers the steps to populate this file from an Azure Active Directory. The Azure Active Directory is typically @MyUniqueAD.onmicrosoft.com and users are defined as firstName1.LastName1, firstName2.LastName2, etc. The 'Redirect URI' is the same as the one configured in the singlePage application in the portal. For these simple examples, the first section would look like this:

"AD": {
    "MyUniqueAD": {
      "URL": "MyUniqueName.onmicrosoft.com",
      "RedirectURI": "http://localhost:4040",
      "USERS": {
        "firstName1.LastName1": "password for firstName1.LastName1",
        "firstName2.LastName2": "password for firstName2.LastName2",
      }
    }
  },

When you update the Tenant, you have to refer to your Active Directory and valid users in that active directory which will have access. The tenant name is the name used to identify the Active Directory that has a contract with your solution. In the solution request example, two tenants, ADP and US, are specified. Let's use a new tenant in this example called MyTenant.

  "tenants": {
    "MyTenant": {
      "AD": "MyUniqueAD",
      "users": [ "firstName1.LastName1", "firstName2.LastName2" ]
    }
  },

A minimum of one user is required. One reason to use multiple users is to test different access rules and permissions for different users.

# Update Solution

The solution section connects the solution namespace to your tenant. A given Ability Instance may have multiple solutions tied to the same or different tenants. This configuration file will support these relationships. When you login to the Admin Portal, you can see your solution name MySolution and solution namespace my.namespace. Tenants can be one or more tenants.

"solutions": {
    "MySolution": {
      "namespace": "my.namespace",
      "singlePageApp": [ "the client id", "the client secret" ],
      "background": [ "the client id", "the client secret" ],
      "tenants": [ "MyTenant" ]
    }
  },

This program supports singlePageApp login and background applications. Select your solution and extract the client id and client secret for each and update the appropriate fields.

# Update Instance Section

After you receive you environment from Ability Operations, you will be provided a table with the information necessary to populate this section. Translate the entries as follows:

 "Ability-Platform-Int-I-MY-BL-NAME-OR-PROJECT": {
    "SALT": "Unique character string for your environment",
    "V": "Version",
    "SUB": "ABB-Ability-Platform-EXAMPLE",
    "GIG": "Global Gateway URL",
    "DPS": "DPS Scope ID",
    "PORTAL": "Admin Portal URL",
    "REGION": "PM API URL",
    "INSTANCE": "Instance API URL",
    "B2CTenant": "B2C Tenant Domain, drop the .onmicrosoft.com suffix",
    "defaultTenant": "MyTenant",
    "defaultSolution": "MySolution",
    "defaultUser": "firstName1.lastName1"
  }

Once all sections are updated, save the file and build the application to test the configuration.

# Test Authentication

The test procedure is the same on Linux and Windows. Please follow the correct setup procedures for the InstanceApp Utility.

# Test singlePageApp Login

This command will attempt to connect to your solution and retrieve the model definition for abb.ability.device using the singlePageApp.

dotnet run -i MY-BL-NAME-OR-PROJECT -N abb.ability.device -X 8

TIP

When using ABB Ability Azure SSL VPN from an ABB BCE Windows computer and after enabling VPN, it may be necessary to disable the iBoss service. Open the Windows Services Control panel and stop the service 'IBSA' when accessing the Instance API.

The -X 8 option will launch Chrome you will be able to see the login process. It will also display all the settings in the appSettings.json file. The additional output can help you debug any issues with you appSettings.json file.

# Test Background App Login

This command will attempt to connect to your solution and retrieve the model definition for abb.ability.device using the background application.

TIP

When using ABB Ability Azure SSL VPN from a ABB BCE Windows computer and after enabling VPN, it may be necessary to disable the iBoss service. Open the Windows Services Control panel and stop the service 'IBSA' when accessing the Instance API.

dotnet run -i MY-BL-NAME-OR-PROJECT -N abb.ability.device -X 8 -U background

The -X 8 option will display additional output to confirm all the settings in the appSettings.json file.

Last updated: 2/3/2022, 12:56:12 PM
Feedback