<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Dynamics AX Server Team</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/daxserver/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/daxserver/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:20:34 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Master data management is now available in AX 2012 R2</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/master-data-management-is-now-available-in-ax-2012-r2</link>
      <pubDate>Fri, 14 Nov 2014 09:54:00 GMT</pubDate>
      <dc:creator><![CDATA[Bigyanr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2014/11/14/master-data-management-is-now-available-in-ax-2012-r2/</guid>
      <description><![CDATA[Master data management was first released in AX 2012 R3 in spring of&nbsp;2014. Now we have enabled...]]></description>
      <content:encoded><![CDATA[<p>Master data management was first released in AX 2012 R3 in spring of&nbsp;2014. Now we have enabled the feature on AX 2012 R2 as well. You can download the feature set through following hotfix. &nbsp;</p>
<p><a href="https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb;EN-US;2995611">https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb;EN-US;2995611</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Security configuration in AX 2012 MDM</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/security-configuration-in-ax-2012-mdm</link>
      <pubDate>Mon, 28 Jul 2014 12:45:00 GMT</pubDate>
      <dc:creator><![CDATA[Bigyanr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2014/07/28/security-configuration-in-ax-2012-mdm/</guid>
      <description><![CDATA[Here is the quick overview of security configuration for Microsoft Dynamics AX 2012 Master data...]]></description>
      <content:encoded><![CDATA[<p>Here is the quick overview of security configuration for Microsoft Dynamics AX 2012 Master data management (MDM) feature.</p>
<p><strong>Security Configuration</strong><br />MDM requires multiple security settings to work correctly, ensure that the following user accounts have correct privileges.</p>
<p><strong>AOS service account permission for Data Import/Export service</strong><br />The AOS service account that runs import/export must be part of Data Import/Export Framework Users local group. If you get a security exception when validating DIXF, it is mostly likely that AOS user (usually Network Service) is not part of the group. Make sure that you add AOS user to the group in Computer Management. Restart AOS.</p>
<p><br /><strong>Verify:</strong> Open Data import/export framework &gt; Setup &gt; Data import/export framework parameters, and then click Validate. <br />If the connection is configured correctly, the box will turn green.</p>
<p><br /><strong>Grant the DIXF service account permission to the SQL Server Master Data Services web service and database</strong><br /><strong><br />Master Data Services Web Application</strong><br /><br />The Data import/export service account must be configured to have function permissions in Master Data Services so that it can push and pull data and create schemas. To enable these permissions, perform the following procedure: <br />1.&nbsp;Open the Master Data Services web application.<br />2.&nbsp;Click Users and Group Permissions.<br />3.&nbsp;Add the DIXF service account user.<br />4.&nbsp;Select the DIXF service account user.<br />5.&nbsp;Click Functions.<br />6.&nbsp;Click Edit.<br />7.&nbsp;Assign the following functions:</p>
<ul>
<li>System Administration</li>
<li>Version Management</li>
<li>Integration Management</li>
<li>Explorer</li>
</ul>
<p><br /><strong>Best Practices:</strong> In a production environment with all entities configured, we recommend that you remove the functions from the service account, and instead assign specific model permissions for reading and writing data to models.</p>
<ul>
<li>Assign Update permissions for each model in environments in which you both pull and push data.</li>
<li>Assign Read-only permissions for each model in environment in which you only pull data.</li>
</ul>
<p><strong>Verify:</strong> Log in with the DIXF service account on the local machine, and open the Master Data Services web application and verify that the user has access.</p>
<p><strong>Master Data Services SQL Server database</strong><br />Assign the following database roles to the DIXF service account in the Master Data Services database:</p>
<ul>
<li>MDM_Exec</li>
<li>MDS_Exec</li>
<li>DB_DataReader</li>
<li>DB_DataWriter</li>
<li>DB_DDLAdmin</li>
</ul>
<p><strong>Verify:</strong> Connect to the Master Data Services database using SQL Server Management Studio and the DIXF service account to validate database connectivity.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Security Development Tool for Dynamics AX 2012: Issue with recording entry points</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/security-development-tool-for-dynamics-ax-2012-issue-with-recording-entry-points</link>
      <pubDate>Mon, 14 Apr 2014 11:00:00 GMT</pubDate>
      <dc:creator><![CDATA[ParthP (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2014/04/14/security-development-tool-for-dynamics-ax-2012-issue-with-recording-entry-points/</guid>
      <description><![CDATA[When the task recorder was introduced in cumulative updates for AX 2012 and AX 2012 R2, it...]]></description>
      <content:encoded><![CDATA[<p>When the task recorder was introduced in cumulative updates for AX 2012 and AX 2012 R2, it introduced a bug in the ability to record business process flows and identify the entry points used of the Security Development Tool for AX 2012. The user would press 'Start recording' in the tool, click through a few menu items and click on 'Stop Recording'. The expected behavior would be to see a list of all the menu items that were selected along the way. Instead, the user got a message "no entry points recorded."&nbsp;</p>
<p>A hotfix has been issued for this problem. Please download it from the following locations.</p>
<p>Ax 2012: <a href="https://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2957068">https://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2957068</a><br />Ax 2012 R2: <a href="https://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2957067">https://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2957067</a></p>
<p>Note that the fix is already built into AX 2012 R3 and no seperate patch will be required for that version.</p>
<p>Thank you for your patience on this issue and let us know if there are any more questions or concerns.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Master data management in Microsoft Dynamics AX 2012 R3</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/master-data-management-in-microsoft-dynamics-ax-2012-r3</link>
      <pubDate>Mon, 03 Mar 2014 12:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Bigyanr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2014/03/03/master-data-management-in-microsoft-dynamics-ax-2012-r3/</guid>
      <description><![CDATA[Master data management (MDM), in terms of enterprise data stewardship is a combination of...]]></description>
      <content:encoded><![CDATA[<p>Master data management (MDM), in terms of enterprise data stewardship is a combination of organization wide policies and tool for managing master/reference data that are shared and used by several applications, such that those shared data reflect a single source of truth. Since master data is a key asset, every enterprise leverage MDM in one way or another to link disparate systems. In terms of Microsoft Dynamics AX, following are the typical scenarios where managing master data becomes essential -</p>
<p>&bull;&nbsp;In a global deployment consisting multiple instances of AX, sharing master data like customer, vendors and products between all instances.<br />&bull;&nbsp;Sharing master/reference data across two or more legal entities. <br />&bull;&nbsp;Synchronizing product, and pricing information that originates from master instance to other shared instances. <br />&bull;&nbsp;Sharing data with systems that do not implement Microsoft Dynamics AX, like CRM, pricing engine etc&hellip;<br />&nbsp;<br />Starting with Microsoft Dynamics AX 2012 R3, we are happy to announce support for master data management feature. This builds on top of Data Import Export Framework (DIXF) that shipped in R2, and extends the concept of entities, transformation, and staging to enable configurable data synchronization capabilities. Some of the key capabilities supported with this release are<br />&nbsp;<br /><strong>Capabilities</strong><br />&bull;&nbsp;Data synchronization across multiple instances of Microsoft Dynamics AX 2012 R3, or across multiple legal entities (or partitions) within the single instance.<br />&bull;&nbsp;Five of the most requested entities ships ready for MDM &ndash; Customers, Vendors, Employees, Party, and Product.<br />&bull;&nbsp;Ability to extend existing DIXF entities or add new entities through customization<br />&bull;&nbsp;Configure selective synchronization of record set or field set by adding import or export filters<br />&bull;&nbsp;Support single/multi-master record management scenarios<br />&bull;&nbsp;Ability to centrally detect conflicts automatically and resolve manually.</p>
<p>This just a quick introduction of upcoming foundation feature in Microsoft Dynamics AX, I intend to publish further details in our blog post, so stay tuned. Also I am doing a <a title="session at Convergence 2014" href="https://www.microsoft.com/dynamics/convergence/atlanta14/Session-Catalog.aspx?session=DDAX109#fbid=6Zr4ptLdZXe">session at Convergence 2014</a>, if you are attending please do stop by.</p>]]></content:encoded>
    </item>
    <item>
      <title>Issue with ISV license after X509 certificate expires</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/issue-with-isv-license-after-x509-certificate-expires</link>
      <pubDate>Wed, 30 Oct 2013 16:28:00 GMT</pubDate>
      <dc:creator><![CDATA[Bigyanr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2013/10/30/issue-with-isv-license-after-x509-certificate-expires/</guid>
      <description><![CDATA[In Microsoft Dynamics AX 2012, ISV licensing feature was added to enable IP protection for ISV....]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: medium;">In Microsoft Dynamics AX 2012, ISV licensing feature was added </span><span style="font-size: medium;">to enable IP protection for ISV. Developers could create new model, add a license </span><span style="font-size: medium;">key and associate an X509 certificate with the model. This meant when customers </span><span style="font-size: medium;">imported the model in AX, they would require a license file signed by same X509 </span><span style="font-size: medium;">certificate to be able to unlock the feature. AX would verify validity of the </span><span style="font-size: medium;">certificate, check associated model and unlock feature as designed. However, </span><span style="font-size: medium;">when the X509 certificate expired the license immediately becomes invalid, thus </span><span style="font-size: medium;">requiring ISV to issue new license with valid certificate. This meant both new </span><span style="font-size: medium;">licenses being signed by expired certificate and license previously generated </span><span style="font-size: medium;">using currently expired certificate would not work with that particular model.</span></p>
<p><span style="font-size: medium;">This was identified as a bug and has been fixed in AX 2012 </span><span style="font-size: medium;">R2. Now each license signed by X509 certificate is generated with a timestamp. When </span><span style="font-size: medium;">customers import ISV license signed by certificate, we check validity to make </span><span style="font-size: medium;">sure certificate was <strong>valid during the time of creation </strong>only, rather than time </span><span style="font-size: medium;">of usage. This ensures license to be valid beyond time of certificate </span><span style="font-size: medium;">expiration. This code base was fixed in R2 only, for this to work both </span><span style="font-size: medium;">AXutil.exe and AOS service must be R2.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Number sequences per operating unit type</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/number-sequences-per-operating-unit-type</link>
      <pubDate>Wed, 02 Oct 2013 12:53:00 GMT</pubDate>
      <dc:creator><![CDATA[ParthP (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2013/10/02/number-sequences-per-operating-unit-type/</guid>
      <description><![CDATA[We have recently introduced the support for generating number sequences per operating unit type....]]></description>
      <content:encoded><![CDATA[<p>We have recently introduced the support for generating number sequences per operating unit type. Before this support, when you created a new number sequence for operating units, you could not differentiate it per type. For eg. if you had a number sequence setup for operating units and you created a department, it&rsquo;d get the first number in the sequence. If you now created a cost center next, you&rsquo;d get the second number in the sequence etc. This limited the ability to identify departments by one number sequence and cost centers by another.</p>
<p>Here is how the new support for number sequences per operating unit type would work.</p>
<p><br /><strong>Step 1:</strong><br />When configuring the segments, select the checkbox in the image below. If there are existing number sequences for organizations, you'll have to delete them</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/2806.1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/2806.1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/2806.1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/2806.1.png" alt="" border="0" /></a></p>
<p><strong>Step 2:</strong> <br />Create a new number sequence. Select the scope and the operating unit type. In this example, we have chosen Value Stream to be our operating unit type. Note that the operating unit type could be one of either the in-built operating unit types or any other custom operating unit type that you might have created.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/5531.2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/5531.2.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/5531.2.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/5531.2.png" alt="" border="0" /></a></p>
<p>In the above example, we reduced the alphanumeric size from 9 to 4 so that we don't exceed the total length of the number sequence string for operating units.<br />&nbsp;<br /><strong>Step 3:</strong> <br />In the same form, add a reference to the organizations and also reduce the number allocation to match the alphanumeric length</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/5430.3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/5430.3.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/5430.3.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/5430.3.png" alt="" border="0" /></a></p>
<p><strong>Step 4:</strong> <br />Create a new operating unit. In this example, you&rsquo;ll notice that a new operating unit of the type Value Stream is created. Its id, per the number sequences associated with it, is VS-001</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/3021.4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/3021.4.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/3021.4.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/3021.4.png" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/3823.5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/3823.5.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/3823.5.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/3823.5.png" alt="" border="0" /></a></p>
<p><strong>Alternate method</strong></p>
<p>A simpler way to generate default number sequences for each type of operating units would be to run the number sequence wizard. Running the Generate wizard will generate a number sequence of each operating unit type when launched with a standard template. The defaults include the following prefixes for each of the operating unit types. Department will start with &ldquo;Dept&rdquo;, Cost center with &ldquo;CC&rdquo; etc.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/0804.6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/0804.6.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/0804.6.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/0804.6.png" alt="" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/1145.7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/1145.7.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/1145.7.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/1145.7.png" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<p>All in all, this should give customers and partners the flexibility to have number sequences set up per type of operating units rather than having a non-granular bulk number sequence covering all operating unit types.</p>
<p>These were made available in the following hotfix release: <a href="https://blogs.technet.com/b/dynamicsaxse/archive/2013/06/28/announcing-cumulative-update-6-for-microsoft-dynamics-ax-2012-r2.aspx">https://blogs.technet.com/b/dynamicsaxse/archive/2013/06/28/announcing-cumulative-update-6-for-microsoft-dynamics-ax-2012-r2.aspx</a>&nbsp;</p>
<p><br />Note:&nbsp;Number sequence values are still shared across operating units even if you configure them per operating unit type. for eg. if I had one number sequence for Cost centers and another for departments and both had the same format, say ###-###, then 123-456 can only be used in one and not the other. One way to get around this would be to use prefixes for your number sequence formats, similar to the way we do when we auto-generate number sequences.</p>
<p><br />&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Best Practices, Tips and Tricks for Implementing XDS (Extensible Data Security) policies</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/best-practices-tips-and-tricks-for-implementing-xds-extensible-data-security-policies</link>
      <pubDate>Wed, 26 Jun 2013 14:03:00 GMT</pubDate>
      <dc:creator><![CDATA[ParthP (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2013/06/26/best-practices-tips-and-tricks-for-implementing-xds-extensible-data-security-policies/</guid>
      <description><![CDATA[Here are some best practices, tips and tricks to consider while creating XDS policies to meet your...]]></description>
      <content:encoded><![CDATA[<p>Here are some best practices, tips and tricks to consider while creating XDS policies to meet your data security needs:</p>
<p>&nbsp;</p>
<ul>
<li>While XDS policies are a very powerful tool to meet your data security needs at all entry paths to the Server, do not expect to be able to secure every table in the system unless you&rsquo;re willing to pay a big performance penalty. Strategically target the tables you want to protect.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Reduce the number of joins you are adding to the query when applying the XDS policies. As you add more joins, the performance will degrade.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>One trick to reduce the number of joins is to use &lsquo;MyConstructs&rsquo; in the policy query. They are temporary tables of type TempDB and are populated using a table method called XDS(). &nbsp;This method is available for developers to write X++ logic to populate the temporary table. After the temporary table is populated, subsequent policy queries will use the temporary table.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>In MyConstructs, you have the ability to refresh the data either PerSession or PerInvocation. Unless required otherwise, choose the per session caching for optimal performance</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Test the XDS policies for performance on a large volume of data before putting it to production use.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>XDS policies offer three levels of control. You can apply based on a particular security role, apply it to more than one security roles or on the basis of an application context that is secured by code or on metadata in the case of queries. You can use these knobs to fine tune and control when the XDS policy is applied</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Besides the three levels mentioned above, another knob is the operation. The XDS policy can be applied for a given operation. For eg. you might choose to filter when a select operation is done on a table, but perhaps not when the update is done. This is configurable in the XDS policy metadata. The choices of operation(s) for which the policy can be applied are Select, Insert, Update, Delete , (Insert, Update and Delete) or All operations</li>
</ul>
<p>&nbsp;</p>
<p>Detailed instructions on development and debugging of XDS can be found in a whitepaper that can be found her: <a href="https://www.microsoft.com/en-us/download/details.aspx?id=3110">https://www.microsoft.com/en-us/download/details.aspx?id=3110</a></p>
<p>&nbsp;</p>
<p>XDS is a powerful mechanism that allows the ability to express and implement complex data security needs. Hopefully, some of these best practices and suggestions will help in your implementation of XDS policies. As always, feedback is welcome.</p>]]></content:encoded>
    </item>
    <item>
      <title>Security Upgrade Advisor Tool for Dynamics AX 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/security-upgrade-advisor-tool-for-dynamics-ax-2012</link>
      <pubDate>Wed, 29 May 2013 10:38:00 GMT</pubDate>
      <dc:creator><![CDATA[ParthP (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2013/05/29/security-upgrade-advisor-tool-for-dynamics-ax-2012/</guid>
      <description><![CDATA[The security framework has undergone significant changes between AX 2009 and AX 2012. There is no...]]></description>
      <content:encoded><![CDATA[<p>The security framework has undergone significant changes between AX 2009 and AX 2012. There is no automatic path for upgrade of security configuration from AX 2009 to AX 2012. In order to assist the upgrade of security settings, we have written a tool called the Security Upgrade Advisor.</p>
<p><strong>Security in AX 2009</strong></p>
<p>Security in AX 2009 for a user starts with his or her membership in a user group. By adding a user to a group, you grant that user all the permissions assigned to that group. Domains enable you to restrict permissions to user groups to a single company, or to set up user groups that have permissions to data across companies.&nbsp;</p>
<p>Furthermore, access of users to system elements (such as forms, menu items, and tables) is controlled using security keys. These settings are set by managing user group and domain combinations. Lastly, the security keys themselves can have child security keys. Ultimately, they control access to a securable object, set with an access level.</p>
<p><strong>Security in AX 2012</strong></p>
<p>Security in AX 2012 for a user starts with his or her being assigned one or more security roles. Security roles themselves contain duties, privileges and permissions. The permission is a combination of a securable object and an access level. Privileges contain a combination of an entry point and an access level. At runtime, the appropriate permission is picked up and given to the user.</p>
<p><strong>Approach to security upgrade</strong></p>
<p>Access to data within the system for an AX user flows through an entry point like a menu item. The algorithm essentially looks for entry points in the legacy system, looks at it access level and find privileges that map to the entry point and access level. The steps can be iteratively described with the following picture</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/5265.SecurityUpgradeSteps.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/5265.SecurityUpgradeSteps.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/5265.SecurityUpgradeSteps.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/5265.SecurityUpgradeSteps.png" alt="" border="0" /></a><br />&nbsp;<br />&nbsp;<br />&nbsp;Here is a rule of thumb to follow: &ldquo;If you find direct mapping between user group and &ldquo;out of box&rdquo; role that&rsquo;s always better because the roles have been functionally tested&rdquo;. If you cannot use out of the box security roles that AX 2012 ships with, you can map user groups to custom security roles that should have equivalent security settings compared to legacy systems.</p>
<p>The match process essentially works on the principle that for a given entry point in AX 2009, it will try to find a privilege in AX 2012 that contains the same entry point. The second level of matching is done for the access level. Based on whether the access level is exactly the same or varies slightly, the administrator running this tool would be asked to review a match or create new privilege. The following table explains all the cases with illustrative examples.</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/3122.UpgradeAdvisorMatchProcess.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/3122.UpgradeAdvisorMatchProcess.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/3122.UpgradeAdvisorMatchProcess.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/3122.UpgradeAdvisorMatchProcess.png" alt="" border="0" /></a></p>
<p>The Security Upgrade Advisor Tool is available from the <a href="https://go.microsoft.com/fwlink/?LinkId=228147">InformationSource services download page</a>. Documentation for the tool can be found at this link: <a href="https://technet.microsoft.com/en-us/library/hh394895.aspx">https://technet.microsoft.com/en-us/library/hh394895.aspx</a></p>
<p>Note that this tool should work on both AX 4.0 and AX 2009 and also with AX 2012 and AX 2012 R2. Do try this tool out and give us your feedback.</p>]]></content:encoded>
    </item>
    <item>
      <title>Importing ISV License file when internet connection is not available</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/importing-isv-license-file-when-internet-connection-is-not-available</link>
      <pubDate>Tue, 14 May 2013 14:04:00 GMT</pubDate>
      <dc:creator><![CDATA[Bigyanr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2013/05/14/importing-isv-license-file-when-internet-connection-is-not-available/</guid>
      <description><![CDATA[Microsoft Dynamics AX 2012 allows ISVs to create encrypted license files using x509 certificates to...]]></description>
      <content:encoded><![CDATA[<p>Microsoft Dynamics AX 2012 allows ISVs to create encrypted license files using x509 certificates to protect their intellectual property. When customers deploy ISV modules to their environment they are required to import the license file to enable the module. During the license import process, the certificate that is used to sign the file is checked against the root certification authority to verify its validity. In certain cases, however, the root authority may not be available in the system and thus requires an internet connection to check the validity through CA (Certificate Authority). If enabling internet connection is not desired then, in such cases following two approaches could be used to validate the certificate without requiring internet connection.</p>
<p><strong>1.&nbsp;Downloading and installing root certificates from the CA.</strong><br />Each CA like VeriSign, GoDaddy, GeoTrust, etc&hellip; allows you to download their root certificate from their website. Simply go to your CA and download the root and install it in Certificates (MMC) -&gt; Local Computer -&gt; Trusted Root Certification Authorities folder. (See instruction below)</p>
<p><strong>2.&nbsp;Installing ISV certificate with public key only (.cer extension) into trusted root.</strong><br />Another approach is to take the ISV certificate with public key from the ISV, the same one that is used to sign the license file and install it in the Certificates (MMC) -&gt; Local Computer -&gt; Trusted Root Certification Authorities folder</p>
<p><strong>Installing Certificates</strong><br />1.&nbsp;Launch MMC.exe<br />2.&nbsp;Go to - File &gt; Add/Remove Snap in<br />3.&nbsp;Certificates &gt; Add<br />4.&nbsp;Select &ldquo;Computer Account&rdquo; from the form<br />5.&nbsp;Click Next &amp; Finish<br />6.&nbsp;Click Local Computer &gt; Trusted Root Certification Authorities &gt; Certificates &gt; Import<br />7.&nbsp;Follow the wizard to import the certificate.</p>]]></content:encoded>
    </item>
    <item>
      <title>Enabling field level authorization in Dynamics AX 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/daxserver/enabling-field-level-authorization-in-dynamics-ax-2012</link>
      <pubDate>Mon, 13 May 2013 15:10:00 GMT</pubDate>
      <dc:creator><![CDATA[ParthP (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daxserver/2013/05/13/enabling-field-level-authorization-in-dynamics-ax-2012/</guid>
      <description><![CDATA[Many of you might be familiar with the Table Permissions Framework (TPF) that is present in AX 2009...]]></description>
      <content:encoded><![CDATA[<p>Many of you might be familiar with the Table Permissions Framework (TPF) that is present in AX 2009 as well as AX 2012. Some documentation about the table permissions framework can be found <a href="https://msdn.microsoft.com/en-us/subscriptions/hh965683.aspx">https://msdn.microsoft.com/en-us/subscriptions/hh965683.aspx</a>. In AX 2009, the Table Permissions Framework is applicable only at the table level. However, in AX 2012, it can be extended to the field level as well. This blog post explains how you could achieve this.</p>
<p>&nbsp;1. In the AOT, for a given table, set the <strong>AOSAuthorization </strong>property to <strong>CreateReadUpdateDelete</strong> (as shown below)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/4744.AOT1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/4744.AOT1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/4744.AOT1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/4744.AOT1.png" alt="" border="0" /></a>&nbsp;<br />&nbsp;&nbsp;</p>
<p>Note that there are other possible values for this property, but this is the only value for which field level TPF is activated.</p>
<p>&nbsp;2. Save the changes to the table</p>
<p>&nbsp;3. Create a new field or open an existing field. You&rsquo;ll notice that the <strong>AOSAuthorization</strong> property becomes available and its value can now be set.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/4682.AOT2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/4682.AOT2.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/59/15/4682.AOT2.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-15/4682.AOT2.png" alt="" border="0" /></a></p>
<p>&nbsp;A user accesses data from a table through the various privileges that he has. In a given table, certain fields may be marked such that the user does not have access to them. If such a table is TPF (with CreateReadUpdateDelete) and the AOSAuthorization property for a field is set to Yes, then the data from the fields is trimmed if the user does not have access<br />to that field.&nbsp;To be specific, if the field is set to Yes and user does not have access to that field then&nbsp;</p>
<p>a) data will be trimmed when sending table buffer to client<br />b) any query that tries to filter data based on that field will be rejected</p>
<p>If the field is set to No, then no special processing is done for the field and no trimming is done on the field.</p>]]></content:encoded>
    </item>
  </channel>
</rss>