RE: Beginner's Questions



Hi JT. Yes this is quite a change. We are going under a similar process and
I think your question is of interest.

We validated this solution with Microsoft and this architecture is very
secure. We do use Windows form on the presentation layer which is on
terminal server and call web services on the business logic side. IIS in the
entry point for our SOA architecture and we are using only Windows integrated
autentication in order to autenticate who is gaining access to the server
side.

This way, the credential of the client side are transported to the server
side and the thread still knows the identity of the autenticated user. So
the information is still availlable for you to connect to your database.

Knowing that and knowing you want to use connection pooling, there are ways
to still do what you want.

On our side, we are using an Oracle Database. So we decided to use "Proxy"
authentication on the DB Side. Which means that we are going to have only
one real user interfacing the database but the identity of the authenticated
user will be passed as a parameter. Then the database user will work "on
behalf" of the real user. Thus all transactions will be stamped with the
identity of the real authenticated user.

I know this information is very roughly said but there are many books about
SOA architecture that can give you good information regarding identity
passing and how you can achieve that. Also, there may be an equivalent way
of using "proxy" authentication on SQL Server.

If your architecture reside on the same domain and you are not going on the
internet, to my point of view there is no need to go for SSL. But if so, I
will strongly recommend it. The infromation between the two tier will by
passed using XML which to my point of view is still a good way to bind to
data controls on the presentation layer.

Hope this help.

"JT" wrote:

> Hi all,
> I have written an app with a Windows Forms UI that is deployed to clients
> across the internet via Terminal Services. It uses SQL Server as a data
> store, and ADO.NET for CRUD. The data access layer is currently completely
> ensnarled within the code for the Windows Forms app, and calls stored
> procedures on the data source using Windows Integrated Authentication. The
> user's identity is used by several triggers to identify who last updated data.
>
> I am considering moving to a distributed architecture that would involve a
> web services data access layer on a web server, and a deployed Windows Forms
> Presentation layer client on user machines accross the internet. I know this
> is quite a radical change, but hardware and bandwidth costs will eventually
> make it very justifiable.
>
> My questions....
>
> 1. What is the single best book I can buy in this regard?
>
> 2. Currently, users sign-on to my domain when they access my app via
> Terminal Services. This allows me to use suser_sname in my AfterUpdate
> triggers. It also allows me to establish very specific permissions for these
> users based on AD GPO's and SQL server roles. Furthermore, the user's
> Window's username is the primary key in a Client Access Table and is required
> to return, via sproc, the name of the database he/she is allowed to connect
> to, completing an SQL connection string that initially reads "Initial
> Catalog=". How could I achieve this in a distributed app environment? I
> believe a standard approach is to have the client authenticate at the DALC,
> and then have the DALC run as a single domain user account in order to take
> advantage of connection pooling. Obviously, this blows my afterupdate
> triggers and initial user-to-database redirection strategy.
>
> 3. I am considering sticking with Windows Forms as my app uses a fair
> amount of drag-drop and graphical image manipulation (also reasons to get
> away from Terminal services). Are these valid reasons for avoiding a web
> forms app for the presentation layer?
>
> 4. There is obviously no real data going over the internet with the
> Terminal Services configuration. The data involves protected healthcare
> info, and WILL go over the internet if I adopt the distributed structure.
> Would SSL be the recommended means of securing the data? If so, would this
> offer any alternative authentication strategies?
>
> I know these are BIG questions, and I don't expect to see any books written
> in reply. But any pointers to good references, walkthroughs, etc, would be
> great. (Already read MS Distributed App Architecture Guide and Microsoft
> Guide for Designing Data Tier Components and Passing Data Through Tiers).
> --
> Thanks.
> John
.



Relevant Pages

  • Re: Need help configuring Wireless Connection profile
    ... and I can only use the intel OR windows utility, not both at the same time. ... Windows authentication for all users,4129,LRG\ryanv,4149,Wireless WPA2 ... SMALL BUSINESS SERVER: ... STEP #1 Install Certificate Services ...
    (microsoft.public.windowsxp.general)
  • Re: EAP-TLS with windows CE
    ... The AP was sending out an Identity Request every second, ... request to the identification server. ... When the server asks the Windows CE device to identify itself, ... I could easily steal your authentication information. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: server authentication & ASP authentication
    ... on to the client workstation with an authorized Windows account. ... SQL Server with Windows authentication. ...
    (microsoft.public.sqlserver.security)
  • Re: ADFS Development Issues
    ... site to be automatically authenticated by our windows application so ... based on redirects and possibly uses forms-based authentication to collect ... web service proxies don't handle this type of thing ... the server based on how it needs to work. ...
    (microsoft.public.windows.server.active_directory)
  • Authentication Sharing Across Apps
    ... For my part "B" question that I had (Login App was not returning ... authentication to calling app), I found the solution. ... Basically, in both the Login App and Calling App Web.Config, I did ... authenticated connection with SQL server. ...
    (microsoft.public.dotnet.framework.aspnet.security)