Predix Cloud Identity Management Service
The Predix Cloud Identity Management Service allows you to enroll a Predix Machine device using certificate enrollment, which transparently uses OAuth2 access tokens to send data to protected endpoints.
Device Enrollment
A Predix Edge-enabled device initially has no identity associated with the Predix cloud. Similarly, the Predix cloud has no knowledge of the device. The Predix cloud Identity Management service allows you to create an identity on the cloud and associate it with the device using Predix cloud credentials. No device-specific credentials are needed. The sequence of steps for this flow is shown below:
Enrollment Prerequisites
Some solutions that consume Predix Edge may require the following prerequisites because many manufacturing processes have various methods to obtain these values and are non standard.
- Predix Edge provides the
ICertificateEnrollParameters
interface, a service interface that provides required values for automatic enrollment. - The solution must implement an OSGi service that implements the
ICertificateEnrollParameters
interface. A default implementation is provided to pull these values from environment variables or an INI file.public interface ICertificateEnrollParameters { /** * @return - String - the serial number of the device */ public String getSerialNumber(); /** * @return - String - the URL to for the edge manager server */ public String getEdgeManagerURL(); /** * @return shared secret required for enrollment */ public String getSharedSecret(); }
- Before provisioning the device to the cloud, the following settings must be provided or generated:
- The solution must provide an external application to call the Edge Manager API for adding a device.
- An operator must generate a
client_id
andclient_secret
with the correct scopes for this application so that the application can access the Edge Manager APIs. - Along with other attribute values, the application must provide the
serial number
andshared secret
implemented by the interface in the call to Edge Manager. - The application must have a way to obtain this shared secret.
This can either pull the shared secret from the device or generate the secret and push it to the device before enrollment. Because these processes can vary by solution, the way to perform this is left open.
Consumer Configuration
A Maven dependency and an OSGi import are required to consume the certificate-based device authentication and enrollment service if your solution uses its own implementation of the
ICertificateEnrollParameters
interface.Note: If your are using the default implementation of the
ICertificateEnrollParameters
interface, the following dependency and import are not required.- The following Maven dependency is required to consume the service:
<dependency> <groupId>com.ge.dspmicro</groupId> <artifactId>device-api</artifactId> <version>{Predix Machine version}</version> </dependency>
- The following OSGi import is required to consume the bundle:
Import-Package: com.ge.dspmicro.device.api;version="[1.0,2)"