Than you Vilmos,
when trying to access the vendor portal with another user that has the guest role and the external portal role am getting different error as per the below, I already configured vendor portal just like TechNet steps:
Message: An unhandled error has occurred. To view details about this error, enable debugging in the web.config file or view the Windows event logs.
Source: Microsoft.Dynamics.Framework.Metadata.AX
Exception details:
Unable to cast object of type 'Microsoft.Dynamics.AX.Framework.Services.Client.WebMenuItemReferenceNode`1[Microsoft.Dynamics.AX.Framework.Services.Client.WebModuleMetadata]' to type 'Microsoft.Dynamics.AX.Framework.Services.Client.WebModuleMetadata'.
at Microsoft.Dynamics.AX.Framework.Services.Client.WebModuleMetadata.Visible(ISession session)
at Microsoft.Dynamics.AX.Framework.Services.Client.WebModuleMetadata.Visible(ISession session)
at Microsoft.Dynamics.AX.Framework.Services.Client.WebModuleMetadata.IsVisible(ISession session)
at Microsoft.Dynamics.Framework.Portal.UI.WebControls.WebMenuGeneratorBase`2.GenerateMenu(ISession session, ICollection`1 childNodes)
at Microsoft.Dynamics.Framework.Portal.UI.WebControls.WebMenuGeneratorBase`2.Generate(WebMenuGeneratorSetting setting)
at Microsoft.Dynamics.Framework.Portal.Navigation.TopNavProvider.GetChildNodes(SiteMapNode node)
at System.Web.SiteMapNode.get_HasChildNodes()
at System.Web.UI.WebControls.Menu.DataBindRecursive(MenuItem node, IHierarchicalEnumerable enumerable)
at System.Web.UI.WebControls.Menu.DataBindItem(MenuItem item)
at System.Web.UI.WebControls.Menu.PerformDataBinding()
at System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect()
at System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
at System.Web.UI.WebControls.Menu.EnsureDataBound()
at Microsoft.SharePoint.WebControls.AspMenu.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)