dsccommunity / dsccommunity/SqlServerDsc
SqlRSSslCertificateBinding: New resource proposal
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 385
- Forks
- 224
- PR merge metrics
- No merged PRs in 30d
Description
Resource proposal
Manages SSL/TLS certificate bindings for Reporting Services applications. Enables secure HTTPS connections. SSL certificate management is complex and independent enough to warrant its own resource. It also manages the UseSsl (SecureConnectionLevel) setting.
Parent Issue: #2415
Features
- Configures SSL certificate bindings for ReportServerWebService and ReportServerWebApp applications
- Supports multiple SSL bindings per application (different IPs, ports, certificates)
- Supports both replacement pattern (set exact bindings) and include/exclude pattern (add/remove specific bindings)
- Manages the UseSsl (SecureConnectionLevel) setting
- Supports both SQL Server Reporting Services (SSRS) and Power BI Report Server (PBIRS)
- SQL Server 2019+ only
Commands Used
| Method | Commands |
|---|---|
| Get | Get-SqlDscRSSslCertificateBinding, Get-SqlDscRSConfiguration (SecureConnectionLevel) |
| Test | Compare bindings and SSL settings |
| Set | Add-SqlDscRSSslCertificateBinding, Remove-SqlDscRSSslCertificateBinding, Set-SqlDscRSSslCertificateBinding, Enable-SqlDscRsSecureConnection, Disable-SqlDscRsSecureConnection, Restart-SqlDscRSService |
Proposed properties
| Property | Type qualifier | Data type | Description | Default value | Allowed values |
|---|---|---|---|---|---|
| InstanceName | Key | String | The RS instance name (SSRS or PBIRS) | None | None |
| Application | Key | String | The application to configure | None | ReportServerWebService, ReportServerWebApp |
| Binding | Write | CIM Instance[] | The exact SSL bindings to set (replaces all existing). Mutually exclusive with ToInclude/ToExclude. | None | None |
| BindingToInclude | Write | CIM Instance[] | SSL bindings to add if not present | None | None |
| BindingToExclude | Write | CIM Instance[] | SSL bindings to remove if present | None | None |
| Lcid | Write | UInt32 | Language code identifier | None | None |
| UseSsl | Write | Boolean | Enable secure connection requirement | None | None |
| RestartTimeout | Write | UInt32 | Seconds to wait after service restart | None | None |
| SuppressServiceRestart | Write | Boolean | Suppress automatic service restart | $false | None |
Binding CIM Instance Properties
| Property | Type | Description | Default value |
|---|---|---|---|
| CertificateHash | String | Certificate thumbprint | None |
| IPAddress | String | IP address for binding | 0.0.0.0 |
| Port | UInt16 | Port number | 443 |
Special considerations or limitations
-
Proposed File:
source/Classes/020.SqlRSSslCertificateBinding.ps1 -
Inheritance: Inherits from
ResourceBase(from DscResource.Base module), notSqlResourceBase. -
Mutually exclusive properties:
Bindingis mutually exclusive withBindingToIncludeandBindingToExclude. When usingBinding, all existing SSL bindings are replaced with the specified list. When usingBindingToIncludeand/orBindingToExclude, existing SSL bindings are preserved and only the specified changes are made. -
CIM Instance class: A new CIM class
MSFT_SqlRSSslBindingneeds to be created with propertiesCertificateHash,IPAddress, andPort. -
Certificate requirements: The certificate must be installed in the Local Machine certificate store before it can be bound.
-
Recommended usage order: This resource should be used after
SqlRSDatabasehas initialized the report server. -
Integration tests: Should follow the patterns in
Integration_Test_Commands_BIReportServer_Securestage.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the proposed source/Classes/020.SqlRSSslCertificateBinding.ps1 and review the ResourceBase inheritance and the MSFT_SqlRSSslBinding properties. Then follow the Integration_Test_Commands_BIReportServer_Secure stage. Done means the resource supports the listed SSRS and PBIRS bindings, SSL settings, mutually exclusive binding modes, and restart behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100