On Tue, 06 Oct 2020 00:54:59 -0500, enoquick wrote:
>
> i Primi da google con 'oracle os authentication'
Innanzitutto grazie, ma mi accorgo di non essere stato molto chiaro.
Il mio vero problema e' come far accedere N utenti Windows con la loro
passwd ad un singolo utente Oracle.
Purtroppo mi e' cascato addosso la manutenzione di un progetto vecchio
di almeno 10 anni in via di sostituzione, ma che deve sopravvivere
ancora un anno o due perche' il megaprogetto che deve sostituirlo e'
in ritardo mostruoso.
Il vecchio software, per quanto riguarda la gestione dei dati, e'
organizzato alla seguente maniera.
Ogni progetto ha un suo OracleUser in cui vengono memorizzati i dati
(ed attualmente ce ne sono un centinaio tra vecchi, nuovi e
nonisacosadiavolosono)
Esiste un chiamiamolo "Progetto padre" a cui tutti accedono al momento
dell'avvio del programma il cui OracleUser e passwd sono hardcodati nel
codice.
Una volta acceduti al "progetto padre" viene fatta una query sulla vista
ALL_USERS per tirar fuori in nomi di tutti gli OracleUser ed il risultato
viene filtrato in base al contenuto di una tabella presente nel "progetto
padre" in cui e' associato il nome dell'utente Windows al nome degli
OracleUser a cui ha diritto di accedere.
Questo elenco viene restituito all'utente che sta accedendo, il quale
sceglie il progetto e ci accede con la pwd dell'OracleUser che viene
generata al volo dal programma sulla base di un hash del nome
dell'OracleUser.
La sicurezza software interna ha detto che questo meccanismo non va bene
(non che ci volesse molto a capirlo), e se vogliamo mantenere la
certificazioe ISO, bisogna cambiarlo. Il mo compito e' quello di trovare
un meccanismo di autenticazione meno becero, modificando il programma
originario il meno possibile.
Quello che volevo fare era far accedere, mediante autenticazione di
Windows, tutti gli utenti Windows che hanno diritto ad accedere al
"Progetto A" eliminando "progetto padre" e relativa tabella delle
autorizzazioni.
Ovvero vorrei fara accedere con la propria password di Windows N utenti
windows ad un unico OracleUser.
Tutti i documenti che ho trovato fanno vedere come far accedere UN
utente Windows ad UN utente Oracle.
Quello che mi era venuto in mente era di creare N OracleUser, chiamiamoli
IntermediateUsers, uno per utente windows a cui si accede mediante
autenticazione Windows. Dare a questi IntermediateUsers i grant necessari
per accedere ai progetti a cui gli utenti Windows hanno diritto.
Questa soluzione mi sembra un po' complicata e, soprattutto, aggraverebbe
il carico di lavoro dei nostri DBA.
L'alternativa e' lasciare tutto come ora, tirar fuori dal programma 3/4
del codice e fare un servizio remoto che gestisca autenticazioni ed
accessi. Questo non è praticabile ne' come tempi ne' come costi.
Spero di essere stato piu' chiaro.
Saluti.