AdfsProperties - X-Guardian/AdfsDsc GitHub Wiki

AdfsProperties

Parameters

Parameter Attribute DataType Description Allowed Values
FederationService Name Key String Specifies the DNS name of the federation service.
AdditionalErrorPage Info Write String Specifies the level of additional information that is displayed on ADFS error pages. This property is only supported in Windows Server 2019 and above. Private, Detailed, None
Authentication ContextOrder Write StringArray[] Specifies an array of authentication contexts, in order of relative strength. Specify each authentication context as a URI.
AcceptableIdentifiers Write StringArray[] 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.
ArtifactDbConnection Write String Specifies the connection string to use for the database that maintains the artifacts that the artifact resolution service uses.
AuditLevel Write StringArray[] Specifies an array of audit levels. None, Basic, Verbose
AutoCertificate Rollover Write Boolean Indicates whether the system manages certificates for the administrator and generates new certificates before the expiration date of current certificates.
CertificateCritical Threshold Write SInt32 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.
CertificateDuration Write SInt32 Specifies the period of time, in days, that any certificates that the Federation Service generates remain valid.
Certificate GenerationThreshold Write SInt32 Specifies the period of time, in days, that any certificates that the Federation Service generates remain valid. The default value is 365 days.
CertificatePromotion Threshold Write SInt32 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.
CertificateRollover Interval Write SInt32 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.
CertificateThreshold Multiplier Write SInt32 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.
EnableOAuthDevice Flow Write Boolean Enabled the OAuth Device Flow.
HostName Write String Specifies the network addressable host name of the Federation Service.
HttpPort Write SInt32 Specifies the HTTP port for the server.
HttpsPort Write SInt32 Specifies the HTTPS port for the server.
IntranetUseLocal ClaimsProvider Write 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.
TlsClientPort Write SInt32 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.
Identifier Write String Specifies the URI that uniquely identifies the Federation Service.
LogLevel Write StringArray[] Specifies an array of log detail. The array defines which types of events to record. Errors, FailureAudits, Information, Verbose, SuccessAudits, Warnings, None
MonitoringInterval Write SInt32 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.
NetTcpPort Write SInt32 Specifies the TCP port number for the server.
NtlmOnlySupported ClientAtProxy Write 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.
PreventTokenReplays Write Boolean Indicates whether the Federation Service prevents the replay of security tokens.
ExtendedProtection TokenCheck Write String 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. Require, Allow, None
ProxyTrustToken Lifetime Write SInt32 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.
ReplayCache ExpirationInterval Write SInt32 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.
SignedSamlRequests Required Write 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.
SamlMessageDelivery Window Write SInt32 Specifies the duration, in minutes, for which the Security Assertion Markup Language (SAML) messages sent by the Federation Service are considered valid.
SignSamlAuthn Requests Write Boolean Indicates whether the Federation Service signs SAML protocol authentication requests to claims providers.
SsoLifetime Write SInt32 Specifies the duration, in minutes, of the single sign-on (SSO) experience for Web browser clients.
PersistentSso LifetimeMins Write SInt32 Specifies the duration, in minutes, of the persistent SSO experience.
KmsiLifetimeMins Write SInt32 Specifies the lifetime of the sign on status for KMSI.
EnablePersistentSso Write Boolean Indicates whether to store the SSO token in persistent cookies for devices joined to a workplace.
PersistentSsoCutoff Time Write DateTime 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.
EnableKmsi Write 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.
WIASupportedUser Agents Write StringArray[] 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.
BrowserSsoSupported UserAgents Write StringArray[] Specifies an array of user agents that are supported for browser SSO.
BrowserSsoEnabled Write Boolean Indicates that browser single sign-on (SSO) is enabled.
LoopDetectionTime IntervalInSeconds Write SInt32 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.
LoopDetection MaximumTokens IssuedInInterval Write SInt32 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.
EnableLoopDetection Write 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.
ExtranetLockoutMode Write String 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. ADFSSmartLockoutLogOnly, ADFSSmartLockoutEnforce
ExtranetLockout Threshold Write SInt32 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.
ExtranetLockout ThresholdFamiliar Location Write SInt32 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.
EnableExtranet Lockout Write 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.
ExtranetObservation Window Write 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.
ExtranetLockout RequirePDC Write Boolean Specifies whether extranet lockout requires a primary domain controller (PDC).
SendClientRequestId AsQueryString Parameter Write 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.
GlobalRelyingParty ClaimsIssuancePolicy Write String Specifies a global relying party claims issuance policy.
EnableLocal AuthenticationTypes Write Boolean Indicates that local authentication types are enabled.
EnableRelayStateFor IdpInitiatedSignOn Write Boolean Indicates that relay state for issuing distribution point (IDP) initiated sign-on is enabled.
DelegateService Administration Write String Specifies the delegate service administration.
AllowSystemService Administration Write Boolean Indicates that system service administration is allowed.
AllowLocalAdmins Service Administration Write Boolean Indicates that local administrator service administration is allowed.
DeviceUsageWindowIn Days Write SInt32 Specifies the length of the device usage window in days.
EnableIdPInitiated SignonPage Write Boolean Specifies whether to enable the EnableIdPInitiatedSignonPage property.
IgnoreTokenBinding Write Boolean Specifies whether to ignore token binding.
IdTokenIssuer Write String Specifies the URI of the token issuer.

Description

The AdfsProperties DSC resource manages all the associated properties for the Active Directory Federation Services (AD FS) service.

Examples

Example 1

This configuration will set the Extranet Lockout properties on the ADFS service.

Configuration AdfsProperties_Config
{
    param()

    Import-DscResource -ModuleName AdfsDsc

    Node localhost
    {
        AdfsProperties ContosoAdfsProperties
        {
            FederationServiceName    = 'sts.contoso.com'
            EnableExtranetLockout    =  $True
            ExtranetLockoutThreshold =  4
        }
    }
}