SAIF.Framework.Security.EnvironmentApi dependencies¶
This library declares no in-solution <ProjectReference> entries; all of its non-BCL dependencies are consumed as NuGet package references, and it also integrates with a centralized WCF service and an HTTP-based Environment API.
Internal dependencies¶
None declared. No <ProjectReference> entries exist in SAIF.BOF.Framework.Security.EnvironmentApi.csproj — internal-repository libraries are instead consumed as versioned NuGet packages, listed under External dependencies below*.
| Dependency | Type | Usage |
|---|---|---|
| None | — | — |
External dependencies¶
| Dependency | Version | Usage |
|---|---|---|
| Newtonsoft.Json | 13.0.3 | JsonConvert.DeserializeObject for developer-settings override file parsing (Services.Common\EnvironmentServiceBase.cs) |
| SAIF.Framework.Common (external, unindexed) | 2.0.22074.3 | SAIF.Common.Extensions (IsNullOrEmpty, ToStringAll, ApplicationName(), Enforce.ArgumentNotNullOrEmpty, Identity.UserId()) used throughout EnvironmentServiceBase.cs, IEnvironmentService.cs, WcfEnvironmentService.cs, SystemHashUtil.cs; classified as framework-inherited |
| SAIF.HashUtil (external, unindexed) | 2.0.22083.2 | SAIF.HashUtil.SaltShaker and SystemHashExpiredException used in SystemHashUtil.cs; classified as framework-inherited |
| WCF SecurityService endpoint | N/A (service, not a package) | http://saifonline/WCF/Security (binding BasicHttpBinding_Security), consumed via the generated proxy in Connected Services\SecurityService\Reference.cs and wrapped by SecurityServiceClient.GetUsersByGroup (Core\Services\SecurityServiceClient.cs); provides an alternative, server-side path to AD group-membership data alongside the local ADService path |
Dependency risks and notes¶
SAIF.Framework.CommonandSAIF.HashUtilare external, unindexed packages — their internal implementation is not analyzed as part of this library's documentation set; only their consumed surface (extension methods,SaltShaker,SystemHashExpiredException) is traceable here**.- The WCF
SecurityServiceendpoint (http://saifonline/WCF/Security) exposesIsAuthorized/IsAuthorized2(user/role authorization) andGetUsersByGroup(AD group enumeration), but onlyGetUsersByGroupis consumed by this library'sSecurityServiceClientwrapper —IsAuthorized/IsAuthorized2exist only as unused generated-proxy methods with no local caller found. - No call site invoking
SecurityServiceClientwas found elsewhere within this library — it is a thin wrapper provided for use by downstream consumers rather than used internally, meaning drift between this library's localADServiceauthorization path and the WCF-based path is not internally enforced or reconciled. SecurityServiceClienthard-codes default LDAP/domain constants (LDAP = "LDAP://slmdc01.corp.saif.com:389/DC=corp,DC=saif,DC=com",DOMAIN = "saif") rather than reading them fromEnvironmentConfigKeys.SecurityServiceUrl; the actual service URL is supplied externally by the caller's constructor argument, not read internally from that config key.- The local AD-authorization path (
ADService, used byMachineSecurityService) resolves its LDAP host/domain values (ad.ldap.host,ad.ldap.internal.root,ad.internal.domain) at runtime via the Environment API rather than from a static config file; actual production values are not verifiable from static analysis alone*. MachineSecurityService.IsAuthorizedfails closed (returnsfalse) on any AD-lookup exception, logging only viaDebug.WriteLine— failures in the AD dependency are not surfaced through structured audit/security logging.- This library also depends on an HTTP-based Environment API service (base URL resolved from the OS environment variable
EnvironmentApiUrl) for all configuration-settings retrieval; this is a runtime service dependency rather than a package dependency, and its absence throwsMissingEnvironmentUrlVariableException. - Whether any downstream (non-EnvironmentApi) library calls
IsAuthorized/IsAuthorized2on the generatedSecurityService.SecurityClientproxy, or instantiatesSecurityServiceClient/MachineSecurityServicedirectly, is out of scope for this library-level analysis and was not verified**.
Related documentation¶
- Index
- Overview
- Architecture
- Operations and processes
- Business rules
- Configuration
- Security and authorization
- API reference
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Sources¶
- SAIF.Framework.Security.EnvironmentApi\SAIF.BOF.Framework.Security.EnvironmentApi.csproj
- SAIF.Framework.Security.EnvironmentApi\Services.Common\EnvironmentServiceBase.cs
- SAIF.Framework.Security.EnvironmentApi\Services.Common\SystemHashUtil.cs
- SAIF.Framework.Security.EnvironmentApi\Services.Common\EnvironmentConfigKeys.cs
- SAIF.Framework.Security.EnvironmentApi\Core\Services\SecurityServiceClient.cs
- SAIF.Framework.Security.EnvironmentApi\Core\Services\MachineSecurityService.cs
- SAIF.Framework.Security.EnvironmentApi\Core\Services\ADService.cs
- SAIF.Framework.Security.EnvironmentApi\Connected Services\SecurityService\Reference.cs
- SAIF.Framework.Security.EnvironmentApi\Connected Services\SecurityService\SecurityService.wsdl
- SAIF.Framework.Security.EnvironmentApi\app.config
- SAIF.Framework.Security.EnvironmentApi\Exceptions\MissingEnvironmentUrlVariableException.cs