Skip to content

PKISolutions/ADCS-CertMod

Repository files navigation

Active Directory Certificate Services Exit and Policy module framework

Download

Use NuGet to download the library and attach to your .NET project:

NuGet\Install-Package ADCS.CertMod.Managed

CI/DI Status:

image image image

Online API documentation

Documentation

Exit Module guide

Two interfaces must be implemented and exposed to COM world in order to create an exit module:

  • ICertManageModule
  • ICertExit2

ICertManageModule interface

Create a class that inherits from CertManageModule class and define the following attributes:

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("<ModuleName>.ExitManage")]
[Guid("<00000000-0000-0000-0000-000000000000>")]
public class ExitManage : CertManageModule {
<...>
}
  • <ModuleName> is module simple name. The full ProgID must look like MyCoolExitModule.ExitManage.
  • <00000000-0000-0000-0000-000000000000> is a randomly generated UUID that identifies your implementation.
  • At a minimum, only CertManageModule.GetProperty method must be overriden.

Note: angle brackets are used for reference only, they are not used.

ICertExit2 interface

Create a class that inherits from CertExitBase class and define the following attributes:

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("<ModuleName>.Exit")]
[Guid("<00000000-0000-0000-0000-000000000000>")]
public class MyExitClass : CertExitBase {
<...>
}
  • <ModuleName> is module simple name. The full ProgID must look like MyCoolExitModule.Exit.
  • <00000000-0000-0000-0000-000000000000> is a randomly generated UUID that identifies your implementation.
  • ICertExit2.GetManageModule returns an instance of ICertManageModule implementation (see above).
  • a base CertExitBase.Notify method shall be called before executing custom code in Notify method override.

Policy module guide

Two interfaces must be implemented and exposed to COM world in order to create an exit module:

  • ICertManageModule
  • ICertPolicy2, or inherit from CertPolicyBase class directly which provides some base implementation for you.

ICertManageModule interface

Create a class that inherits from CertManageModule class and define the following attributes:

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("<ModuleName>.PolicyManage")]
[Guid("<00000000-0000-0000-0000-000000000000>")]
public class PolicyManage : CertManageModule {
<...>
}
  • <ModuleName> is module simple name. The full ProgID must look like MyCoolPolicyModule.PolicyManage.
  • <00000000-0000-0000-0000-000000000000> is a randomly generated UUID that identifies your implementation.
  • At a minimum, only CertManageModule.GetProperty method must be implemented.

About

Represents a base ADCS Exit and Policy module developement framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages