What permissions needed to launch a COM+ object

D

Dave Kolb

If I make ASPNET a member of the admins group it can launch my COM+ object
but I do not want to do that.

What permissions do I need to set for the lowly ASPNET user so that it can
launch a COM+ object. I tried playing with COM+ roles in the MMC but not
with any luck. My COM+ object itself does not do any role checking.

Thanks,
Dave
 
K

Ken Cox [Microsoft MVP]

Here are some steps posted elsewhere by Microsoft to get ASP.NET going
safely:

"Basically, this is not recommended because it will make your system
vulnerable. By running the process as the System account this basically
means that if anyone were able to get control of this process they would
have all of the priviledges that SYSTEM would have on the server and as you
know it has many.
My suggestion would be to Create a weak account that has the correct
permissions, and then
configure the <processModel> section of the Machine.config file to use
that account.
Here are some simple steps you can follow to grant NTFS permissions.
Keep in mind that if you are running the 1.0 framework you will need to
replace v1.1.4322 with v1.0.3705
1. Create the domain user and grant it "Log on as a Service", "Log on as a
Batch Job", "Deny Logon Locally", “Access this Computer from the Network”
2. Add domain user to the local Users Group
3. Grant domain user read access to C:\Winnt\microsoft.net
4. Grant domain user Full Control to C:\WINNT\TEMP
5. Grant domain user Full Control to
C:\winnt\Microsoft.Net\framework\v1.1.4322\Temporary Asp.Net files
6. Grant domain user Read access
toC:\WINNT\Microsoft.Net\Framework\v1.1.4322
7. Ensure domain user has Read access
toC:\Winnt\Microsoft.Net\Framework\v1.1.4322\config
8. Ensure domain user has Read access to C:\Winnt\Assembly
Note: You should use the following command to add permissions to this
folder because it is a special folder and does not have a security tab
cacls c:\winnt\assembly /e /t /p domain\useraccount:R

9. Modify the
c:\winnt\microsoft.net\framework\v1.1.4322\config\machine.config under
<processModel> change these lines to read
Username="domain\user"
Password="password"
10. Restart IIS for the machine.config changes to take effect
You can use the following command to enforce the policy changes without a
reboot:
SECEDIT /REFRESHPOLICY MACHINE_POLICY /ENFORCE"
 
D

Dave Kolb

Thanks for the suggestions Ken.

I found that I could merely give ASPNET read access to the COM+ dll I
registered and then assign a role to the COM+ component allowing only a
particular local impersonated user to have access and I have a reasonably
secure COM object that I can run as a separate identity to do the network
access I require while keeping the rest of ASPNET as a lowly user rather
than running it as SYSTEM as my cohorts were doing in order to get network
access. You have to impersonate the local user in order to access the COM+
object.

I will also review your suggestions.

Thanks,
Dave
 
D

Dave Kolb

Oops - that was not clear. Though I could have ASPNET run the COM+ object, I
actually imperonsate a local user and give that user only access to the COM+
object. THat way only certain web apps can run the object. Dave
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top