2013-06-14 2 views
2

우리는 MS CRM 2011의 온 프레미스 배포를 가지고 있으며 일부 양식은 특정 필드를 미리 채울 수있는 사용자 지정 javascript를 실행합니다. 데이터는 CRM과 동일한 실제 서버에서 실행되는 개발 한 WCF RESTful 웹 서비스에서 가져온 것입니다. 이 서비스는 도메인 간 스크립팅 문제를 피하기 위해 CRM 웹 사이트의 응용 프로그램으로 IIS에서 호스팅됩니다. Javascript는 (jQuery를 사용하여) ajax 요청을 만들고, JSON 형식의 응답을 받고, 필드를 채 웁니다.외부 WCF 서비스에 양식 javascript 요청을 인증하는

지금까지 모든 것이 잘 작동했지만 보안 및 인증에 대해 생각하기 시작했습니다. 특히, 일부 데이터는 민감 할 수 있으므로 웹 서비스에서 유효한 CRM 사용자에게만 회신하도록합니다. 개별 인증이 필요하지 않으며, 모든 CRM 사용자는이 웹 서비스에 대한 동일한 액세스 수준을 가지므로 일종의 단일 서비스 계정이 작동합니다.

지금까지 요청을 수행하기 전에 (이미 도메인 인증 된) 사용자가 CRM에 있는지 확인하기 위해 CRM을 쿼리하는 사용자 지정 웹 서비스를 사용하여 Windows 인증을 고려했습니다. 나는 보안에 대한 경험이 거의 없으므로 일반적인 팁도 환영 할 만하다.

답변

0

에고 르, 나는 올바른 방향으로 가고 있다고 생각합니다. 사용자 지정 Windows 인증이나 다른 간단한 방법으로 현재 사용자의 사용자 ID (guid)를 사용자 지정 응용 프로그램에 보내고 웹 서비스 쿼리 CRM이 올바른 액세스 권한을 얻도록 할 수 있습니다.

모든 사용자의 액세스 수준이 같다고 언급 했으므로 사용자의 액세스 수준을 웹 서비스에 보내어 무엇을 반환할지 결정할 수 있습니다.

+0

하지만 비 CRM 사용자가 다른 사람의 액세스 수준이나 GUID를 보내어 내 서비스에 요청을 스푸핑하는 것은 상당히 간단하지 않습니까? 사용자가 도메인 이름을 제출하도록 요청했기 때문에 IWA가 작동 할 것입니다. AD 인증을 위해 서비스에 전달하고 서비스에서 CRM을 확인하기 위해 동일한 자격 증명을 사용합니다. 그렇지 않으면 사용자가 자신이 주장하는 사람인지 어떻게 확신 할 수 있습니까? – Egor

+0

글쎄, 사용자가 CRM 액세스 레벨을 보내 줄 것을 믿을 수 없습니다. 그것이 사실임을 어떻게 알 수 있습니까? CRM 사용자이기도 한 소수의 도메인 사용자 만 있으므로 도메인 인증만으로는 액세스를 확인할 수 없습니다. 모든 도메인 사용자는 CRM에 액세스 할 수 있다고 주장 할 수 있습니다. 이것을 안전하게하는 방법이 있다면 그것은 분명 좋을 것입니다. 누군가가 데이터를 요청할 때마다 추가 CRM 호출을 피하고 싶습니다. – Egor