Zum Hauptinhalt springen

Secret Migration Plan

Migrate all hardcoded secrets from source code repositories to Azure Key Vault (AKV).

Overview

  • Organization: togethercca
  • Project: tis-cca
  • Total Repositories: 171
  • Target: Azure Key Vault per environment
  • Tool: tis-secrets migrate (see README.md)
  • Created: 2026-02-19

Environments

EnvKey Vault
Developmentat-tgca-tis-d-default
Fachtestat-tgca-tis-f-default
Prodat-tgca-tis-p-default

Tasks per Repository

For each repository the following steps must be completed:

  1. DEV - Migrate secrets to Development Key Vault
  2. FT - Migrate secrets to Fachtest Key Vault
  3. PROD - Migrate secrets to Prod Key Vault
  4. GIT - Clean git history (remove leaked secrets from all commits)
  5. ROT - Rotate all affected secrets (new passwords, keys, tokens)
  6. LIB - Upgrade tis.hosting library to newest version

Priority Legend

PriorityMeaning
CriticalExternal-facing, high secret count, identity/auth system
HighExternal-facing or contains DB credentials / API keys
MediumInternal service, limited exposure
LowLibrary, tool, or minimal secret risk
TBDNot yet assessed - needs initial scan
N/ANo secrets expected (documentation, templates, empty repos)

Critical Priority

#RepositoryDEVFTPRODGITROTLIBNotesChallenges
1tis.identity12+ secrets, 11 OAuth ClientSecrets, DB-Creds, AD-Creds
2cca.intern.configurationManagement124 MB repo - likely contains environment configs

High Priority

#RepositoryDEVFTPRODGITROTLIBNotesChallenges
3Tis.Partner.UniqaIntegration7+ secrets, RSA Private Key, mTLS password, OAuth2
4tis.identity.legacy.tisoauth2 secrets, plaintext DB creds (omds/GE38@siemens).NET Framework app with multiple projects
5TIS-Anmeldung6 secrets, SQL creds in Web.config, SalesManago keys.NET Framework 4.8 application
6api.servicebytogether.at3 secrets, OAuth2 ClientSecret, AI keys
7tis.anmeldung6 secrets, CCA-Online Secret identical across DEV/FT/PROD
8tis-cca.endkundenportal4 secrets, DB password, WebSMS ApiKeyDoes not use tis.hosting yet
9Tis.Partner.RiskineIntegration5+ secrets, OAuth2, Prod DB password, BasicToken
10Tis.Partner.GraweIntegration4 secrets, Grawe OAuth2, TIS Introspection Secret
11Tis.Partner.ZuerichIntegration4 secrets, ApiGateway ClientSecret, Prod creds in repo
12Tis.Partner.AllianzIntegration5 secrets, DB password, hardcoded DataProtection password
13Tis.Partner.HDIIntegration4 secrets, DB password, hardcoded DataProtection "secret"
15Tis.Partner.MukiIntegration2 secrets, OAuth2 ClientSecrets
16Tis.Partner.WuestenrotIntegration2 secrets, OAuth2, cert password same across all envs
17Tis.Partner.VAVIntegration2 secrets, VAV OAuth2, missing FT/Prod separation
18tis.core.services7 secrets, DB creds (omds/GE38@siemens) in 7 appsettings.NET Standard application

Medium Priority

#RepositoryDEVFTPRODGITROTLIBNotesChallenges
19Tis.Hosting.ApiGateway3 secrets, AdminPassword, AI ConnectionStrings
20tis.identity.apiTBD - identity API, likely has secrets
21Tis.Identity.BenutzerverwaltungTBD - user management, likely has secrets
22Tis.Identity.MakleradminTBD - admin tool, likely has secrets
23tis.identity.oeamtcselfserviceTBD - external-facing self-service
24tis.identity.ovbselfserviceTBD - external-facing self-service
25tis.identity.trustcenterTBD - certificate/trust related
26tis.identity.benutzeranlageTBD - user provisioningStill on .NET Core 2.1 — requires framework upgrade before or during migration
27Tis.Identity.Legacy.TisAuthCookieSessionServiceTBD - legacy auth serviceDoes not use tis.hosting.extensions yet
28tis.identity.Legacy.TisUserTBD - legacy user service.NET Framework 4.7
29tis.identity.certificate.installerTBD - certificate management.NET Framework 4.8
31tis.riskine.anmeldungNo secrets found
32Tis.Partner.GeneraliIntegrationTBD - partner integration
33tis.partner.VigIntegrationTBD - partner integration
35Tis.Hosting.ApiGateway.configTBD - API gateway configuration
36Tis.Hosting.ExtensionsTBD - hosting extensions (may contain config)
37tis.hosting.shellTBD - hosting shell
40tis.gf.apiTBD - GF API serviceUses tis.core libraries; references vulnerable RestSharp version
41tis.gfTBD - main GF applicationTODO: re-run tests when DB server is back online
42tis.gf.bpNo secrets found
43tis.gf.bp.oeamtcTBD - OEAMTC business processNUnit tests not showing correctly in VS2025 Test Explorer
48tis.gf.ervTBD - electronic legal transactionsLeopoldo currently working on this app — revisit in a few days
49tis.gf.esignTBD - e-signature (89 MB, likely has cert secrets)Projects split across 3 solutions — should be consolidated into one per project-structure.md guidelines; do this in a session with Leopoldo (scheduled 2026-03-17)
51tis.gf.oeamtcUnfallNo pre-existing secrets
52tis.gf.omds3.vigongTBD - VIG ONG integrationMigration deferred until 2026-03-16 (active development this week); keep upgrades minimal — app will be deprecated in favor of VigIntegration
55tis.gf.smr5TBD - SMR5 (104 MB)Complex app with many projects — discuss with Michael Hingel
56tis.gf.stornoansuchenTBD - cancellation requestsUses tis.core libraries
57tis.gf.trwsTBD - TRWSCheck if still in use before migrating
59tis.gf.uniqa.serviceTBD - UNIQA service integrationCheck if still in use before migrating
60tis.gf.wgpTBD - WGPCheck telemetry setup with Moritz
64tis.mandanten.vermittlerweb3TBD - broker web v3
66tis.monitoring.dashboardTBD - monitoring (may have connection strings)Fix invalid characters issue first
69tis.services.vertreiberkategorieTBD - distributor category service
70tis.bestand.bestandsuebersichtTBD - portfolio overview
71tis.bestand.klauselserviceTBD - clause service
73tis.bestand.omdsCollectorTBD - OMDS collectorWindows Service, not ASP.NET — no tis.hosting support
74tis.bestand.omdsdownloadTBD - OMDS download.NET Framework 4.6.2 application
75tis.bestand.omdsFileUploadTBD - OMDS file upload.NET Framework 4.6.1 application
77tis.benutzer.druckdatenTBD - user print data.NET Core 2.1 — requires framework upgrade before or during migration
78tis.datenverarbeitung.dbServicesTBD - DB services (likely has connection strings)
79tis.datenverarbeitung.ftpServicesTBD - FTP services (likely has FTP creds)
80tis.datenverarbeitung.toolsTBD - data processing tools.NET Framework 4.0 — check if still in use before migrating
84tis.volltextsucheTBD - full-text search
85tis.pdftransformer.apiNo secrets found
88tis.aduserunlockserviceTBD - AD user unlock (likely has AD creds).NET Core 2.1 — requires framework upgrade before or during migration
89tis.userprofileTBD - user profile service
90tis.userabgleichTBD - user reconciliation
91tis.hybridgui.notificationsTBD - notification servicePROD deployment requires confirmation from Leopoldo
92Tis.Omds3.DeepLinkTBD - OMDS3 deep link service
95tis.omdsx2024TBD - OMDS X 2024Multiple active branches — deferred for later
120tis.ssis.schnittstellenTBD - SSIS interfacesAsk Karl if still in use
123ucl.tarifrechnerTBD - UCL tariff calculator.NET Framework 4.5

Low Priority

#RepositoryDEVFTPRODGITROTLIBNotesChallenges
124tis.coreTBD - core library
125tis.core.legacy.cca-asposeTBD - Aspose license key?
126tis.cads.api.clientTBD - API client library.NET Standard 2.1
129tis.identity.extensions.iisTBD - IIS extension.NET Framework 4.6.2
132tis.pdftransformer.clientNo secrets found
133tis.services.pdftransformer.api.clientTBD - PDF API client lib
134tis.tarifconf.api.clientTBD - tariff config client (empty)
135tis.tarifconf.api.typeTBD - type definitions only
136tis.cmnkeyvalues-parentTBD - key-value parent module
137tis.tools.clienthelperTBD - client helper tool
138tis.utils.appsettingsTBD - appsettings utility
139Tis.Utils.AspNetCore.ApplicationInsightsTBD - App Insights utility
140tis.utils.mapstructTBD - MapStruct utility
141tis.utils.windowsupdateTBD - Windows Update utility
142tiscca.bundle-loadingTBD - bundle loading
143tiscca.config-utilsTBD - config utility
144tiscca.global-utilsTBD - global utilities
145tiscca.jaxb-handlerTBD - JAXB handler
146tiscca.json-helperTBD - JSON helper
147tiscca.userdata-modulesTBD - user data modules
150tis.omds3.error-typesTBD - OMDS3 error types
151tis-cca.omds.coreTBD - OMDS core library
152tis-cca.omds.omds3clientTBD - OMDS3 client (37 MB)
153tiscca.cads-parentTBD - CADS parent module (100 MB)
154tis-cca.DataUtils.FilteringTBD - data filtering utility
155tis-cca.DataUtils.PagingTBD - data paging utility

Archived / Disabled Repositories

These repositories are archived or disabled and are out of scope for the migration.

#RepositoryNotes
30tis.identity.certificate.ScepEnrollmentServiceDisabled (archived repo)
34Tis.Partner.ApiInactive repo — last edited ~3 years ago, no pipelines
44tis.gf.bpr5Legacy/disabled, unused repo
45tis.gf.dochandlerLegacy/disabled, unused repo
47tis.gf.dpaLegacy repo — replaced by tis.gf.wgp
50tis.gf.fbaLegacy repo — replaced by tis.gf.wgp
53tis.gf.omds3engine.integrationserviceDisabled repo
61tis.gf.zahlungsaenderungLegacy app — functionality now part of tis.gf.wgp
58tis.gf.uniqa.omds3RequestForwarderLegacy repo
62tis.gf.gfweitergabeIncomplete rewrite attempt — untouched for 2 years, out of scope
63tis.gf.abgleichNo longer in use (confirmed by Michael Hingel)
65tis.vermittlerweb2Obsolete
67tis.makler.vertreiberkategorieLegacy repo — replaced by tis.services.vertreiberkategorie
72tis.bestand.ole.autoOleLegacy app — out of scope (587 MB)
76tis.bestand.vnnumcheckLegacy/unused — out of scope
81tis.dwhLegacy/disabled — out of scope
82tis.dwh.ssas.tabLegacy/disabled — out of scope
83tis.intern.datasearchLegacy/disabled — out of scope
86tis.xml2pdf.transformer.csharp.pocOld POC project — out of scope
87tis.schedulerLegacy — out of scope
96tis.omds3.smr5.adapterDisabled (archived repo)
97tis.omds3.smR5AdataperDisabled (archived repo)
107tis-ccaDisabled (archived repo)
101tiscca.kisservice.v2Disabled (.NET Framework 4.0)
114cca.omdsmergeDisabled (archived repo)
116tis.ssis.datenverarbeitungDisabled (archived repo)
117tis.ssis.etlDisabled (archived repo)
118tis.ssis.etl-internDisabled (archived repo)
119tis.ssis.reportsDisabled (archived repo)
169tis-cca.ui.angularjsDisabled (legacy AngularJS UI)

Out of Scope — Non-.NET/C# Applications

These repositories are not .NET/C# applications and are out of scope for this phase of the migration. They are listed here for tracking purposes and will be addressed in a future phase.

#RepositoryPriorityNotesChallenges
14tiscca.omds3servicesHigh2 secrets, omds3.api Secret in 4 configsJava application
38tis.hguimenu.apiMediumTBD - hybrid GUI menu APIJava application
39tis.hguimenu.webconfigMediumTBD - web.config may contain secretsJava application
46tis.gf.document-creatorMediumTBD - document creatorJava application
54tis.gf.readonlyMediumTBD - readonly GFJava application
68tis.services.cads54MediumTBD - CADS serviceJava application
93tis.omds3services.deeplinkMediumTBD - OMDS3 deep linkJava application
94tis.omds3services.donauMediumTBD - OMDS3 Donau integrationJava application
98tis.omds3.gli.evpconnect.proxyMediumTBD - GLI EVP connect proxyJava application
99tis.omds3.gli.kfz.proxyMediumTBD - GLI KFZ proxyJava application
100tiscca.omds3services-vigong-parentMediumTBD - VIG ONG parent (28 MB)Java application
102tiscca.cads.tarifconfig.apiMediumTBD - tariff config APIJava application
103tiscca.cads.webuiMediumTBD - CADS web UI (51 MB)Java application
104tiscca.cads.webui-oeamtcMediumTBD - CADS OEAMTC web UIJava application
105tiscca.cads.dataviewMediumTBD - CADS data viewJava application
106tiscca.cads.oeamtcMediumTBD - CADS OEAMTCJava application
108tis-cca.admin-dashboardMediumTBD - admin dashboardAngular application — check if still in use
109tis-cca.ui.angularMediumTBD - Angular UIAngular application
110tis-cca.Infonet.GenerateSitemapMediumTBD - sitemap generatorJavaScript tool (active repo)
111tis.wildfly.config.apiMediumTBD - Wildfly config APIJava application
148tis.wildfly.config.clientLowTBD - Wildfly config clientJava application
149tis.wildfly.config.typesLowTBD - Wildfly config typesJava application
112tiscca.maklerdaten-java.jersey.rest.clientMediumTBD - Java REST clientJava application
113cca.intern.ccaonlineAdminConsoleMediumTBD - admin consoleAngular application
127tis.client.identiyLowTBD - identity client lib (note: typo in repo name)Java application
128tis.idsrv.clientLowTBD - identity server client libJava application
130tis.identity.api.javaclientLowTBD - Java client libJava application
131tis.soagfx.restapis.clientLowTBD - REST API client libJava application

N/A (No Secrets Expected)

#RepositoryNotes
115Projekte.vig-avag-2025Documentation project, no code
121tis.betrieb.scriptsOperations scripts, no application code
122tis.betrieb.testuserTest data management, no application code
156tis.appinsights.telemetryTelemetry library, no secrets expected
157tis.autopreisspiegel.proxyEmpty repo (0 bytes)
158tis.hybridgui.menuTiny repo (3 KB), UI menu config
159tis.intern.omdsvalidatorValidator tool
160tis.polizzenkopien-parser-pocPOC
161tis.test.uploadTest upload tool
162tis.vs-templatesVisual Studio templates
163tis-cca.ckeditorCKEditor config
164tis-cca.documentationThis documentation repo
165tis-cca.publicwebsitePublic website (11 KB)
166tis-cca.styleguideCSS/SCSS styleguide
167tis-cca.testdata-managementTest data management
168tis-cca.tool.mitschrift.vscodeVS Code extension
170cca.demoDemo repo
171tis.riskine.anmeldungNo secrets found (Riskine login integration)

Progress Summary

CategoryTotalCompleted (all 6 tasks)In ProgressNot Started
Critical2002
High150114
Medium5242028
Low260125
Archived/Disabled30---
Non-.NET/C#28---
N/A18---
Total17143259

Process

Before Starting a Repo

  1. Clone/pull the repository
  2. Run tis-secrets migrate --dry-run to identify secrets
  3. Update priority and notes in this document based on findings

Migration Steps per Environment

  1. Run tis-secrets migrate -v <vault> -p <prefix> -e <env> for each environment
  2. Verify the application starts and functions correctly with AKV references
  3. Mark the environment checkbox as complete

Git History Cleanup

  1. Use git filter-repo or BFG Repo Cleaner to remove secrets from history
  2. Force-push the cleaned history
  3. Notify all developers to re-clone

Secret Rotation

  1. Generate new secrets/passwords/keys for all affected credentials
  2. Update the new values in Azure Key Vault
  3. Update any external systems (partner APIs, databases) with new credentials
  4. Verify application functionality after rotation
  5. Mark rotation checkbox as complete

Notes

  • Repos marked TBD need an initial assessment with tis-secrets migrate --dry-run
  • Priority assignments for assessed repos are based on Migration-Brainstorming.md
  • Some repos may be reclassified after assessment (e.g., Medium -> High if secrets are found)
  • Empty or archive repos may be moved to N/A after verification