Microsoft MVP성태의 닷넷 이야기
Question - HTTP 401.3 on DELETE, PUT verbs [링크 복사], [링크+제목 복사],
조회: 21361
글쓴 사람
Daniel Seo (jungsoo.seo at sap.com)
홈페이지
첨부 파일
[Sample.zip]    

Hi,

I am writing this thread to ask your help.

I am encountering a problem while we are using  PUT / DELETE verbs for RESTful webservice.

 

As you see the below table,

In case I call a web service with administrator right, all verbs are operated successfully.

In case I call a web service with non-admin right, the method which is using PUT / DELETE verbs returns  401.3 error while GET/POST verbs are operated successfully.

 

I found some related articles and tested them, but I did not get reasonable results yet.

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataservices/thread/3a67a302-6f7d-4453-8ce9-3d540ee8a9fa

 

As temporary workaround to enable the service, I granted access right of a user(mydomain\user) to .svc file manually.

(However, I don’t think it could be a solution because of security violation. )

 

I would very appreciate it if you would give me any opinions.

For your convenience, I am attaching a simple .NET project.

I hope I am missing a simple point. J

Thank you.

 

 

Verb

Admin user

Non-admin user

GET

O

O

POST

O

O

PUT

O

X

DELETE

O

X

 

·         System: Windows 2003 + IIS6 + .NET3.5 SP1

·         Setting in Web.Config
<authentication mode="Windows"/>
<
identity impersonate="true"></identity>

 

 

:::: Event Message (1)::::

Access is denied.

Description: An error occurred while accessing the resources required to serve this request. You might not have permission to view the requested resources.

Error message 401.3: You do not have permission to view this directory or page using the credentials you supplied (access denied due to Access Control Lists). Ask the Web server's administrator to give you access to 'C:\BPC\service1.svc'.

 

:::: Event Message (2)::::

Event Type:             Information

Event Source:          ASP.NET 2.0.50727.0

Event Category:       Web Event

Event ID: 1314

Date:                        2/17/2010

Time:                       11:14:27 AM

User:                       N/A

Computer:               ICND50076690A

Description:

Event code: 4008

Event message: File authorization failed for the request.

Event time: 2/17/2010 11:14:27 AM

Event time (UTC): 2/17/2010 2:14:27 AM

Event ID: 7ccb60ad5fd341aaba44f16bdd7f3bfd

Event sequence: 3

Event occurrence: 1

Event detail code: 0

 

Application information:

    Application domain: /LM/W3SVC/1/Root/Bpc-1-129108464673098914

    Trust level: Full

    Application Virtual Path: /Bpc

    Application Path: C:\BPC\

    Machine name: ICND50076690A

 

Process information:

    Process ID: 11392

    Process name: w3wp.exe

    Account name: NT AUTHORITY\NETWORK SERVICE

 

Request information:

    Request URL: http://10.60.50.200/bpc/service1.svc/PUT

    Request path: /bpc/service1.svc/PUT

    User host address: 10.60.50.200

    User: ICND50076690A\User

    Is authenticated: True

    Authentication Type: NTLM

    Thread account name: NT AUTHORITY\NETWORK SERVICE

 

Custom event details:

 

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

 








[최초 등록일: ]
[최종 수정일: 6/30/2025]


비밀번호

댓글 작성자
 



2010-02-18 02시29분
[꼭지] 안녕하세요. 이전에 인증관련으로 질문드렸던, 꼭지(서정수) 입니다.
영어로 써놓은 글이 있어 개인 편의상 그대로 옮겨왔습니다. 혹.... 영어로 고민 하시지 않으시길..^^
[guest]
2010-02-24 09시45분
이미 해결하셨는지 모르겠는데. 퇴근 후 테스트 해보고 ^^ 말씀드리겠습니다.
kevin25
2010-02-24 11시28분
일단, 미리 답변드리면.
impersonate 상태에서 일반 User 계정으로 삭제가 안 된다는 것은, 보안상 적절한 조치라고 보입니다.
아마도 적절한 ACL 설정으로 가능하지 않을까 싶은데... 암튼 자세한 것은 집에서. ^^;
kevin25
2010-02-25 12시07분
[kevin25] 위의 글에서, 보안상 피하고 싶다고는 했지만 테스트 해본 바로는 어쩔 수 없이 svc 파일에 ACL 권한을 주는 수밖에는 별다른 방법을 찾지 못했습니다.

대신에, HttpContext.Current를 안 써도 되는 경우라면 "AspNetCompatibilityRequirements" 설정을 제거할 수가 있는데, 그런 상태에서는 svc 보안을 주지 않아도 정상적으로 admin/non-admin 계정으로 호출이 되었습니다.
kevin25
2010-03-29 03시10분
[꼭지] 이런 내용이 MSDN에 있네요.
"When this property("aspNetCompatibilityEnabled") is set to true, requests to Windows Communication Foundation (WCF) services flow through the ASP.NET HTTP pipeline and communication over non-HTTP protocols is prohibited.

https://learn.microsoft.com/en-us/dotnet/api/system.servicemodel.configuration.servicehostingenvironmentsection.aspnetcompatibilityenabled
[guest]
2010-05-03 05시49분
[꼭지(서정수)] 정확한 정보가 될 것 같네요.

FileAuthorizationModule Class
https://learn.microsoft.com/en-us/dotnet/api/system.web.security.fileauthorizationmodule

Remarks
This module provides authorization services against file-system access-control lists (ACLs). When the mode attribute of the authentication Element (ASP.NET Settings Schema) configuration element is set to Windows so that the WindowsAuthenticationModule is being used for the application, the FileAuthorizationModule module ensures that the requesting user is allowed read or write access to the resource, depending on the request verb, before executing the request. For more information, see the CheckFileAccessForUser method.



FileAuthorizationModule.CheckFileAccessForUser Method
https://learn.microsoft.com/en-us/dotnet/api/system.web.security.fileauthorizationmodule.checkfileaccessforuser

Remarks
The CheckFileAccessForUser method checks to see whether the current user, represented by a Windows access token, is granted access to the requested file in the file-system access-control lists (ACLs). The virtual path is mapped to the physical file-system path before the check is made.
If the HTTP verb used to make the request is GET, POST, or HEAD, the CheckFileAccessForUser method checks for read access to the file. If any other verb is used, the CheckFileAccessForUser method checks for read/write permission to the file.
Security Note If the FileAuthorizationModule module is not defined in the httpModules configuration section for the application, the FileAuthorizationModule module always returns true.
[guest]

... 76  77  78  79  80  81  82  83  84  85  86  87  88  89  [90]  ...
NoWriterDateCnt.TitleFile(s)
198이지훈6/2/2005102992003이랑 2005랑 함께 사용하는 방법이 없을까요?
201정성태6/6/200511003    답변글 [답변]: 2003이랑 2005랑 함께 사용하는 방법이 없을까요?
197이지훈6/2/2005110322005 에서 컴포넌트 제작
200정성태6/6/200510557    답변글 [답변]: 2005 에서 컴포넌트 제작
196김종욱5/24/200511687익스플러 툴 벤드 제작... for .NET [1]파일 다운로드1
199정성태6/6/200511181    답변글 [답변]: 익스플러 툴 벤드 제작... for .NET
202김종욱6/9/200511785        답변글 [답변]: [답변]: 익스플러 툴 벤드 제작... for .NET [1]
194홍지철5/18/200510886IE에서 Winform control embedded작성시 문제점
195정성태5/19/200511508    답변글 [답변]: IE에서 Winform control embedded작성시 문제점
192헤헤5/13/200511110이것좀봐주세요
193정성태5/13/200510132    답변글 [답변]: 이것좀봐주세요
186기범5/9/200510787안녕하세요2
187정성태5/9/200511267    답변글 [답변]: 안녕하세요2
184기범5/9/200510706안녕하세요
185정성태5/9/200511102    답변글 [답변]: 안녕하세요
1815/8/200510699// 꼭쫌 답변해 주세요~~~클라이언트 서버 ... 내용, 이점 들...
183정성태5/9/200510276    답변글 [답변]: // 꼭쫌 답변해 주세요~~~클라이언트 서버 ... 내용, 이점 들...
180최성우5/7/200510865[Q] POST 형식의 데이터 훅킹?
182정성태5/9/200511451    답변글 [답변]: [Q] POST 형식의 데이터 훅킹?
190최성우5/10/200510492        답변글 [답변]: [답변]: [Q] POST 형식의 데이터 훅킹?
177최정희5/4/200510970네트워크 케이블의 연결상태
178정성태5/4/200511066    답변글 [답변]: 네트워크 케이블의 연결상태 [1]
188최정희5/10/200510582        답변글 [답변]: [답변]: 네트워크 케이블의 연결상태
189정성태5/10/200510730            답변글 [답변]: [답변]: [답변]: 네트워크 케이블의 연결상태 [2]
191최정희5/11/200510444                답변글 [답변]: [답변]: [답변]: [답변]: 네트워크 케이블의 연결상태 [1]
175안연준5/3/200510802IE 제어에 대한 궁금 증 ㅡ,.ㅡ;;
... 76  77  78  79  80  81  82  83  84  85  86  87  88  89  [90]  ...