Skip to main content

CredentialProviderFactory

  • Namespace: PPDS.Auth.Credentials
  • Assembly: PPDS.Auth
  • Kind: Class

Summary​

Factory for creating credential providers from auth profiles.

Members​

Methods​

Create​

ICredentialProvider Create(AuthProfile profile, Action<DeviceCodeInfo> deviceCodeCallback, Func<Action<DeviceCodeInfo>, PreAuthDialogResult> beforeInteractiveAuth)

Creates a credential provider synchronously. Prefer CreateAsync when possible for better performance with secure store lookups.

  • Param profile: The auth profile.

  • Param deviceCodeCallback: Optional callback for device code display.

  • Param beforeInteractiveAuth: Optional callback invoked before browser opens for interactive auth. Returns the user's choice (OpenBrowser, UseDeviceCode, or Cancel).

  • Returns: A credential provider for the profile's auth method.

CreateAsync​

Task<ICredentialProvider> CreateAsync(AuthProfile profile, ISecureCredentialStore credentialStore, Action<DeviceCodeInfo> deviceCodeCallback, Func<Action<DeviceCodeInfo>, PreAuthDialogResult> beforeInteractiveAuth, string clientSecretOverride, CancellationToken cancellationToken)

Creates a credential provider for the specified auth profile.

  • Param profile: The auth profile.

  • Param credentialStore: Optional secure credential store for looking up secrets.

  • Param deviceCodeCallback: Optional callback for device code display.

  • Param beforeInteractiveAuth: Optional callback invoked before browser opens for interactive auth. Returns the user's choice (OpenBrowser, UseDeviceCode, or Cancel).

  • Param clientSecretOverride: Optional client secret that takes priority over env var and credential store lookups.

  • Param cancellationToken: Cancellation token.

  • Returns: A credential provider for the profile's auth method.

GetSpnSecretFromEnvironment​

string GetSpnSecretFromEnvironment()

Gets the SPN secret from environment variables, checking both production and test variables. Returns null if neither is set.

IsSupported​

bool IsSupported(AuthMethod authMethod)

Checks if the specified auth method is supported.

RequiresCredentialStore​

bool RequiresCredentialStore(AuthMethod authMethod)

Checks if the specified auth method requires a secure credential store.

ShouldBypassCredentialStore​

bool ShouldBypassCredentialStore()

Returns true if credential store should be bypassed (SPN secret is available via environment).

Fields​

SpnSecretEnvVar​

string SpnSecretEnvVar

Environment variable name for service principal secret bypass. When set, this value is used instead of looking up from secure store.

TestClientSecretEnvVar​

string TestClientSecretEnvVar

Fallback environment variable for test scenarios. Checked when PPDS.Auth.Credentials.CredentialProviderFactory.SpnSecretEnvVar is not set.