웹 API를 사용하여 다른 사용자를 가장
게시 날짜: 2017년 1월
적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
다른 사용자를 대신하여 코드가 작업을 수행해야 할 때가 있습니다. 코드를 실행하는 시스템 계정에 필요한 권한이 있는 경우 다른 사용자를 대신하여 작업을 수행할 수 있습니다.
이 항목의 내용
가장에 대한 요구 사항
사용자를 가장하는 방법
실제 사용자를 결정합니다.
가장에 대한 요구 사항
가장은 가장된 사용자의 적절한 역할 및 개체 기반 보안을 사용하여 원하는 기능 또는 서비스를 제공하기 위해 다른 Microsoft Dynamics 365 사용자 대신 비즈니스 논리(코드)를 실행하는 데 사용됩니다. 예를 들어 워크플로 또는 ISV 솔루션에서 Dynamics 365 사용자 대신 다양한 클라이언트 및 서비스에서 Microsoft Dynamics 365 웹 서비스가 호출될 수 있으므로 반드시 필요합니다. 가장은 서로 다른 두 개의 사용자 계정을 포함합니다. 한 사용자 계정(A)은 다른 사용자(B)를 대신하여 작업을 수행하기 위해 코드를 실행하는 데 사용됩니다.
사용자 계정(A)에는 prvActOnBehalfOfAnotherUser 권한이 필요하고 이 권한은 대리인 보안 역할에 포함되어 있습니다. 데이터를 수정하는 데 사용되는 실제 권한 집합은 대리인 역할 사용자가 소유하는 권한과 가장되는 사용자가 소유하는 권한의 교차점입니다. 즉 사용자 (A)와 가장된 사용자(B) 가 작업에 필요한 권한이 있어야만 사용자 (A)가 작업을 수행할 수 있습니다.
사용자를 가장하는 방법
사용자를 가장하려면 웹 서비스에 요청을 보내기 전에 가장한 사용자의 systemuserid와 동일한 GUID 값을 가진 MSCRMCallerID라는 요청 헤더를 추가합니다. 이 예제에서 새로운 계정 엔터티가 systemuserid 00000000-0000-0000-000000000002인 사용자를 대신하여 만들어집니다.
요청
POST cc_WebAPI_ServiceURI/accounts HTTP/1.1 MSCRMCallerID: 00000000-0000-0000-000000000002 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 {"name":"Sample Account created using impersonation"}
응답
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000003)
실제 사용자를 결정합니다.
엔터티 만들기 같은 작업을 가장을 사용하여 수행하면 실제로 작업을 수행한 사용자는 createdonbehalfby 단일 값 탐색 속성을 포함하여 레코드를 쿼리하여 찾을 수 있습니다. 해당 modifiedonbehalfby 단일 값 탐색 속성은 엔터티를 업데이트하는 작업에 사용할 수 있습니다.
요청
GET cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000003)?$select=name&$expand=createdby($select=fullname),createdonbehalfby($select=fullname),owninguser($select=fullname) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
응답
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal ETag: W/"506868" { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts(name,createdby,createdonbehalfby,owninguser,createdby(fullname),createdonbehalfby(fullname),owninguser(fullname))/$entity", "@odata.etag": "W/\"506868\"", "name": "Sample Account created using impersonation", "accountid": "00000000-0000-0000-000000000003", "createdby": { "@odata.etag": "W/\"506834\"", "fullname": "Impersonated User", "systemuserid": "00000000-0000-0000-000000000002", "ownerid": "00000000-0000-0000-000000000002" }, "createdonbehalfby": { "@odata.etag": "W/\"320678\"", "fullname": "Actual User", "systemuserid": "00000000-0000-0000-000000000001", "ownerid": "00000000-0000-0000-000000000001" }, "owninguser": { "@odata.etag": "W/\"506834\"", "fullname": "Impersonated User", "systemuserid": "00000000-0000-0000-000000000002", "ownerid": "00000000-0000-0000-000000000002" } }
참고 항목
웹 API를 사용하여 작업 수행
HTTP 요청 및 처리 오류 작성
웹 API를 사용하여 데이터 쿼리
웹 API를 사용하여 엔터티 만들기
웹 API를 사용하여 엔터티 검색
웹 API를 사용하여 엔터티 업데이트 및 삭제
웹 API를 사용하여 엔터티 연결 및 연결 해제
웹 API 기능 사용
웹 API 작업 사용
웹 API를 사용하여 일괄 작업 실행
웹 API를 사용하여 조건부 작업을 수행
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 저작권 정보