Archiviazione sicura dei token di accesso per Key Vault di Azure

5

Sto utilizzando il KEY Vault di Azure per archiviare le chiavi di crittografia e gestire la crittografia e la decrittografia poiché abbiamo una specifica che richiede che le chiavi di crittografia vengano mantenute offsite , tuttavia questo mi ha lasciato il problema di cosa fare con access_token Ho ricevuto dal processo di Oauth di azure.

Il buon senso mi dice che dovrei crittografare questo token quando memorizzato nel database, ma non posso farlo perché la funzione di crittografia su azure richiede che il token esegua la crittografia e la decifratura, quindi non può essere usato per crittografare se stesso.

Sembra che tutto ciò che ho fatto sia spostare il palo, non ho più la chiave di crittografia memorizzata in un database, invece ho un token di accesso che può essere usato per decodificare i dati comunque. Devo memorizzare client_id e client_secret un_encrypted per lo stesso motivo.

Mi manca qualcosa qui?

    
posta Rob Holmes 19.12.2017 - 16:10
fonte

1 risposta

1

Non sono sicuro che il access_token che hai ricevuto dall'autenticazione di Azure abbia una durata permanente. Presumo che non lo sia. In ogni caso, devi avere client_id e client_secret per ottenere access_token , e ciò significa che devi invece concentrarti sulla protezione di client_secret o trovare le alternative.

Invece di usare client_secret per autenticare, puoi usare l'autenticazione del certificato client come spiegato in questo documentazione: autentica con un certificato invece di un segreto client .

Nell'immaginesopra,losviluppatorenonhabisognodiconoscereilvaloredellachiaveprivatadelcertificatoaffinchél'appvengaautenticatacorrettamenteinAzureActiveDirectory.Invece,devonosoloconoscerelaposizionedelpfximportatonell'archiviocertificati.

AlmenosuWindows,tucomeamministratoresegretopuoiconvertirelachiaveprivataeilcertificatoinformatopfxprotettodapasswordequindidistribuirlonell'archiviocertificatidiWindows.Inquestomodonessunopuòconoscerelachiaveprivatasenonconoscelapassworddelfilepfx.

LealtrespecifichediapproccioperAzureCompute,èutilizzare Gestito da Azure Identità servizio . Utilizzando Azure MSI, Azure assegna automaticamente le risorse come VM con un'identità / Principio del servizio e puoi attivare le richieste su un endpoint specifico accessibile solo dalla tua risorsa per ottenere access_token . Ma fai attenzione che l'MSI di Azure sia ancora in anteprima pubblica, quindi ti preghiamo di rivedere i problemi noti prima di utilizzarlo.

L'immaginesopraillustracomeAzureResourceManagerassegnaun'identitàprincipaledelservizioallatuamacchinavirtuale.

  • QuandoabilitiMSIinunamacchinavirtuale,Azurecreeràun'entitàservizioneltuoDAA.
  • AzureimplementeràquindiunanuovaestensioneMSIVMsullatuaVM.Questofornisceunendpointal link da utilizzare per ottenere il access_token per l'entità del servizio.
  • Puoi quindi utilizzare access_token per accedere a risorse come Key Vault che autorizzano l'accesso dell'entità servizio.
risposta data 19.03.2018 - 14:22
fonte

Leggi altre domande sui tag