adfsdsc
Version information
This version is compatible with:
- Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x
- Puppet >= 6.0.0 < 8.0.0
Start using this module
Add this module to your Puppetfile:
mod 'dsc-adfsdsc', '1.1.0-0-0'
Learn more about managing modules with a PuppetfileDocumentation
adfsdsc
Table of Contents
Description
This is an auto-generated module, using the Puppet DSC Builder to vendor and expose the AdfsDsc PowerShell module's DSC resources as Puppet resources. The functionality of this module comes entirely from the vendored PowerShell resources, which are pinned at v1.1.0. The PowerShell module describes itself like this:
The AdfsDsc module contains DSC resources for deployment and configuration of Active Directory Federation Services.
For information on troubleshooting to determine whether any encountered problems are with the Puppet wrapper or the DSC resource, see the troubleshooting section below.
Requirements
This module, like all auto-generated Puppetized DSC modules, relies on two important technologies in the Puppet stack: the Puppet Resource API and the puppetlabs/pwshlib Puppet module.
The Resource API provides a simplified option for writing types and providers and is responsible for how this module is structured. The Resource API ships inside of Puppet starting with version 6. While it is technically possible to add the Resource API functionality to Puppet 5.5.x, the DSC functionality has not been tested in this setup. For more information on the Resource API, review the documentation.
The module also depends on the pwshlib module. This Puppet module includes two important things: the ruby-pwsh library for running PowerShell code from ruby and the base provider for DSC resources, which this module leverages.
All of the actual work being done to call the DSC resources vendored with this module is in this file from the pwshlib module. This is important for troubleshooting and bug reporting, but doesn't impact your use of the module except that the end result will be that nothing works, as the dependency is not installed alongside this module!
Long File Path Support
Several PowerShell modules with DSC Resources end up with very long file paths once vendored, many of which exceed the 260 character limit for file paths. Luckily in Windows 10 (build 1607+), Windows Server 2016 (build 1607+), and Windows Server 2019 there is now an option for supporting long file paths transparently!
We strongly recommend enabling long file path support on any machines using this module to avoid path length issues.
You can set this value using the Puppet registry_value
resource:
registry_value { 'HKLM\System\CurrentControlSet\Control\FileSystem\LongPathsEnabled':
ensure => 'present',
data => [1],
provider => 'registry',
type => 'dword',
}
You can also set this value outside of Puppet by following the Microsoft documentation.
Usage
You can specify any of the DSC resources from this module like a normal Puppet resource in your manifests. The examples below use DSC resources from from the PowerShellGet repository, regardless of what module you're looking at here; the syntax, not the specifics, is what's important.
For reference documentation about the DSC resources exposed in this module, see the Reference Forge tab, or the REFERENCE.md file.
# Include a meaningful title for your resource declaration
dsc_psrepository { 'Add team module repo':
dsc_name => 'foo',
dsc_ensure => present,
# This location is nonsense, can be any valid folder on your
# machine or in a share, any location the SourceLocation param
# for the DSC resource will accept.
dsc_sourcelocation => 'C:\Program Files',
# You must always pass an enum fully lower-cased;
# Puppet is case sensitive even when PowerShell isn't
dsc_installationpolicy => untrusted,
}
dsc_psrepository { 'Trust public gallery':
dsc_name => 'PSGallery',
dsc_ensure => present,
dsc_installationpolicy => trusted,
}
dsc_psmodule { 'Make Ruby manageable via uru':
dsc_name => 'RubyInstaller',
dsc_ensure => present,
}
Credentials
Credentials are always specified as a hash of the username and password for the account. The password must use the Puppet Sensitive type; this ensures that logs and reports redact the password, displaying it instead as <Sensitive [value redacted]>.
dsc_psrepository { 'PowerShell Gallery':
dsc_name => 'psgAllery',
dsc_installationpolicy => 'Trusted',
dsc_psdscrunascredential => {
user => 'apple',
password => Sensitive('foobar'),
},
}
Class-Based Resources
Class-based DSC Resources can be used like any other DSC Resource in this module, with one important note:
Due to a bug in calling class-based DSC Resources by path instead of module name, each call to Invoke-DscResource
needs to temporarily munge the system-level environment variable for PSModulePath
;
the variable is reset prior to the end of each invocation.
CIM Instances
Because the CIM instances for DSC resources are fully mapped, the types actually explain fairly precisely what the shape of each CIM instance has to be - and, moreover, the type definition means that you get checking at catalog compile time. Puppet parses CIM instances are structured hashes (or arrays of structured hashes) that explicitly declare their keys and the valid types of values for each key.
So, for the dsc_accesscontrolentry
property of the dsc_ntfsaccessentry
type, which has a MOF type of NTFSAccessControlList[]
, Puppet defines the CIM instance as:
Array[Struct[{
accesscontrolentry => Array[Struct[{
accesscontroltype => Enum['Allow', 'Deny'],
inheritance => Enum['This folder only', 'This folder subfolders and files', 'This folder and subfolders', 'This folder and files', 'Subfolders and files only', 'Subfolders only', 'Files only'],
ensure => Enum['Present', 'Absent'],
cim_instance_type => 'NTFSAccessControlEntry',
filesystemrights => Array[Enum['AppendData', 'ChangePermissions', 'CreateDirectories', 'CreateFiles', 'Delete', 'DeleteSubdirectoriesAndFiles', 'ExecuteFile', 'FullControl', 'ListDirectory', 'Modify', 'Read', 'ReadAndExecute', 'ReadAttributes', 'ReadData', 'ReadExtendedAttributes', 'ReadPermissions', 'Synchronize', 'TakeOwnership', 'Traverse', 'Write', 'WriteAttributes', 'WriteData', 'WriteExtendedAttributes']]
}]],
forceprincipal => Optional[Boolean],
principal => Optional[String],
}]]
A valid example of that in a puppet manifest looks like this:
dsc_accesscontrollist => [
{
accesscontrolentry => [
{
accesscontroltype => 'Allow',
inheritance => 'This folder only',
ensure => 'Present',
filesystemrights => 'ChangePermissions',
cim_instance_type => 'NTFSAccessControlEntry',
},
],
principal => 'veryRealUserName',
},
]
For more information about using a built module, check out our narrative documentation.
Properties
Note that the only properties specified in a resource declaration which are passed to Invoke-Dsc are all prepended with dsc.
If a property does _not start with dsc_ it is used to control how Puppet interacts with DSC/other Puppet resources - for example,
specifying a unique name for the resource for Puppet to distinguish between declarations or Puppet metaparameters (notifies,
before, etc).
Validation Mode
By default, these resources use the property validation mode, which checks whether or not the resource is in the desired state the same way most Puppet resources are validated;
by comparing the properties returned from the system with those specified in the manifest.
Sometimes, however, this is insufficient;
many DSC Resources return data that does not compare properly to the desired state (some are missing properties, others are malformed, some simply cannot be strictly compared).
In these cases, you can set the validation mode to resource
, which falls back on calling Invoke-DscResource
with the Test
method and trusts that result.
When using the resource
validation mode, the resource is tested once and will then treat all properties of that resource as in sync (if the result returned true
) or not in sync.
This loses the granularity of change reporting for the resource but prevents flapping and unexpected behavior.
# This will flap because the DSC resource never returns name in SecurityPolicyDsc v2.10.0.0
dsc_securityoption { 'Enforce Anonoymous SID Translation':
dsc_name => 'Enforce Anonymous SID Translation',
dsc_network_access_allow_anonymous_sid_name_translation => 'Disabled',
}
# This will idempotently apply
dsc_psrepository { 'PowerShell Gallery':
validation_mode => 'resource',
dsc_name => 'Enforce Anonymous SID Translation',
dsc_network_access_allow_anonymous_sid_name_translation => 'Disabled',
}
It is important to note that this feature is only supported with a version of puppetlabs-pwshlib
equal to or higher than 0.9.0
, in which the supporting code for the DSC Base Provider to implement custom insync was shipped.
Finally, while this module's metadata says that the supported Puppet versions are 6.0.0 and up, the implementation of the validation_mode
parameter relies on the custom_insync
feature of the Puppet Resource API.
The custom_insync
feature first shipped in the puppet-resource_api
version 1.8.14
, which itself is only included in Puppet versions equal to or newer than 6.23.0
and 7.8.0
for the 6x and 7x platforms respectively.
Using this module against older Puppet versions will result in a warning (example below) and only use the default property-by-property change reporting, regardless of the setting of validation_mode
.
Warning: Unknown feature detected: ["custom_insync"]
Troubleshooting
In general, there are three broad categories of problems:
- Problems with the way the underlying DSC resource works.
- Problems with the type definition, where you can't specify a valid set of properties for the DSC resource
- Problems with calling the underlying DSC resource - the parameters aren't being passed correctly or the resource can't be found
Unfortunately, problems with the way the underlying DSC resource works are something we can't help directly with. You'll need to file an issue with the upstream maintainers for the PowerShell module.
Problems with the type definition are when a value that should be valid according to the DSC resource's documentation and code is not accepted by the Puppet wrapper. If and when you run across one of these, please file an issue with the Puppet DSC Builder; this is where the conversion happens and once we know of a problem we can fix it and regenerate the Puppet modules. To help us identify the issue, please specify the DSC module, version, resource, property and values that are giving you issues. Once a fix is available we will regenerate and release updated versions of this Puppet wrapper.
Problems with calling the underlying DSC resource become apparent by comparing <value passed in in puppet>
with <value received by DSC>
.
In this case, please file an issue with the puppetlabs/pwshlib module, which is where the DSC base provider actually lives.
We'll investigate and prioritize a fix and update the puppetlabs/pwshlib module.
Updating to the pwshlib version with the fix will immediately take advantage of the improved functionality without waiting for this module to be reconverted and published.
For specific information on troubleshooting a generated module, check the troubleshooting guide for the puppet.dsc module.
Known Limitations
Currently, because of the way Puppet caches files on agents, use of the legacy puppetlabs-dsc
module is not compatible with this or any auto-generated DSC module.
Inclusion of both will lead to pluginsync conflicts.
Right now, if you have the same version of a PowerShell module with class-based DSC Resources in your PSModulePath as vendored in a Puppetized DSC Module, you cannot use those class-based DSC Resources from inside of Puppet due to a bug in DSC which prevents using a module by path reference instead of name. Instead, DSC will see that there are two DSC Resources for the same module and version and then error out.
Configuring the LCM
In order for a Puppetized DSC module to function, the DSC Local Configuration Manager (LCM) RefreshMode
must be set to either Push
or Disabled
.
The default value for RefreshMode
in WMF 5.0 and WMF 5.1 is Push
- so if it has not been set to anything else then there is no action needed on your part.
However if the value of the LCM has been set to anything other than Push
then the module will not function and so the value must either be changed back or disabled.
The Puppetized DSC modules use the Invoke-DscResource
cmdlet to invoke DSC Resources of the target machine.
If the RefreshMode
is set to Pull
, DSC Resources will only run from a DSC Pull Server - in this setting DSC does not allow any DSC Resources to be run interactively on the host.
Module Installation
If you're using this module with Puppet Enterprise and Code Manager, everything should "just work" - no errors or issues acquiring and deploying this or any Puppetized DSC module to nodes.
Unfortunately, due a bug in minitar which prevents it from unpacking archives with long file paths, both r10k
and serverless Puppet (via puppet module install
) methods of installing modules with long path names will fail.
In short, minitar is unable to unpack modules that contain long file paths (though it can create them).
As a workaround, you can retrieve DSC modules from the forge via PowerShell and 7zip:
$ModuleAuthor = 'dsc'
$ModuleName = 'xremotedesktopsessionhost'
$ModuleVersion = '2.0.0-0-1'
$ArchiveFileName = "$ModuleAuthor-$ModuleName-$ModuleVersion.tar.gz"
$DownloadUri = "https://forge.puppet.com/v3/files/$ArchiveFileName"
# Download the module tar.gz to the current directory
Invoke-WebRequest -Uri $DownloadUri -OutFile ./$ArchiveFileName
# Use 7zip to extract the module to the current directory
& 7z x $ArchiveFileName -so | & 7z x -aoa -si -ttar
Reference
Table of Contents
Resource types
dsc_adfsapplicationgroup
: The DSC AdfsApplicationGroup resource type. Automatically generated from version 1.1.0dsc_adfsapplicationpermission
: The DSC AdfsApplicationPermission resource type. Automatically generated from version 1.1.0dsc_adfscertificate
: The DSC AdfsCertificate resource type. Automatically generated from version 1.1.0dsc_adfsclaimdescription
: The DSC AdfsClaimDescription resource type. Automatically generated from version 1.1.0dsc_adfscontactperson
: The DSC AdfsContactPerson resource type. Automatically generated from version 1.1.0dsc_adfsfarm
: The DSC AdfsFarm resource type. Automatically generated from version 1.1.0dsc_adfsfarmnode
: The DSC AdfsFarmNode resource type. Automatically generated from version 1.1.0dsc_adfsglobalauthenticationpolicy
: The DSC AdfsGlobalAuthenticationPolicy resource type. Automatically generated from version 1.1.0dsc_adfsglobalwebcontent
: The DSC AdfsGlobalWebContent resource type. Automatically generated from version 1.1.0dsc_adfsnativeclientapplication
: The DSC AdfsNativeClientApplication resource type. Automatically generated from version 1.1.0dsc_adfsorganization
: The DSC AdfsOrganization resource type. Automatically generated from version 1.1.0dsc_adfsproperties
: The DSC AdfsProperties resource type. Automatically generated from version 1.1.0dsc_adfsrelyingpartytrust
: The DSC AdfsRelyingPartyTrust resource type. Automatically generated from version 1.1.0dsc_adfssslcertificate
: The DSC AdfsSslCertificate resource type. Automatically generated from version 1.1.0dsc_adfswebapiapplication
: The DSC AdfsWebApiApplication resource type. Automatically generated from version 1.1.0
Resource types
dsc_adfsapplicationgroup
The DSC AdfsApplicationGroup resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsapplicationgroup
type.
dsc_description
Data type: Optional[String]
Specifies a description for the application group.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the Application Group should be present or absent. Default value is 'Present'.
Parameters
The following parameters are available in the dsc_adfsapplicationgroup
type.
dsc_name
namevar
Data type: String
Specifies a name for the application group.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsapplicationpermission
The DSC AdfsApplicationPermission resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsapplicationpermission
type.
dsc_description
Data type: Optional[String]
Specifies a description for the Application Permission.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the Application Permission should be present or absent. Default value is 'Present'.
dsc_scopenames
Data type: Optional[Array[String]]
Specifies an array of scope names.
Parameters
The following parameters are available in the dsc_adfsapplicationpermission
type.
dsc_clientroleidentifier
namevar
Data type: String
Specifies a client role identifier.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_serverroleidentifier
namevar
Data type: String
Specifies a server role identifier.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfscertificate
The DSC AdfsCertificate resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfscertificate
type.
dsc_thumbprint
Data type: String
Specifies the thumbprint of the certificate to use.
Parameters
The following parameters are available in the dsc_adfscertificate
type.
dsc_certificatetype
namevar
Data type: Enum['Service-Communications', 'Token-Decrypting', 'Token-Signing']
Specifies the certificate type (that is, how the Federation Service uses the certificate).
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsclaimdescription
The DSC AdfsClaimDescription resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsclaimdescription
type.
dsc_claimtype
Data type: String
Specifies the claim type URN or URI of the claim.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the claim description should be present or absent. Default value is 'Present'.
dsc_isaccepted
Data type: Optional[Boolean]
Indicates whether the claim is published in federation metadata as a claim that the Federation Service accepts.
dsc_isoffered
Data type: Optional[Boolean]
Indicates whether the claim is published in federation metadata as a claim that the Federation Service offers.
dsc_isrequired
Data type: Optional[Boolean]
Indicates whether the claim is published in federation metadata as a claim that the Federation Service requires.
dsc_notes
Data type: Optional[String]
Specifies text that describes the purpose of the claim description.
dsc_shortname
Data type: Optional[String]
Specifies a short name for the claim description.
Parameters
The following parameters are available in the dsc_adfsclaimdescription
type.
dsc_name
namevar
Data type: String
Specifies a friendly name for the claim description.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfscontactperson
The DSC AdfsContactPerson resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfscontactperson
type.
dsc_company
Data type: Optional[String]
Specifies the company name of the contact person.
dsc_emailaddress
Data type: Optional[Array[String]]
Specifies an array of e-mail addresses of the contact person.
dsc_givenname
Data type: Optional[String]
Specifies the given name of the contact person.
dsc_surname
Data type: Optional[String]
Specifies the surname, or last name, of the contact person.
dsc_telephonenumber
Data type: Optional[Array[String]]
Specifies an array of telephone numbers of the contact person.
Parameters
The following parameters are available in the dsc_adfscontactperson
type.
dsc_federationservicename
namevar
Data type: String
Specifies the name of the Federation Service.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsfarm
The DSC AdfsFarm resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsfarm
type.
dsc_adminconfiguration
Data type: Optional[Array[Struct[{ key => Optional[String], value => Optional[String], }]]]
Specifies the Admin Configuration
dsc_certificatethumbprint
Data type: String
Specifies the thumbprint of the certificate to use for HTTPS bindings and service communication for ADFS. This value should match the thumbprint of a valid certificate in the Local Computer certificate store.
dsc_ensure
Data type: Optional[String]
The state of the ADFS Farm.
dsc_federationservicedisplayname
Data type: Optional[String]
Specifies the display name of the Federation Service.
dsc_groupserviceaccountidentifier
Data type: Optional[String]
Specifies the Group Managed Service Account under which the Active Directory Federation Services (AD FS) service runs.
dsc_overwriteconfiguration
Data type: Optional[Boolean]
This parameter must be used to remove an existing Active Directory Federation Services (AD FS) configuration database and overwrite it with a new database.
dsc_sqlconnectionstring
Data type: Optional[String]
Specifies the SQL Server database that will store the AD FS configuration settings. If not specified, the AD FS installer uses the Windows Internal Database to store configuration settings.
Parameters
The following parameters are available in the dsc_adfsfarm
type.
dsc_credential
dsc_federationservicename
dsc_psdscrunascredential
dsc_serviceaccountcredential
name
validation_mode
dsc_credential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
Specifies a PSCredential object that must have domain administrator privileges.
dsc_federationservicename
namevar
Data type: String
Specifies the DNS name of the federation service. This value must match the subject name of the specified certificate.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_serviceaccountcredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
Specifies the Active Directory account under which the AD FS service runs in the form: \.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsfarmnode
The DSC AdfsFarmNode resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsfarmnode
type.
dsc_certificatethumbprint
Data type: String
Specifies the value of the certificate thumbprint of the certificate that should be used in the SSL binding of the Default Web Site in IIS. This value should match the thumbprint of a valid certificate in the Local Computer certificate store.
dsc_ensure
Data type: Optional[String]
The state of the ADFS Farm.
dsc_groupserviceaccountidentifier
Data type: Optional[String]
Specifies the Group Managed Service Account under which the Active Directory Federation Services (AD FS) service runs.
dsc_overwriteconfiguration
Data type: Optional[Boolean]
This parameter must be used to remove an existing AD FS configuration database and overwrite it with a new database.
dsc_primarycomputername
Data type: Optional[String]
Specifies the name of the primary in a farm. The cmdlet adds the computer to the farm that has the primary that you specify.
dsc_primarycomputerport
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the primary computer port. The computer uses the HTTP port that you specify to connect with the primary computer in order to synchronize configuration settings. Specify a value of 80 for this parameter, or specify an alternate value if the HTTP port on the primary computer is not 80. If this parameter is not specified, a default port value of 80 is assumed.
dsc_sqlconnectionstring
Data type: Optional[String]
Specifies the SQL Server database that will store the AD FS configuration settings. If not specified, AD FS uses Windows Internal Database to store configuration settings.
Parameters
The following parameters are available in the dsc_adfsfarmnode
type.
dsc_credential
dsc_federationservicename
dsc_psdscrunascredential
dsc_serviceaccountcredential
name
validation_mode
dsc_credential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
Specifies a PSCredential object that must have domain administrator privileges.
dsc_federationservicename
namevar
Data type: String
Specifies the DNS name of the federation service.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_serviceaccountcredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
Specifies the Active Directory account under which the AD FS service runs. All nodes in the farm must use the same service account.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsglobalauthenticationpolicy
The DSC AdfsGlobalAuthenticationPolicy resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsglobalauthenticationpolicy
type.
dsc_additionalauthenticationprovider
Data type: Optional[Array[String]]
Specifies an array of names of external authentication providers to add to the global policy.
dsc_allowadditionalauthenticationasprimary
Data type: Optional[Boolean]
Specifying this parameter configures an external authentication provider for second stage authentication in the global policy.
dsc_clientauthenticationmethods
Data type: Optional[Array[Enum['ClientSecretPostAuthentication', 'ClientSecretBasicAuthentication', 'PrivateKeyJWTBearerAuthentication', 'WindowsIntegratedAuthentication', 'None']]]
Specifying this parameter configures an external authentication provider, for second stage authentication, in the global policy
dsc_deviceauthenticationenabled
Data type: Optional[Boolean]
Specifies whether device authentication is enabled for the global policy.
dsc_deviceauthenticationmethod
Data type: Optional[Enum['All', 'ClientTLS', 'SignedToken']]
Specifying this parameter configures an external authentication provider, for second stage authentication, in the global policy.
dsc_enablepaginatedauthenticationpages
Data type: Optional[Boolean]
Enable the paginated authentication sign-in experience. This is only supported on Windows Server 2019 and above.
dsc_primaryextranetauthenticationprovider
Data type: Optional[Array[String]]
Specifies an array of names of authentication providers for the primary extranet to add to the global policy.
dsc_primaryintranetauthenticationprovider
Data type: Optional[Array[String]]
Specifies an array of names of authentication providers for the primary intranet to add to the global policy.
dsc_windowsintegratedfallbackenabled
Data type: Optional[Boolean]
Specifies whether fallback to Integrated Windows Authentication is enabled on the intranet.
Parameters
The following parameters are available in the dsc_adfsglobalauthenticationpolicy
type.
dsc_federationservicename
namevar
Data type: String
Specifies the DNS name of the federation service.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsglobalwebcontent
The DSC AdfsGlobalWebContent resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsglobalwebcontent
type.
dsc_certificatepagedescriptiontext
Data type: Optional[String]
Specifies the text on the certificate page. Active Directory Federation Services (AD FS) displays the text that you specify when it prompts the user for a certificate.
dsc_companyname
Data type: Optional[String]
Specifies the company name. AD FS displays the company name in the sign-in pages when you have not set a logo on the active web theme.
dsc_errorpageauthorizationerrormessage
Data type: Optional[String]
Specifies an error message to display when a user encounters any authorization errors that occur for a token request. This string can be an HTML fragment.
dsc_errorpagedescriptiontext
Data type: Optional[String]
Specifies an error message to display when a user encounters any generic errors that occur for a token request. This string can be an HTML fragment.
dsc_errorpagedeviceauthenticationerrormessage
Data type: Optional[String]
Specifies an error message to display for any device authentication errors that occur for a token request. Device authentication errors occur when the user presents an expired user@device certificate to AD FS, a certificate is not found in AD DS, or a certificate is disabled in AD DS. This string can be an HTML fragment.
dsc_errorpagegenericerrormessage
Data type: Optional[String]
Specifies an error message to display for any generic errors that occur for a token request. This string can be an HTML fragment.
dsc_errorpagesupportemail
Data type: Optional[String]
Specifies the support email address on the error page.
dsc_helpdesklink
Data type: Optional[String]
Specifies the help desk link that is shown on the logon pages for AD FS.
dsc_helpdesklinktext
Data type: Optional[String]
Specifies the help desk link text that is shown on the logon pages for AD FS.
dsc_homelink
Data type: Optional[String]
Specifies the Home link that is shown on the logon pages for AD FS.
dsc_homelinktext
Data type: Optional[String]
Specifies the Home link text that is shown on the logon pages for AD FS.
dsc_homerealmdiscoveryotherorganizationdescriptiontext
Data type: Optional[String]
Specifies the text for the home realm discovery description for other organization.
dsc_homerealmdiscoverypagedescriptiontext
Data type: Optional[String]
Specifies the text for the home realm discovery page description.
dsc_organizationalnamedescriptiontext
Data type: Optional[String]
Specifies text for the organizational name description.
dsc_privacylink
Data type: Optional[String]
Specifies the Privacy policy link that is shown on the logon pages for AD FS.
dsc_privacylinktext
Data type: Optional[String]
Specifies the Privacy policy link text that is shown on the logon pages for AD FS.
dsc_signinpageadditionalauthenticationdescriptiontext
Data type: Optional[String]
Specifies the description to display when an application prompts a user for additional authentication. The sign-in page can also display a description that is provided by the additional authentication provider.
dsc_signinpagedescriptiontext
Data type: Optional[String]
Specifies the description to display when a user signs in to applications by using AD FS. When you use Integrated Windows Authentication in the intranet, users do not see this page.
dsc_signoutpagedescriptiontext
Data type: Optional[String]
Specifies the description to display when a user signs out of applications.
dsc_updatepasswordpagedescriptiontext
Data type: Optional[String]
Specifies the description to display in the update password page when users change their passwords.
Parameters
The following parameters are available in the dsc_adfsglobalwebcontent
type.
dsc_federationservicename
namevar
Data type: String
Specifies the DNS name of the federation service.
dsc_locale
namevar
Data type: String
Specifies a locale. The cmdlet sets global web content for the locale that you specify.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsnativeclientapplication
The DSC AdfsNativeClientApplication resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsnativeclientapplication
type.
dsc_applicationgroupidentifier
Data type: String
Specifies the ID of an application group.
dsc_description
Data type: Optional[String]
Specifies a description for the native client application.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the ADFS native client application should be present or absent. Default value is 'Present'.
dsc_identifier
Data type: String
Specifies the identifier for the native client application.
dsc_logouturi
Data type: Optional[String]
Specifies the logout URI for the OAuth 2.0 client to register with the AD FS. When AD FS initiates a logout it redirects the client's user-agent to this URI by rendering this URI in an iframe. The value of this parameter must be an absolute URI, may include a query component, and must not include a fragment component.
dsc_redirecturi
Data type: Optional[Array[String]]
Specifies an array of redirection URIs for the OAuth 2.0 client to register with AD FS. The redirection URI is specified by the OAuth 2.0 client when it requests authorization to access a resource in ADFS.
Parameters
The following parameters are available in the dsc_adfsnativeclientapplication
type.
dsc_name
namevar
Data type: String
Specifies the name for the native client application.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsorganization
The DSC AdfsOrganization resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsorganization
type.
dsc_displayname
Data type: String
Specifies the display name of the organization.
dsc_name
Data type: String
Specifies the name of the organization.
dsc_organizationurl
Data type: String
Specifies the URL of the organization.
Parameters
The following parameters are available in the dsc_adfsorganization
type.
dsc_federationservicename
namevar
Data type: String
Specifies the name of the Federation Service.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsproperties
The DSC AdfsProperties resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsproperties
type.
dsc_acceptableidentifiers
Data type: Optional[Array[String]]
Specifies an array of identifiers that are acceptable names for the Federation Service when it checks the audience for claims that it receives from another claims provider.
dsc_additionalerrorpageinfo
Data type: Optional[Enum['Private', 'Detailed', 'None']]
Specifies the level of additional information that is displayed on ADFS error pages.
dsc_allowlocaladminsserviceadministration
Data type: Optional[Boolean]
Indicates that local administrator service administration is allowed.
dsc_allowsystemserviceadministration
Data type: Optional[Boolean]
Indicates that system service administration is allowed.
dsc_artifactdbconnection
Data type: Optional[String]
Specifies the connection string to use for the database that maintains the artifacts that the artifact resolution service uses.
dsc_auditlevel
Data type: Optional[Array[Enum['None', 'Basic', 'Verbose']]]
Specifies an array of audit levels.
dsc_authenticationcontextorder
Data type: Optional[Array[String]]
Specifies an array of authentication contexts, in order of relative strength. Specify each authentication context as a URI.
dsc_autocertificaterollover
Data type: Optional[Boolean]
Indicates whether the system manages certificates for the administrator and generates new certificates before the expiration date of current certificates.
dsc_browserssoenabled
Data type: Optional[Boolean]
Indicates that browser single sign-on (SSO) is enabled.
dsc_browserssosupporteduseragents
Data type: Optional[Array[String]]
Specifies an array of user agents that are supported for browser SSO.
dsc_certificatecriticalthreshold
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the period of time, in days, prior to the expiration of a current primary signing or decryption certificate. When a certificate reaches this threshold, the Federation Service initiates the automatic certificate rollover service, generates a new certificate, and promotes it as the primary certificate. This rollover process occurs even if the critical threshold interval does not provide sufficient time for partners to replicate the new metadata. Specify a short period of time that is used only in extreme conditions when the Federation Service has not been able to generate a new certificate in advance.
dsc_certificateduration
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the period of time, in days, that any certificates that the Federation Service generates remain valid.
dsc_certificategenerationthreshold
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the period of time, in days, that any certificates that the Federation Service generates remain valid. The default value is 365 days.
dsc_certificatepromotionthreshold
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the period of time, in days, during which a newly generated certificate remains a secondary certificate before being promoted as the primary certificate. The default value is 5 days.
dsc_certificaterolloverinterval
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the certificate rollover interval, in minutes. This value determines the frequency at which the Federation Service initiates the rollover service by polling to check whether new certificates need to be generated. The default value is 720 minutes.
dsc_certificatethresholdmultiplier
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the certificate threshold multiplier. By default, this parameter uses the number of minutes in a day (1440) as a multiplier. Change this value only if you want to use a more finely detailed measure of time, such as less than a single day, for calculating the time periods for other certificate threshold parameters.
dsc_delegateserviceadministration
Data type: Optional[String]
Specifies the delegate service administration.
dsc_deviceusagewindowindays
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the length of the device usage window in days.
dsc_enableextranetlockout
Data type: Optional[Boolean]
Indicates whether to enable the lockout algorithm for extranet. When enabled, AD FS checks attributes in Active Directory for the user before validating the credential. If the user is determined to be in lockout state, AD FS will deny the request to the user when accessing from the extranet, to prevent random login attempts from the extranet. Intranet access will continue to be validated against Active Directory.
dsc_enableidpinitiatedsignonpage
Data type: Optional[Boolean]
Specifies whether to enable the EnableIdPInitiatedSignonPage property.
dsc_enablekmsi
Data type: Optional[Boolean]
Indicates whether to enable the Keep Me Signed In (KMSI) option for form-based authentication. KMSI is limited to providing only 24 hours of SSO. Note that a workplace joined device gets 7 days of SSO by default and does not need this option enabled.
dsc_enablelocalauthenticationtypes
Data type: Optional[Boolean]
Indicates that local authentication types are enabled.
dsc_enableloopdetection
Data type: Optional[Boolean]
Indicates whether to enable loop detection. Loops occur when a relying party continuously rejects a valid security token and redirects back to AD FS. The cycle terminates after 6 loops have been detected.
dsc_enableoauthdeviceflow
Data type: Optional[Boolean]
Enabled the OAuth Device Flow.
dsc_enablepersistentsso
Data type: Optional[Boolean]
Indicates whether to store the SSO token in persistent cookies for devices joined to a workplace.
dsc_enablerelaystateforidpinitiatedsignon
Data type: Optional[Boolean]
Indicates that relay state for issuing distribution point (IDP) initiated sign-on is enabled.
dsc_extendedprotectiontokencheck
Data type: Optional[Enum['Require', 'Allow', 'None']]
Specifies the level of extended protection for authentication supported by the federation server. Extended Protection for Authentication helps protect against man-in-the-middle (MITM) attacks, in which an attacker intercepts a client's credentials and forwards them to a server. Protection against such attacks is made possible through a Channel Binding Token (CBT) which can be either required, allowed or not required by the server when establishing communications with clients.
dsc_extranetlockoutmode
Data type: Optional[Enum['ADFSSmartLockoutLogOnly', 'ADFSSmartLockoutEnforce']]
Specifies the maximum number of bad password attempts permitted against the directory before the account is throttled when accessing applications from the extranet for familiar locations. If you use Active Directory Domain Services account lockout policies, it is strongly recommended that you set this threshold to a value that is less than the threshold in AD DS to avoid lockout of the user inside and outside the network. This property is only supported in Windows Server 2019 and above.
dsc_extranetlockoutrequirepdc
Data type: Optional[Boolean]
Specifies whether extranet lockout requires a primary domain controller (PDC).
dsc_extranetlockoutthreshold
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the maximum number of bad password attempts permitted against the directory before the account is throttled when accessing applications from the extranet for unfamiliar locations. If you use Active Directory Domain Services account lockout policies, it is strongly recommended that you set this threshold to a value that is less than the threshold in AD DS to avoid lockout of the user inside and outside the network.
dsc_extranetlockoutthresholdfamiliarlocation
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the maximum number of bad password attempts permitted against the directory before the account is throttled when accessing applications from the extranet for familiar locations. If you use Active Directory Domain Services account lockout policies, it is strongly recommended that you set this threshold to a value that is less than the threshold in AD DS to avoid lockout of the user inside and outside the network. This property is only supported in Windows Server 2019 and above.
dsc_extranetobservationwindow
Data type: Optional[String]
Specifies the timespan of the lockout observation window. AD FS will reset a throttled state of an account when more than one observation window has expired since the last bad password attempt, as reported by Active Directory Domain Services. It is also possible that the last bad password field in AD DS is cleared by AD DS based on its own observation windows. In this case, AD FS will allow the request to be passed onto AD DS for validation.
dsc_globalrelyingpartyclaimsissuancepolicy
Data type: Optional[String]
Specifies a global relying party claims issuance policy.
dsc_hostname
Data type: Optional[String]
Specifies the network addressable host name of the Federation Service.
dsc_httpport
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the HTTP port for the server.
dsc_httpsport
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the HTTPS port for the server.
dsc_identifier
Data type: Optional[String]
Specifies the URI that uniquely identifies the Federation Service.
dsc_idtokenissuer
Data type: Optional[String]
Specifies the URI of the token issuer.
dsc_ignoretokenbinding
Data type: Optional[Boolean]
Specifies whether to ignore token binding.
dsc_intranetuselocalclaimsprovider
Data type: Optional[Boolean]
Indicates whether all web based requests from the intranet default to the default Active Directory claims provider. Use this parameter only when there is more than one claims provider trust in AD FS and you want all user access from the intranet to use the default Active Directory for authentication.
dsc_kmsilifetimemins
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the lifetime of the sign on status for KMSI.
dsc_loglevel
Data type: Optional[Array[Enum['Errors', 'FailureAudits', 'Information', 'Verbose', 'SuccessAudits', 'Warnings', 'None']]]
Specifies an array of log detail. The array defines which types of events to record.
dsc_loopdetectionmaximumtokensissuedininterval
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the maximum number of tokens that can be issued within the time period specified by the LoopDetectionTimeIntervalInSeconds parameter before AD FS will reject the request and present an error to the user. Use in conjunction with the LoopDetectionMaximumTokensIssuedInInterval parameter.
dsc_loopdetectiontimeintervalinseconds
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the time interval in seconds for AD FS to track multiple token requests that are occurring and being rejected by the relying party causing a redirect back to AD FS for a new token request. Use in conjunction with the LoopDetectionMaximumTokensIssuedInInterval parameter.
dsc_monitoringinterval
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the frequency, in minutes, with which the Federation Service monitors the federation metadata of relying parties and claims providers that are enabled for federation metadata monitoring.
dsc_nettcpport
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the TCP port number for the server.
dsc_ntlmonlysupportedclientatproxy
Data type: Optional[Boolean]
Indicates whether to enable support for NTLM-based authentication in situations where the active federation server proxy does not support Negotiate method of authentication. This setting only affects the Windows transport endpoint.
dsc_persistentssocutofftime
Data type: Optional[Timestamp]
Specifies the earliest issue time of accepted persistent single sign-on (SSO) tokens and OAuth refresh tokens. Persistent SSO tokens or OAuth refresh tokens issued before this time will be rejected. Use this only to reject all prior SSO state across all users and force users to provide fresh credentials.
dsc_persistentssolifetimemins
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the duration, in minutes, of the persistent SSO experience.
dsc_preventtokenreplays
Data type: Optional[Boolean]
Indicates whether the Federation Service prevents the replay of security tokens.
dsc_proxytrusttokenlifetime
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the valid token lifetime, in minutes, for proxy trust tokens. This value is used by the federation server proxy to authenticate with its associated federation server.
dsc_replaycacheexpirationinterval
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the cache duration, in minutes, for token replay detection. This value determines the lifetime for tokens in the replay cache. When the age of a cached token exceeds this interval, the Federation Service determines the token has expired and does not allow replay of it.
dsc_samlmessagedeliverywindow
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the duration, in minutes, for which the Security Assertion Markup Language (SAML) messages sent by the Federation Service are considered valid.
dsc_sendclientrequestidasquerystringparameter
Data type: Optional[Boolean]
Indicates whether the client request id, or activity id, is sent as a query string on any redirect from AD FS that is sent to itself. This enables all servers in AD FS to use the same client request id when logging any messages in eventlogs, traces and audits. As a result, it is easier to troubleshoot a single request across multiple AD FS servers in the farm. The default value is $True.
dsc_signedsamlrequestsrequired
Data type: Optional[Boolean]
Indicates whether the Federation Service requires signed SAML protocol requests from the relying party. If you specify a value of $True, the Federation Service rejects unsigned SAML protocol requests.
dsc_signsamlauthnrequests
Data type: Optional[Boolean]
Indicates whether the Federation Service signs SAML protocol authentication requests to claims providers.
dsc_ssolifetime
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the duration, in minutes, of the single sign-on (SSO) experience for Web browser clients.
dsc_tlsclientport
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the port number where AD FS listens for user certificate authentication requests. Use this only when user certificate authentication is used in AD FS.
dsc_wiasupporteduseragents
Data type: Optional[Array[String]]
Specifies an array of acceptable user agents that support seamless sign-in with Windows Integrated Authentication. If AD FS receives a token request and policy selects Windows Integrated Authentication, AD FS uses this list to determine if it needs to fall back to forms-based authentication. When the user agent for the incoming request is not in this list, AD FS falls back to forms-based authentication.
Parameters
The following parameters are available in the dsc_adfsproperties
type.
dsc_federationservicename
namevar
Data type: String
Specifies the DNS name of the federation service.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfsrelyingpartytrust
The DSC AdfsRelyingPartyTrust resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfsrelyingpartytrust
type.
dsc_accesscontrolpolicyname
Data type: Optional[String]
Specifies the name of an access control policy.
dsc_accesscontrolpolicyparameters
Data type: Optional[Struct[{ groupparameter => Optional[Array[String]], }]]
Specifies the parameters and their values to pass to the Access Control Policy.
dsc_additionalauthenticationrules
Data type: Optional[String]
Specifies the additional authorization rules to require additional authentication based on user, device and location attributes after the completion of the first step of authentication. Note: These rules must only be configured after there is at least one authentication provider enabled for additional authentication.
dsc_additionalwsfedendpoint
Data type: Optional[Array[String]]
Specifies an array of alternate return addresses for the application. This is typically used when the application wants to indicate to AD FS what the return URL should be on successful token generation. AD FS requires that all acceptable URLs are entered as trusted information by the administrator.
dsc_allowedauthenticationclassreferences
Data type: Optional[Array[String]]
Specifies an array of allow authentication class references.
dsc_allowedclienttypes
Data type: Optional[Array[Enum['None', 'Public', 'Confidential']]]
Specifies allowed client types.
dsc_alwaysrequireauthentication
Data type: Optional[Boolean]
Indicates to always require authentication.
dsc_autoupdateenabled
Data type: Optional[Boolean]
Indicates whether changes to the federation metadata by the MetadataURL parameter apply automatically to the configuration of the trust relationship. If this parameter has a value of True, partner claims, certificates, and endpoints are updated automatically.
dsc_claimaccepted
Data type: Optional[Array[String]]
Specifies an array of claims that this relying party accepts.
dsc_claimsprovidername
Data type: Optional[Array[String]]
Specifies the name of the claim provider.
dsc_delegationauthorizationrules
Data type: Optional[String]
Specifies the delegation authorization rules for issuing claims to this relying party.
dsc_enabled
Data type: Optional[Boolean]
Indicates whether the relying party trust is enabled.
dsc_enablejwt
Data type: Optional[Boolean]
Indicates whether the JSON Web Token (JWT) format should be used to issue a token on a WS-Federation request. By default, SAML tokens are issued over WS-Federation.
dsc_encryptclaims
Data type: Optional[Boolean]
Indicates whether the claims that are sent to the relying party are encrypted.
dsc_encryptednameidrequired
Data type: Optional[Boolean]
Indicates whether the relying party requires that the NameID claim be encrypted.
dsc_encryptioncertificaterevocationcheck
Data type: Optional[Enum['None', 'CheckEndCert', 'CheckEndCertCacheOnly', 'CheckChain', 'CheckChainCacheOnly', 'CheckChainExcludeRoot', 'CheckChainExcludeRootCacheOnly']]
Specifies the type of validation that should occur for the encryption certificate it is used for encrypting claims to the relying party.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether to remove or add the relying party trust.
dsc_identifier
Data type: Optional[Array[String]]
Specifies the unique identifiers for this relying party trust. No other trust can use an identifier from this list. Uniform Resource Identifiers (URIs) are often used as unique identifiers for a relying party trust, but you can use any string of characters.
dsc_impersonationauthorizationrules
Data type: Optional[String]
Specifies the impersonation authorization rules for issuing claims to this relying party.
dsc_issuanceauthorizationrules
Data type: Optional[String]
Specifies the issuance authorization rules for issuing claims to this relying party.
dsc_issuancetransformrules
Data type: Optional[Array[Struct[{ customrule => Optional[String], templatename => Enum['LdapClaims', 'EmitGroupClaims', 'CustomClaims'], attributestore => Optional[String], outgoingnameidformat => Optional[String], name => String, groupname => Optional[String], outgoingclaimvalue => Optional[String], ldapmapping => Array[Struct[{ outgoingclaimtype => String, ldapattribute => String, cim_instance_type => Enum['MSFT_AdfsLdapMapping'] }]], outgoingclaimtype => Optional[String] }]]]
Specifies the issuance transform rules for issuing claims to this relying party.
dsc_issueoauthrefreshtokensto
Data type: Optional[Enum['NoDevice', 'WorkplaceJoinedDevices', 'AllDevices']]
Specifies the refresh token issuance device types.
dsc_metadataurl
Data type: Optional[String]
Specifies a URL at which the federation metadata for this relying party trust is available.
dsc_monitoringenabled
Data type: Optional[Boolean]
Indicates whether periodic monitoring of this relying party federation metadata is enabled. The MetadataUrl parameter specifies the URL of the relying party federation metadata.
dsc_notbeforeskew
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the skew, as in integer, for the time stamp that marks the beginning of the validity period.
dsc_notes
Data type: Optional[String]
Specifies notes for this relying party trust.
dsc_protocolprofile
Data type: Optional[Enum['SAML', 'WsFederation', 'WsFed-SAML']]
Specifies which protocol profiles the relying party supports.
dsc_refreshtokenprotectionenabled
Data type: Optional[Boolean]
Indicates whether refresh token protection is enabled.
dsc_requestmfafromclaimsproviders
Data type: Optional[Boolean]
Indicates whether to use the request MFA from claims providers option.
dsc_samlendpoint
Data type: Optional[Array[Struct[{ binding => Optional[Enum['Artifact', 'POST', 'Redirect', 'SOAP']], uri => Optional[String], index => Optional[Integer[-2147483648, 2147483647]], responseuri => Optional[String], isdefault => Optional[Boolean], protocol => Optional[Enum['SAMLArtifactResolution', 'SAMLAssertionConsumer', 'SAMLLogout', 'SAMLSingleSignOn']] }]]]
Specifies an array of Security Assertion Markup Language (SAML) protocol endpoints for this relying party.
dsc_samlresponsesignature
Data type: Optional[Enum['AssertionOnly', 'MessageAndAssertion', 'MessageOnly']]
Specifies the response signature or signatures that the relying party expects.
dsc_signaturealgorithm
Data type: Optional[Enum['http://www.w3.org/2000/09/xmldsig#rsa-sha1', 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256']]
Specifies the signature algorithm that the relying party uses for signing and verification.
dsc_signedsamlrequestsrequired
Data type: Optional[Boolean]
Indicates whether the Federation Service requires signed SAML protocol requests from the relying party. If you specify a value of True, the Federation Service rejects unsigned SAML protocol requests.
dsc_signingcertificaterevocationcheck
Data type: Optional[Enum['None', 'CheckEndCert', 'CheckEndCertCacheOnly', 'CheckChain', 'CheckChainCacheOnly', 'CheckChainExcludeRoot', 'CheckChainExcludeRootCacheOnly']]
Specifies the type of certificate validation that occur when signatures on requests from the relying party are verified.
dsc_tokenlifetime
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the duration, in minutes, for which the claims that are issued to the relying party are valid.
dsc_wsfedendpoint
Data type: Optional[String]
Specifies the WS-Federation Passive URL for this relying party.
Parameters
The following parameters are available in the dsc_adfsrelyingpartytrust
type.
dsc_name
namevar
Data type: String
Specifies the friendly name of this relying party trust.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfssslcertificate
The DSC AdfsSslCertificate resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfssslcertificate
type.
dsc_thumbprint
Data type: String
Specifies the thumbprint of the certificate to use.
Parameters
The following parameters are available in the dsc_adfssslcertificate
type.
dsc_certificatetype
namevar
Data type: Enum['Https-Binding']
Specifies the certificate type, must be 'Https-Binding'.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_remotecredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
Specifies the credential to use to connect to WinRM on all the members of the ADFS farm.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
dsc_adfswebapiapplication
The DSC AdfsWebApiApplication resource type. Automatically generated from version 1.1.0
Properties
The following properties are available in the dsc_adfswebapiapplication
type.
dsc_accesscontrolpolicyname
Data type: Optional[String]
Specifies the name of an access control policy.
dsc_accesscontrolpolicyparameters
Data type: Optional[Struct[{ groupparameter => Optional[Array[String]], }]]
Specifies the parameters and their values to pass to the Access Control Policy.
dsc_additionalauthenticationrules
Data type: Optional[String]
Specifies additional authentication rules.
dsc_allowedauthenticationclassreferences
Data type: Optional[Array[String]]
Specifies an array of allow authentication class references.
dsc_allowedclienttypes
Data type: Optional[Array[Enum['None', 'Public', 'Confidential']]]
Specifies allowed client types.
dsc_alwaysrequireauthentication
Data type: Optional[Boolean]
Indicates that this Web API application role always requires authentication, even if it previously authenticated credentials for access. Specify this parameter to require users to always supply credentials to access sensitive resources.
dsc_applicationgroupidentifier
Data type: String
Specifies the ID of an application group for the Web API application.
dsc_claimsprovidername
Data type: Optional[Array[String]]
Specifies an array of claims provider names that you can configure for a relying party trust for Home Realm Discovery (HRD) scenario.
dsc_delegationauthorizationrules
Data type: Optional[String]
Specifies delegation authorization rules.
dsc_description
Data type: Optional[String]
Specifies a description for the Web API application.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the Web API application should be present or absent. Default value is 'Present'.
dsc_identifier
Data type: Array[String]
Specifies an identifier for the Web API application.
dsc_impersonationauthorizationrules
Data type: Optional[String]
Specifies the impersonation authorization rules.
dsc_issuanceauthorizationrules
Data type: Optional[String]
Specifies the issuance authorization rules.
dsc_issuancetransformrules
Data type: Optional[Array[Struct[{ customrule => Optional[String], templatename => Enum['LdapClaims', 'EmitGroupClaims', 'CustomClaims'], attributestore => Optional[String], outgoingnameidformat => Optional[String], name => String, groupname => Optional[String], outgoingclaimvalue => Optional[String], ldapmapping => Array[Struct[{ outgoingclaimtype => String, ldapattribute => String, cim_instance_type => Enum['MSFT_AdfsLdapMapping'] }]], outgoingclaimtype => Optional[String] }]]]
Specifies the issuance transform rules.
dsc_issueoauthrefreshtokensto
Data type: Optional[Enum['NoDevice', 'WorkplaceJoinedDevices', 'AllDevices']]
Specifies the refresh token issuance device types.
dsc_notbeforeskew
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the not before skew value.
dsc_refreshtokenprotectionenabled
Data type: Optional[Boolean]
Indicates whether refresh token protection is enabled.
dsc_requestmfafromclaimsproviders
Data type: Optional[Boolean]
Indicates that the request MFA from claims providers option is used.
dsc_tokenlifetime
Data type: Optional[Integer[-2147483648, 2147483647]]
Specifies the token lifetime.
Parameters
The following parameters are available in the dsc_adfswebapiapplication
type.
dsc_name
namevar
Data type: String
Specifies a name for the Web API application.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
validation_mode
Data type: Enum[property, resource]
Whether to check if the resource is in the desired state by property (default) or using Invoke-DscResource in Test mode (resource).
Default value: property
[1.1.0] - 2020-12-22
Added
- AdfsContactPerson
- Added empty contact support (issue #27).
- AdfsFarm
- Added
AdminConfiguration
parameter (issue #42).
- Added
- AdfsGlobalAuthenticationPolicy
- Added integration tests.
- AdfsOrganization
- Added empty organization support (issue #30).
- Added integration tests.
- AdfsProperties
- Added integration tests.
Removed
- AdfsProperties
- Removed obsolete properties
PromptLoginFederation
andPromptLoginFallbackAuthenticationType
(issue #34).
- Removed obsolete properties
- AdfsFarmNode
- Removed
Ensure
Parameter asRemove-AdfsFarmNode
cmdlet is deprecated (issue #36).
- Removed
1.0.0
Added
- AdfsWebApiApplication
- Added support for access control policy parameters (issue #19).
- AdfsRelyingPartyTrust
0.1.38-alpha
- Initial release
Dependencies
- puppetlabs/pwshlib (>= 0.9.0 < 2.0.0)