Authentication and authorization¶
No operation on this host carries an authorization attribute or a programmatic identity check. Both Windows and anonymous authentication are enabled at the IIS layer, and the only gate on any request is a job-name allow/deny list, which is a job filter, not a caller filter.
Authentication mechanism¶
Authentication is configured at the IIS layer by the release pipeline, not in code:
| Deployment setting | Value | Source |
|---|---|---|
IISWindowsAuth |
true |
pipelines/build-vars.UC4.yml |
IISAnonymousAuth |
true |
pipelines/build-vars.UC4.yml |
IISAppPoolPipelineMode |
Integrated |
pipelines/build-vars.UC4.yml |
| Applied by | Stages/v2/deploy-stages-api-iis.yml@templates with IISWindowsAuth / IISAnonymousAuth parameters |
pipelines/release.UC4.yml |
system.webServer/security/authentication in Web.config |
Not declared | src/WCF/SAIF.Services.WCF.UC4.Host/Web.config |
Both Windows and anonymous authentication are enabled on the deployed application, and the same values are used for every stage the release template drives (the template defines the stage list outside this repository).
Authorization enforcement points¶
Detection performed across src/WCF/SAIF.Services.WCF.UC4.Host/*.cs and Web.config, each returning no match: [PrincipalPermission, ServiceAuthorizationManager, ServiceSecurityContext, OperationContext.Current.ServiceSecurityContext, [SaifAuthorize, IsAuthorized, <serviceAuthorization>, <serviceCredentials>. There is no caller identity check, no role check, and no principal inspection anywhere in this host.
Access requirements per operation¶
| Operation | Check found | Enforcement point |
|---|---|---|
ExecuteJob |
None in code | — |
ExecuteJobWithClientId |
None in code | — |
ExecuteJobWithJson |
None in code | — |
ExecuteJobWithJsonAndClientId |
None in code | — |
ExecuteJobWithValues |
None in code | — |
ExecuteJobWithValuesAndClientId |
None in code | — |
ExecuteJobWithParameters |
None in code | — |
ExecuteJobWithParametersAndClientId |
None in code | — |
Roles and resources¶
No role or resource model exists in this host. The nearest thing to an access-control resource is the uc4.rules environment-service document, which gates which jobs may run per environment — see BR-UC4-001, BR-UC4-002, and BR-UC4-003. It never inspects who is calling.
With anonymous authentication enabled and no authorization check in code, the effective access control for every operation is network reachability plus the uc4.rules allow/deny list — a job filter, never a caller filter.
Secrets handling¶
| Aspect | Finding |
|---|---|
| Secrets referenced in code | None found — no GetSecureConfigSetting call exists in this host's source |
| Certificates | Uc4Client.cs imports System.Security.Cryptography.X509Certificates (line 7) but uses no certificate type anywhere — an unused import, not a security mechanism |
| Credentials transcribed in this documentation | None — no secret value is ever reproduced; only setting names and kinds are named |
Security rules and provider/consumer relationship¶
The centralized SAIF WCF security service — SecurityService, AuthorizationCacheService, ADService, the provider side of the IsAuthorized / IsAuthorized2 calls documented from the consumer side elsewhere in this repository — lives in the sibling host SAIF.Services.WCF.Host (route Security). This host neither provides nor consumes it. No SecurityService, IsAuthorized, or securityServiceUrl reference exists anywhere in src/WCF/SAIF.Services.WCF.UC4.Host. A reader who has seen the consumer-side documentation for other hosts must not expect that mechanism here: this host is outside the SAIF role model entirely.
The absence of authorization here is recorded as security finding F-SEC-001 (arbitrary job invocation across a network boundary with no caller authorization) — see Tech debt for the full security finding catalog.
Related documentation¶
- Index
- Overview
- Architecture
- Activation and hosting
- Operations
- Faults and error pipeline
- Dependencies
- Configuration
- Operations and processes
- Business rules
- Operational runbook
- Tech debt
Sources¶
src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cssrc/WCF/SAIF.Services.WCF.UC4.Host/Uc4Client.cssrc/WCF/SAIF.Services.WCF.UC4.Host/Web.configpipelines/build-vars.UC4.ymlpipelines/release.UC4.yml