Table of Contents | ||||
---|---|---|---|---|
|
Description
Alison-Desktop allows generation of keys and installation of certificates from an external application. It is designed to be accessed from a browser mainly.
Its services can be accessed through its Alison-SDK library, compatible with any browser (IExplorer 11, Edge, Firefox, Chrome, Safari, Opera, Brave).
It can be accessed using Alison-SDK. From Alison-Desktop 3.x a new REST interface is available for generation, installation and testing.
Platforms
Alison-Desktop was tested on the following platforms:
Related Product
Alison SDK js
Alison SDK allows developer to integrate Alison Desktop in its pages in a easier way. Go to the Alison SDK documentation.
Alison Wizard
You can obtain current version of Alison Desktop from ACME Alison Wizard site.
For developers, go to the Alison Desktop documentation.
Features
KeyStore
KeyStore is the basic unit of identification of certificate repositories.
Each type of keyStore has a definition that includes a unique identifier, and other attributes used by the library for better representation.
New KeyStores are included on any new version of Alison-Desktop.
Integration
Alison Desktop is a certificate provider that can be accessed throw a SDK library or its REST interface (available from Alison-Desktop v3.x).
Alison SDK js
Go to AlisonSDK library documentation.
REST interface
Read and Test this interface from Postman.
Definitions
The following definitions and structures are useful for a better understanding of the interface, library and how to use it.
Some structures share attributes defined here:
A complete list of KeyStoreId is available on each distribution of Alison-Desktop or Alison-Server.
User can add its on KeyStoreId following the instruction of Alison-Desktop.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
KeystoreInfo = {
"id": "keyStore Identifier",
"friendlyName" : "keyStore friendly name",
"providerId": "Certificate provider (usually Alison-Desktop)",
"profiles" : [ Profile list included inside this keyStore ],
"status": "keystore status, with the ResultStatus structure described later",
} |
Profile
Each KeyStore has one or more Profiles. This depends on the keyStore type. Some keyStores only have one profile.
Each profile is identified by its profileName, which may depend on the type of keyStore.
Some of the profileName can remain constant over time, as is the case with PFX, CSK or MACOS, but others can dynamically change between one execution and other.
Each profile contains certificates installed within it. By looking at the attributes of a profile, you can find how many certificates you have installed (-1 represents that the attribute has not been evaluated), and how many of them are dummy certificate installations (temporarily created to keep the private key, but not functional).
ProfileInfoThe information contained in a KeyStore is represented by a JSON structure called KeyStoreInfo. The structure has the following information:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"id": "{{profileId}}",
"name": "{{profileName}}",
"friendlyName": "{{friendlyName}}",
"status": {
{{status}}
},
"issuedCerts": -1,
"dummyCerts": -1,
"details": {
{{profileDetails}}
}
} |
KeyStore Selector
It's used to indicate a unique KeyStore and a profile into it.
Some methods, like migration of certificate between keystores, use a KeyStoreSelector to indicate the target keystore where to move the certificate.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"keyStoreId": "keyStoreId where the certificate is stored",
"profileName": "profileName where the certificate is stored",
"providerId": "when the certificate is managed by another certificate provider than Alison-Destkop"
} |
Certificate Selector
This structure is used to reference a unique certificate managed by Alison-Desktop or Alison-Server.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"keyStoreId": "keyStoreId where the certificate is stored",
"profileName": "profileName where the certificate is stored",
"thumbPrint": "certificate thumbprint",
"providerId": "certificate provider (usually Alison-Desktop)"
} |
WebCertificate
A WebCertificate is the representation of a certificate that is stored in a keystore. It contains all the information of the certificate such as subject, issuer and thumbprint.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"serialNumber": "The serial number of the certificate",
"serialNumberH": "The serial number in hexadecimal",
"thumbPrint": "A unique identifier of the certificate",
"notBeforeS": "Not-before value of the certificate, in a string format
YYYY-MM-DD HH:MM:SS GMT-0",
"notAfterS": "Not-after value of the certificate, in a string format
YYYY-MM-DD HH:MM:SS GMT-0",
"daysToExpire": "Days before expiration",
"notBeforeTS": "Not-Before timestamp value of the certificate",
"notAfterTS": "Not-After timestamp value of the certificate",
"isDefault": "True is the certificate is the last used
(when the certificate is included in a list of certificates)",
"status": "Certificate status (valid | revoked ) (-1 is UNDEF)" *,
"trustLevel": "TrustLevel used during its validation.
It depends on the Debbie validation policy used" *,
"validationMode": "Indicates the validation mode used by Debbie" *,
"profile": Basic information about the profile that contains this certificate,
"subject": {
"DN": "Distringuished Name of the Subject",
"parsedDN": "JSON Object that represents de DN"
},
"issuer": {
"DN": "Distringuished Name of the Issuer",
"parsedDN": "JSON Object that represents the DN"
},
"extensions": Some principal extensions defined into the certificate,
"pkcs7": "Certificate in PEM format",
"keyStoreId": "KeyStore Identifier",
"keyStoreType": "KeyStore Type"
} |
* This fields are completed by Debbie.
Result StatusThis structure is used to represent the status of several elements (keystore, profile, etc).
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
"status": {
"resultStatus": "[ 0 | 1 | 2 ] ",
"resultList":
[
{ "code": "result code",
"detail": "result code detail"
},
...
]
} |
ErrorCode responses
Error code responses are returned with the following structure:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"code": 20611,
"message": "Token is not present or is empty"
} |
* This fields are completed by Debbie.
keystoreErrorCode responses
Error code responses are returned with the following structure:
language | text |
---|---|
theme | DJango |
title | ErrorCode response structure |