Table of Contents

Modules - Certificates [crt]

CRT module was designed to handle various certificate authority implementations via specific drivers. Currently, there is one driver implemented - the CAW driver that handles the communication with CAW certificate authority (bundled in the module).

Architecture

Module consists of those basic parts:

 CRT module architecture

Active operations with certificate

Managing of certificates

All certificates that IdM manages are stored in the certificate store. All operations over certificates (validation, download, notifications) are only performed over the certificates stored directly in the IDM.

In the certificate store, you can get the certificate in the following ways:

We supports upload in PEM and DER format. Downloaded (public) certificates are always in the PEM format.

Driver

Driver provides communication with an external CA. The certification authority can have any interface (REST api, Web service, Bash command, …) and very different behavior (synchronous / asynchronous). The driver is used to implement communication with a specific CA. The driver thus allows communication with any authority to go through the standardized interface provided by the driver and with which CRT module can works.

The CRT module contains a CAW-driver. This is a driver implementation that communicates with our internal certification authority (CAW). This authority is based on openssl and the CAW-driver uses for communication Bash commands.

Authority configuration

Each certification authority needs specific configuration parameters.

These may include:

Obviously, for each certification authority, the driver must have a specific set of parameters. For easier development and configuration of the CA, the configuration is implemented as a JAVA class that contains fields corresponding to the given parameters. This configuration class then generates a configuration definition (EAV) that is represented in the GUI by a dynamic form. With this approach, configuration items can be clearly displayed, entered and validated.

Bellow is show authority detail uses the CAW-driver:

Certificate requests

Each active operation performed on a certification authority (generation, renew, revocation) is performed by a request (crt-request). The request contains all the necessary information to perform the operation. For example, for generate certificate it is: Certificate type, certification authority, user defined password, request status.

The request is necessary in the case of asynchronous processing, here the situation where the external CA does not execute the operation immediately, but it is necessary check CA for the result again. In this case, the request is in the In progress state. The same situation occurs when we require a workflow approval before the request is executed. Even in this case, the request is the holder of the current status, in this case In approval.

If some error occures during processing of the request, then this error message will be persisted in this request and state will be in the state Exception.

Approving of certificate requests

If it is required approving all active operations before implementation, it is possible to enable approval in the CA configuration according to the selected workflow process. In this configuration, it is also possible to choose the roles used in the approval process. By default, all users with these roles will be able to approve/disapprove that request.

The CRT module contains "crt-approve-request" process that is used as the default setting for each new CA.

The "crt-approve-request" process only requires approval for new certificate generating requirements. For "Renew" and "Revocation" operations, approval is not required and the process ends immediately.

Notification configuration

Configured notification topics (email by default):

Each topic has template with the same name with Crt prefix in module resources.

Security configuration

Authoritazion policies have to be configured to work with certificates and certificate authorities. Authorities can be configured on a role and then role can be assigned to identity.

Create request and download certificate

If we want to an identity can request a certificates, we set authorization policies as follows:

When request is created, certificate authority has to be selected (autocomplete authorities permission). Request is created (as concept), description can be edited and then request is submitted to approving (if approving is configured). After certificate is generated, identity can read, renew and revoke him.

Renew and revoke certificate is controlled by create request permission (CERTIFICATEREQUEST_CREATE).
Certificate authority public certificate can be downloaded from authority info card, when autocomplete permission to certificate authority is granted.

Upload certificate

Certificate generated by third party authority can be uploaded to CzechIdM (or synchronized from target system). If we want to an identity can upload certificate, we set authorization policies as follows:

Certificate request approver

If we want to an identity can approve certificate request, we can use RequestByWfInvolvedIdentityEvaluator authorization policy evaluator. This evaluator grants permission to read certificate requests, which can be approved by logged identity. It's good to have autocomplete permission to identities (or subordinates etc.), otherwise identity identifier is shown as request owner on request detail.

Certificate and certificate authorities administrator

If we want to an identity, which can administer certificates and authorities, we set authorization policies as follows:

Policies can be configured by custom needs. This example enables all operations with certificates, requests and certificate authorities.

Private certificate can be downloaded just by certificate owner. Even identity with admin permission for certificates cannot download private certificates for other identities.

Long running tasks configuration

CertificateRequestRefreshTaskExecutor

Some certificate authorities can generate certificate asynchronously. This task checks certificate state on the certificate authority. When certificate is generated by the authority, then request is completed and certificate is saved in CzechIdM as attachment.

Default schedule: 0 0 1 ? * *

CertificateExpiredTaskExecutor

Expire certificates - persists certificate state, when certificate expires.

Default schedule: 0 0 1 ? * *

Expiration is controlled (and all notifications are send) even for archived certificates.

CertificateExpirationWarningOwnerTaskExecutor

Sends warning notifications before certificate expires to certificate owner.

Parameters:

Not scheduled by default.

CertificateExpirationWarningAdminTaskExecutor

Sends warning notifications before certificates expire to certificate admin.

Parameters:

Not scheduled by default.

Read more

Admin tutorials

Devel guide

Devel tutorials