Tweakers,
Ik zit met een probleem.
Situatie:
Ik heb een applicatie in ASP.NET. In de web.config staat nu een ConnectionString waarin de user/pass zichtbaar zijn. Verder worden de gebruikers ingelogd via de ActiveDirectory.
Verder gebruik ik de 'LOGON_USER' (Request.ServerVariables["LOGON_USER"]) in de databse om te kijken wie ingelogd is en welke rechten deze gebruiker heeft. (De rechten komen uit een eigen database waarin de AD-userid is opgeslagen)
Dit werkt allemaal perfect en mensen die geen toegang hebben, hebben ook echt geen toegang.
Wat is nu het probleem, tja de connectionstring. Mijn leidinggevende wil het liefst het volgende.
- Gebruikers blijven op de huidige manier inloggen
- Geen user/pass in de web.config als plain tekst
- 1 domain user welke toegang heeft tot de MSSQL. Deze gebruiker moet dan gekoppeld worden aan de applicatie dat IIS deze user gebruikt om connectie te krijgen met de database.
Mijn leidinggevende weet dat het kan alleen niet weet niet hoe (ik dus ook niet).
Nu ben ik op internet gaan zoeken en al verschillende sites gevonden, echter geen die precies richten op de aanwezige wensen.
zo heb ik deze bekeken alleen wordt hier gebruik gemaakt van basic authentication en moet elke user toegang hebben tot de DB ipv 1.
ook heb ik deze bekeken, echter hier gaan ze er vanuit dat de MSSQL en IIS op dezelfde server staan. Echter dit is niet het geval. IIS en MSSQL staan beide op andere fysieke servers.
Wat heb ik al geprobeerd
De heb momenteel de volgende settings:
in de web.config staat het volgende:
(namen zijn fictief)
Naar mijn weten moet er ook nog iets ingesteld worden in de application pool namelijk het volgende:
- Identity niet gekozen voor 'predefined' maar 'Configurable'. Hier staat de DomainUser welke ook rechten heeft op de database.
Dan nog de settings van de applicatie (welke on Default website hangt):
in het authentication scherm heb ik:
- Anonymous access UIT staan
- Integrated windows authentication AAN staan
- Digest authentication AAN staan
- Domain ingevuld bij Realm.
Het probleem is nu echter dat als ik de applicatie draai dat ik een inlogprompt krijg. Ik kan heir elke domain user invullen die ik wil alleen de prompt blijft terug komen.
Mijn interpretatie
- Impersonatie moet op True omdat IIS en MSSQL op aparte servers staan
- De authenticate settings van de applicatie staan zo goed omdat ik geen anonymous logins wil en de users moeten inloggen via hun ADuserid.
- De connectionstring goed is omdat ik aangeef dat ik gebruik wil maken van Integrated Security en dat het een trusted connection is.
Ik hoop dat mn (lange) verhaal duidelijk is en dat jullie kunnen helpen.
Ik zit met een probleem.
Situatie:
Ik heb een applicatie in ASP.NET. In de web.config staat nu een ConnectionString waarin de user/pass zichtbaar zijn. Verder worden de gebruikers ingelogd via de ActiveDirectory.
Verder gebruik ik de 'LOGON_USER' (Request.ServerVariables["LOGON_USER"]) in de databse om te kijken wie ingelogd is en welke rechten deze gebruiker heeft. (De rechten komen uit een eigen database waarin de AD-userid is opgeslagen)
Dit werkt allemaal perfect en mensen die geen toegang hebben, hebben ook echt geen toegang.
Wat is nu het probleem, tja de connectionstring. Mijn leidinggevende wil het liefst het volgende.
- Gebruikers blijven op de huidige manier inloggen
- Geen user/pass in de web.config als plain tekst
- 1 domain user welke toegang heeft tot de MSSQL. Deze gebruiker moet dan gekoppeld worden aan de applicatie dat IIS deze user gebruikt om connectie te krijgen met de database.
Mijn leidinggevende weet dat het kan alleen niet weet niet hoe (ik dus ook niet).
Nu ben ik op internet gaan zoeken en al verschillende sites gevonden, echter geen die precies richten op de aanwezige wensen.
zo heb ik deze bekeken alleen wordt hier gebruik gemaakt van basic authentication en moet elke user toegang hebben tot de DB ipv 1.
ook heb ik deze bekeken, echter hier gaan ze er vanuit dat de MSSQL en IIS op dezelfde server staan. Echter dit is niet het geval. IIS en MSSQL staan beide op andere fysieke servers.
Wat heb ik al geprobeerd
De heb momenteel de volgende settings:
in de web.config staat het volgende:
code:
1
2
3
4
| <add name="Connection" connectionString="Data Source=DBSVR;Initial Catalog=DBNAME;Integrated Security=True;Trusted_Connection=yes;"/> <authentication mode="Windows" /> <identity impersonate="true"/> |
(namen zijn fictief)
Naar mijn weten moet er ook nog iets ingesteld worden in de application pool namelijk het volgende:
- Identity niet gekozen voor 'predefined' maar 'Configurable'. Hier staat de DomainUser welke ook rechten heeft op de database.
Dan nog de settings van de applicatie (welke on Default website hangt):
in het authentication scherm heb ik:
- Anonymous access UIT staan
- Integrated windows authentication AAN staan
- Digest authentication AAN staan
- Domain ingevuld bij Realm.
Het probleem is nu echter dat als ik de applicatie draai dat ik een inlogprompt krijg. Ik kan heir elke domain user invullen die ik wil alleen de prompt blijft terug komen.
Mijn interpretatie
- Impersonatie moet op True omdat IIS en MSSQL op aparte servers staan
- De authenticate settings van de applicatie staan zo goed omdat ik geen anonymous logins wil en de users moeten inloggen via hun ADuserid.
- De connectionstring goed is omdat ik aangeef dat ik gebruik wil maken van Integrated Security en dat het een trusted connection is.
Ik hoop dat mn (lange) verhaal duidelijk is en dat jullie kunnen helpen.