웹 서비스에서 클라이언트로 가장하는 것이 장단점은 무엇입니까? 감사의 장점 중 하나는 응용 프로그램에서 웹 서비스로 ID 개체를 전달하는 것보다 가장을 사용하여 감사를 더 잘 수행 할 수 있다는 것입니다.클라이언트가 웹 서비스에서 가장?
답변
가장의 목적은 서비스의 액세스를 제한없는 리소스로 확장하는 것입니다. 이는 요청자의 권리를 고려하여 수행합니다. 가장은 서비스가 특정 자원에 대한 액세스가 허용되어야하는지 여부를 판별해야 할 때 요청자의 보안 컨텍스트를 가정 할 수있게합니다.
가장을 구현하는 가장 간단한 방법은 서비스의 메서드에 선언적으로 적용하는 것입니다. OperationBehavior 특성에는 가장이라는 속성이 포함되어 있습니다. 이 등록 정보는 필수 또는 허용으로 설정할 수 있습니다.
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
public bool Update()
{
return true;
}
가장 특성을 허용으로 설정하면 클라이언트 자격 증명이 서비스로 전달 될 수 있습니다. 가장이 필수로 설정된 경우 서비스는 클라이언트의 자격 증명을 가정해야합니다.
모든 메소드가 가장을 필요로하는 경우가 있습니다. 예를 들어, 파일이 액세스되는 경우에만 가장 (impersonation)이 필요할 수 있습니다. 이를 위해 WindowsImpersonationContext 클래스를 사용하여 imersonatively impersonation을 구현할 수 있습니다.
시작하려면 현재 요청과 연결된 Windows ID를 검색해야합니다. 이것은 ServiceSecurityContext.Current 객체를 통해 사용할 수 있습니다. WindowsIdentity 속성이 null이 아닌 경우 (가장을 위해 Windows ID가 필요함을 기억하십시오), ID에 대해 가장 메서드를 호출 할 수 있습니다. 다음 코드는이 기술을 보여줍니다.
WindowsIdentity callerIdentity =
ServiceSecurityContext.Current.WindowsIdentity;
if (callerIdentity == null)
throw new InvalidOperationException(
"The caller cannot be mapped to a WindowsIdentity");
using (WindowsImpersonationContext context = callerIdentity.Impersonate())
{
// Access a file as the caller.
}
두 가지 가장 기법은 방법별로 작동합니다. 또한 서비스의 모든 메소드에 가장 (impersonation)을 사용 가능하게 할 수 있습니다. ServiceAuthorization 동작의 ImpersonateCallerForAllOperations 속성을 true로 설정하면됩니다. 다음 코드 샘플과 같이이 작업을 수행 할 수 있습니다.
ServiceHost serviceHost = new ServiceHost(typeof(TestService));
ServiceAuthorizationBehavior behavior =
serviceHost.Description.Behaviors.Find<ServiceAuthorizationBehavior>();
behavior.ImpersonateCallerForAllOperations = true;
- 1. 축 2 클라이언트가 축 2 웹 서비스에서 예외를받지 못했습니다.
- 2. ruby 클라이언트가 rabbitmq에서 가장 안정적입니까?
- 3. 웹 서비스에서 FacesContext에 액세스
- 4. Axis2 웹 서비스에서 HTTPS 비활성화
- 5. Java Swing 클라이언트가 웹 서비스를 사용하는 가장 쉬운 방법은 무엇입니까?
- 6. 웹 서비스에서 Windows 서비스 호출
- 7. 웹 서비스에서 클라이언트 연결 끊기 감지
- 8. 웹 서비스에서 XML 데이터 반환
- 9. ASP.NET 웹 서비스에서 DTO 수신
- 10. 웹 서비스에서 파일 읽기
- 11. 웹 서비스에서 이미지 저장
- 12. 웹 서비스에서 XML로드
- 13. 웹 서비스에서 정보 반환
- 14. 이 URL은 웹 서비스에서
- 15. 웹 서비스에서 액세스가 거부되었습니다.
- 16. .NET 웹 서비스에서 행 반환
- 17. 웹 서비스에서 반환 된 객체에 직접 바인딩하는 가장 좋은 방법
- 18. Windows 서비스에서 웹 사이트에 액세스하는 가장 좋은 방법은 무엇입니까?
- 19. 웹 서비스에서 Entity Framework를 사용하는 가장 좋은 방법
- 20. 웹 서비스에서 라이브 데이터를 찾는 가장 좋은 방법
- 21. REST 웹 서비스에서 SQL Server 2005를 업데이트하는 가장 간단한 방법
- 22. WCF 웹 서비스에서 HttpContext.Current에 액세스하십시오.
- 23. ASP.NET 웹 서비스에서 엔터티 전달
- 24. Exchange 웹 서비스에서 ExchangeImpersonationType을 사용해보십시오
- 25. 웹 서비스에서 Generics를 사용할 수 있습니까?
- 26. ASMX 웹 서비스에서 사용자 정의 예외 캐치
- 27. 웹 서비스에서 발생하는 예외를 어디서/어떻게 현지화합니까?
- 28. 웹 서비스에서 내부적으로 웹 서비스 사용
- 29. 동일한 웹 서비스에서 웹 메소드 호출하기
- 30. 웹 서비스에서 jar 서명을 무시합니까?
장점/단점 ?? – WhoIsNinja
단점 : 가장이 발생하려면 요청에 WindowsIdentity가 있어야합니다. Windows Identity가 없으면 서비스의 권한을 확장 할 수 없습니다. 그게 내가 불리한 점을 생각할 수있는 전부 야! 나는 대답에서 말한 것이 대부분의 이점을 다룰 것이라고 생각한다. –