You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
security(sso): implement client secret encryption for SSO providers (MVA-3395) #9501
Verify-and-close (umbrella #9930 sweep): Already implemented. OAuth client secrets are encrypted at rest via SSOSecretsManager (autobot-slm-backend/user_management/services/sso_secrets.py) storing AES-256-GCM ciphertext in system_secrets (key scheme sso:provider:{id}:{field}); the provider config holds only {field}_ref references — no plaintext. Migration migrations/migrate_sso_secrets_to_system_secret.py (+ test) backfills legacy plaintext. NOTE: the unified-secrets umbrella #10088 will later migrate this into the System/SSO vault (sub-umbrella #8994 Phase C1 #10153). Recommend closing as already-delivered; rotation/vault-migration tracked in #10153/#10154.
Already implemented in Dev_new_gui. SSO sensitive credentials (client_secret, bind_password) are stored encrypted in SystemSecret storage, not plaintext JSONB: sso_service.py uses secrets_mgr.store_secrets() on create/update (line 122/158) and secrets_mgr.retrieve_secret(provider.id, 'client_secret') on use (line 252); model docstring (sso.py:85) documents it. Verified-closed.
Verified implemented in current Dev_new_gui: SSOSecretsManager (autobot-slm-backend/user_management/services/sso_secrets.py:24) encrypts client_secret/bind_password via services.encryption.encrypt_data into system_secrets (key sso:provider:{id}:client_secret); config holds only refs. Closing as delivered (unified-vault migration tracked separately at #10153).
Activity
security(slm/sso): encrypt SSO client secrets at rest with AES-256-GCM (
mrveiss commentedon Jun 17, 2026
Verify-and-close (umbrella #9930 sweep): Already implemented. OAuth client secrets are encrypted at rest via
SSOSecretsManager(autobot-slm-backend/user_management/services/sso_secrets.py) storing AES-256-GCM ciphertext insystem_secrets(key schemesso:provider:{id}:{field}); the providerconfigholds only{field}_refreferences — no plaintext. Migrationmigrations/migrate_sso_secrets_to_system_secret.py(+ test) backfills legacy plaintext. NOTE: the unified-secrets umbrella #10088 will later migrate this into the System/SSO vault (sub-umbrella #8994 Phase C1 #10153). Recommend closing as already-delivered; rotation/vault-migration tracked in #10153/#10154.mrveiss commentedon Jun 22, 2026
Already implemented in
Dev_new_gui. SSO sensitive credentials (client_secret, bind_password) are stored encrypted in SystemSecret storage, not plaintext JSONB:sso_service.pyusessecrets_mgr.store_secrets()on create/update (line 122/158) andsecrets_mgr.retrieve_secret(provider.id, 'client_secret')on use (line 252); model docstring (sso.py:85) documents it. Verified-closed.mrveiss commentedon Jun 22, 2026
Verified implemented in current Dev_new_gui:
SSOSecretsManager(autobot-slm-backend/user_management/services/sso_secrets.py:24) encrypts client_secret/bind_password viaservices.encryption.encrypt_datainto system_secrets (keysso:provider:{id}:client_secret); config holds only refs. Closing as delivered (unified-vault migration tracked separately at #10153).