{"id":77,"date":"2018-06-15T08:44:47","date_gmt":"2018-06-15T15:44:47","guid":{"rendered":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/sharing-a-canvas-app-built-on-top-of-common-data-service\/"},"modified":"2025-06-11T08:08:13","modified_gmt":"2025-06-11T15:08:13","slug":"sharing-a-canvas-app-built-on-top-of-common-data-service","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/sharing-a-canvas-app-built-on-top-of-common-data-service\/","title":{"rendered":"Sharing a canvas app built on top of Common Data Service"},"content":{"rendered":"<p>\u00a0<\/p>\n<p>Common Data Service for Apps has a powerful enterprise grade security model that allows you to group users in security roles and give those roles varying levels of access to entities that some of our most sophisticated business apps are built on. Depending on a user\u2019s role within an organization, you can limit or expand their access to certain pieces of information for security and data integration purposes. That\u2019s what makes apps built on top of Common Data Service so powerful. However, due to the sophistication of the security model, it can get complex when it comes to figuring out how to configure security access to your app.\u00a0 After building a canvas app using Common Data Service as the backend, many people have asked \u2018how do I share this app with other users in my organization and make sure not only they have access to my app but also the Common Data Service as well\u2019? This blog post outlines the steps that help you share access to the data in the Common Data Service that your canvas app uses.<\/p>\n<p>\u00a0<\/p>\n<p>Let\u2019s assume I build a canvas app called <b>Event Onboarding<\/b> that uses two entities <b>Contact<\/b> and <b>Event<\/b> in the Common Data Service. To share this app with other users, I need to (1) grant users access to the canvas app and (2) share the access to the two entities <strong>Contact<\/strong> and <strong>Event <\/strong>via security roles.<\/p>\n<p>\u00a0<\/p>\n<p>The first part is not covered in this blog post. However, <a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/share-app\" target=\"_blank\" rel=\"noopener\">this article<\/a> does an excellent job of laying out the step by step instructions that you can follow.<\/p>\n<p>\u00a0<\/p>\n<p>The second part, sharing access to the data in the Common Data Service, is a trickier piece and not as straightforward today. When your users run your <b>Event Onboarding<\/b> app, they need permission to access the <b>Contact<\/b> and <b>Event<\/b> entities the app uses. To grant them access, you will need to:<\/p>\n<p>1. Create a security role<\/p>\n<p>2. Assign users to the security role<\/p>\n<h3>\u00a0<\/h3>\n<h3>Create a security role<\/h3>\n<p>If you have previously created a security role that grants permissions to the entities <b>Contact<\/b> and <b>Event<\/b> that your app uses, then you can use that role and skip this step. Otherwise, follow the steps below to create a new security role.<\/p>\n<p>Step 1: From <a href=\"https:\/\/www.powerapps.com\/\" target=\"_blank\" rel=\"noopener\">PowerApps<\/a>, click on the setting gear and select <b>Admin Center<\/b>.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"Portal-AdminCenter\" border=\"0\" height=\"277\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"Portal-AdminCenter\" width=\"614\"\/><\/a><\/p>\n<p>Step 2: In PowerApps admin center, select the environment where you want to create the new security role.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c98859a6-21d3-4e9a-b825-84231bd0995b.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"AdminCenter-SelectEnv\" border=\"0\" height=\"175\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c98859a6-21d3-4e9a-b825-84231bd0995b.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"AdminCenter-SelectEnv\" width=\"614\"\/><\/a><\/p>\n<p>Step 3: Select the <b>Details<\/b> tab and select the link <b>Dynamics 365 Administration Center<\/b> to manage the environment. Note, this step can takes a little long depends on the number of instances in your tenant.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b8d89beb-a1d2-4afe-b3b7-a52db733c20e.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"AdminCenter-Details\" border=\"0\" height=\"200\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b8d89beb-a1d2-4afe-b3b7-a52db733c20e.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"AdminCenter-Details\" width=\"614\"\/><\/a><\/p>\n<p>Step 4: In the new tab for <b>Dynamics 365 Administration Center<\/b>, select the instance (the instance name is the same as the environment name) and click on <b>Open<\/b><\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/60076c4e-cb93-4d7d-931c-7a59f507e9da.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"D365-SelectInstance\" border=\"0\" height=\"499\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/60076c4e-cb93-4d7d-931c-7a59f507e9da.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"D365-SelectInstance\" width=\"614\"\/><\/a><\/p>\n<p>Step 5: In the header, click on the <b>Settings<\/b> and select <b>Security<\/b><\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/1113d00e-710a-4b35-bdb0-2eb3b5c4607b.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"D365SettingsSecurity\" border=\"0\" height=\"280\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/1113d00e-710a-4b35-bdb0-2eb3b5c4607b.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"D365SettingsSecurity\" width=\"614\"\/><\/a><\/p>\n<p>Step 6: Select <b>Security roles<\/b><\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/fb5a3020-24b8-4980-ad17-9a14ee71d67b.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"D365SecurityRoles\" border=\"0\" height=\"409\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/fb5a3020-24b8-4980-ad17-9a14ee71d67b.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"D365SecurityRoles\" width=\"614\"\/><\/a><\/p>\n<p>Step 7: Click on <b>New<\/b>, this will open the security role designer<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dda0d4c6-5bf7-42ff-9f54-1a3d54c50c70.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"D365NewRole\" border=\"0\" height=\"267\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dda0d4c6-5bf7-42ff-9f54-1a3d54c50c70.png\" style=\"border: 0px currentColor; border-image: none; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"D365NewRole\" width=\"614\"\/><\/a><\/p>\n<p>Step 8: Enter a name for your security role<\/p>\n<p>Step 9: Locate the entities your app uses <b>Contact<\/b> and <b>Event<\/b> by clicking on each tab in the security role designer. If your entities are custom, they will be under <b>Custom Entities<\/b> tab.<\/p>\n<p>Step 10: Once you locate your entities, select the privileges you\u2019d like to grant your users such as Read, Write, Delete etc. and the scope for performing that action. Scope determines how deep or high within the environments hierarchy the user can perform a particular action.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c0ba26b2-c88d-4bd7-946d-1cf030b5ef3c.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"SecurityRolesContact\" border=\"0\" height=\"516\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c0ba26b2-c88d-4bd7-946d-1cf030b5ef3c.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"SecurityRolesContact\" width=\"614\"\/><\/a><\/p>\n<p>Step 11: Click <b>Save and Close<\/b>.<\/p>\n<p>Great, you now have a new security role that define access to the entities your app uses. Next you will assign users to this role. If you\u2019d like to learn more about security roles for Common Data Service or understand privileges and scope, you can visit <a href=\"https:\/\/docs.microsoft.com\/en-us\/dynamics365\/customer-engagement\/admin\/security-roles-privileges#security-roles\" target=\"_blank\" rel=\"noopener\">this article<\/a>.<\/p>\n<p>\u00a0<\/p>\n<h3>Assign users to a security role<\/h3>\n<p>To assign a user to a security role, you need to be an <strong>Environment Admin<\/strong> and follow these steps:<\/p>\n<p>Step 1: From <a href=\"https:\/\/www.powerapps.com\/\" target=\"_blank\" rel=\"noopener\">PowerApps<\/a>, select on the settings gear and select Admin Center.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/2351dcc2-e482-4b5f-bd81-f89f957ff439.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"Portal-AdminCenter\" border=\"0\" height=\"277\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/2351dcc2-e482-4b5f-bd81-f89f957ff439.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"Portal-AdminCenter\" width=\"614\"\/><\/a><\/p>\n<p>Step 2: In PowerApps admin center, select the environment where you want to update a security role.<\/p>\n<p>Step 3: Select <b>Security<\/b> tab<\/p>\n<p>Step 4: First, you need to check if the user(s) already exists in the environment by selecting <b>view the list of users in the environment<\/b>. If the user is <u><strong>not<\/strong><\/u> in the list, go to step 5. Otherwise, you can skip to step 6.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/965824f3-f1ee-42c0-89d3-eee282b7830a.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"AdminCenter-ListUsers\" border=\"0\" height=\"316\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/965824f3-f1ee-42c0-89d3-eee282b7830a.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"AdminCenter-ListUsers\" width=\"614\"\/><\/a><\/p>\n<p>Step 5: In case user doesn\u2019t exist, you can add the user by entering the email address of the user in your organization, and select the <strong>Add user <\/strong>button.<\/p>\n<p>Step 6: After you know the user(s) you want to assign a security role exists in your environment, select the <b>Details<\/b> tab and select the link <b>Dynamics 365 Administration Center<\/b> to manage the environment.<\/p>\n<p><a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/41c6fbb1-4bd4-4b81-917e-a9e83bcc396b.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"AdminCenter-Details\" border=\"0\" height=\"200\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/41c6fbb1-4bd4-4b81-917e-a9e83bcc396b.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"AdminCenter-Details\" width=\"614\"\/><\/a><\/p>\n<p>Step 7: In the new tab for <b>Dynamics 365 Administration Center<\/b>, select the instance (the instance name is the same as the environment name) and click on <b>Open<\/b><\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/71d6222a-4989-4206-bfef-83d6d853959d.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"D365-SelectInstance\" border=\"0\" height=\"499\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/71d6222a-4989-4206-bfef-83d6d853959d.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"D365-SelectInstance\" width=\"614\"\/><\/a><\/p>\n<p>Step 8: In the header, click on the <b>Settings<\/b> and select <b>Security<\/b><\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bc51c62d-9d02-4325-b26d-4889c2c4a5b4.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"D365SettingsSecurity\" border=\"0\" height=\"280\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bc51c62d-9d02-4325-b26d-4889c2c4a5b4.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"D365SettingsSecurity\" width=\"614\"\/><\/a><\/p>\n<p>Step 9: Select <b>Users<\/b><\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b7b9f361-52c8-47b3-9e6f-5e01a8f10118.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"D365Users\" border=\"0\" height=\"314\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b7b9f361-52c8-47b3-9e6f-5e01a8f10118.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"D365Users\" width=\"614\"\/><\/a><\/p>\n<p>Step 10: Locate the user(s) you want to share with using the search box<\/p>\n<p>Step 11: Select the user(s) and select <b>Manage roles<\/b><\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/4fd6f0ef-6410-4c64-b440-81157353caa5.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"SelectUser-ManageRoles\" border=\"0\" height=\"184\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/4fd6f0ef-6410-4c64-b440-81157353caa5.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"SelectUser-ManageRoles\" width=\"614\"\/><\/a><\/p>\n<p>Step 12: Select the role(s) you created in the previous section\u00a0<strong>and make sure to also select *Common Data Service User* role<\/strong> (if it wasn\u2019t already) <b>Manager User Roles<\/b> dialog. Common Data Service User role must be assigned to any user who wants to use your app or access the Common Data Service.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/ac9317f0-4989-456d-9302-ed243bfc2c27.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"AssignRole\" border=\"0\" height=\"285\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/ac9317f0-4989-456d-9302-ed243bfc2c27.png\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"AssignRole\" width=\"614\"\/><\/a><\/p>\n<p>Step 13: Select <b>OK<\/b> to assign the role(s) to the user you selected.<\/p>\n<p>\u00a0<\/p>\n<p>Congratulations, you have now shared your canvas app with other users and grant them access to the entities <b>Contact<\/b> and <b>Event<\/b> that your canvas app uses. Let me know if you have any further question by dropping comments below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Common Data Service for Apps has a powerful enterprise grade security model that allows you to group users in security roles and give those roles varying levels of access to entities that some\u2026<\/p>\n","protected":false},"author":92,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","ms-ems-related-posts":[],"footnotes":""},"audience":[3378],"content-type":[3423],"job-role":[],"product":[3473],"property":[],"topic":[3421],"coauthors":[2085],"class_list":["post-77","post","type-post","status-publish","format-standard","hentry","audience-it-professional","content-type-tips-and-guides","product-power-apps","topic-application-modernization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sharing a canvas app built on top of Common Data Service - Microsoft Power Platform Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sharing a canvas app built on top of Common Data Service - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"&nbsp; Common Data Service for Apps has a powerful enterprise grade security model that allows you to group users in security roles and give those roles varying levels of access to entities that some\u2026\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/sharing-a-canvas-app-built-on-top-of-common-data-service\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-15T15:44:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T15:08:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png\" \/>\n<meta name=\"author\" content=\"Linh Tran\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Linh Tran\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/\"},\"author\":[{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/author\\\/linh-tran\\\/\",\"@type\":\"Person\",\"@name\":\"Linh Tran\"}],\"headline\":\"Sharing a canvas app built on top of Common Data Service\",\"datePublished\":\"2018-06-15T15:44:47+00:00\",\"dateModified\":\"2025-06-11T15:08:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/\"},\"wordCount\":966,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pwrappscdn.azureedge.net\\\/mediahandler\\\/blog\\\/media\\\/PowerApps\\\/blog\\\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png\",\"keywords\":[\"Dataverse\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/\",\"name\":\"Sharing a canvas app built on top of Common Data Service - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pwrappscdn.azureedge.net\\\/mediahandler\\\/blog\\\/media\\\/PowerApps\\\/blog\\\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png\",\"datePublished\":\"2018-06-15T15:44:47+00:00\",\"dateModified\":\"2025-06-11T15:08:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#primaryimage\",\"url\":\"https:\\\/\\\/pwrappscdn.azureedge.net\\\/mediahandler\\\/blog\\\/media\\\/PowerApps\\\/blog\\\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png\",\"contentUrl\":\"https:\\\/\\\/pwrappscdn.azureedge.net\\\/mediahandler\\\/blog\\\/media\\\/PowerApps\\\/blog\\\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/06\\\/15\\\/sharing-a-canvas-app-built-on-top-of-common-data-service\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sharing a canvas app built on top of Common Data Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Microsoft-Logo-e1685482038800.png\",\"width\":194,\"height\":145,\"caption\":\"Microsoft Power Platform Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#\\\/schema\\\/person\\\/fb2590c5fbc84b7a88a4883f2116118b\",\"name\":\"Linh Tran\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc97755658da5d411a90b7caa2207044c9c2982d01d02152ff2783545bf58032?s=96&d=mm&r=gb8ebd3686fe2b2fa51b4ccf280e60b64\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc97755658da5d411a90b7caa2207044c9c2982d01d02152ff2783545bf58032?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc97755658da5d411a90b7caa2207044c9c2982d01d02152ff2783545bf58032?s=96&d=mm&r=g\",\"caption\":\"Linh Tran\"},\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/author\\\/litran\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sharing a canvas app built on top of Common Data Service - Microsoft Power Platform Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/","og_locale":"en_US","og_type":"article","og_title":"Sharing a canvas app built on top of Common Data Service - Microsoft Power Platform Blog","og_description":"&nbsp; Common Data Service for Apps has a powerful enterprise grade security model that allows you to group users in security roles and give those roles varying levels of access to entities that some\u2026","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/sharing-a-canvas-app-built-on-top-of-common-data-service\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2018-06-15T15:44:47+00:00","article_modified_time":"2025-06-11T15:08:13+00:00","og_image":[{"url":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png","type":"","width":"","height":""}],"author":"Linh Tran","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Linh Tran","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/linh-tran\/","@type":"Person","@name":"Linh Tran"}],"headline":"Sharing a canvas app built on top of Common Data Service","datePublished":"2018-06-15T15:44:47+00:00","dateModified":"2025-06-11T15:08:13+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/"},"wordCount":966,"commentCount":0,"publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#primaryimage"},"thumbnailUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png","keywords":["Dataverse"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/","name":"Sharing a canvas app built on top of Common Data Service - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#primaryimage"},"thumbnailUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png","datePublished":"2018-06-15T15:44:47+00:00","dateModified":"2025-06-11T15:08:13+00:00","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#primaryimage","url":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png","contentUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/82d370ce-6c3c-4f14-9745-06bc87ff3a42.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/06\/15\/sharing-a-canvas-app-built-on-top-of-common-data-service\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Sharing a canvas app built on top of Common Data Service"}]},{"@type":"WebSite","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","width":194,"height":145,"caption":"Microsoft Power Platform Blog"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/fb2590c5fbc84b7a88a4883f2116118b","name":"Linh Tran","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fc97755658da5d411a90b7caa2207044c9c2982d01d02152ff2783545bf58032?s=96&d=mm&r=gb8ebd3686fe2b2fa51b4ccf280e60b64","url":"https:\/\/secure.gravatar.com\/avatar\/fc97755658da5d411a90b7caa2207044c9c2982d01d02152ff2783545bf58032?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fc97755658da5d411a90b7caa2207044c9c2982d01d02152ff2783545bf58032?s=96&d=mm&r=g","caption":"Linh Tran"},"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/litran\/"}]}},"bloginabox_animated_featured_image":null,"bloginabox_display_generated_audio":false,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/92"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":1,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions"}],"predecessor-version":[{"id":131062,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions\/131062"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=77"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=77"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=77"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=77"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=77"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=77"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}