关于基于声明的身份认证

关于声明认证 CRM 4.0 使用集成的Windows认证方式去验证内部用户,使用表单认证方式去验证没有使用VPN的互联网用户。CRM 2011 使用基于声明的认证方式取代表单认证方式,基于声明的认证方式是一种提供简化用户登录和单点登录去访问CRM数据的一种解决方案。  基于声明的认证方式是构建在Windows用户身份识别WIF(Windows Identity Foundation)基础上,WIF是一种用于搭建支持声明认证方式和安全token服务的框架。安全token服务是基于标准的,具有互操作性的。而互操作性又是通过工业标准的协议实现的,例如WS联合服务(WS-Federation),WS信任服务(WS-Trust)以及安全断言语言(Security Assertion Markup Language 1.1)。本文是以活动目录联合服务2.0(Active Directory Federation Services 2.0)作为身份验证提供者。 在基于声明的认证方式中,身份验证提供者或者安全token服务商负责验证请求,并颁布SAML安全token,这些安全token包含了用于识别这些用户的声明,比如用户名,用户所处的组。信任方应用程序收到这些SAML的token,并使用其中所包含的声明去决定是否提供这些客户端所请求的资源。基于声明的认证方式可以用于认证本公司本组织内的用户,外部用户,来自合作伙伴的用户。 一.预备知识 在配置CRM 2011基于声明的的认证方式之前,你必须很了解一下的一些概念 ·         CRM 2011 的安装流程; ·         基于声明的认证方式中的基于Token认证; ·         AD FS 2.0的安装和配置 ·         公用密钥的管理和数字证书 参考书目 ·         Windows Server 2008 R2 Active Directory Federation Services 2.0 (http://go.microsoft.com/fwlink/?LinkId=200771) ·         AD FS 2.0 Step-by-Step and How To Guides (http://go.microsoft.com/fwlink/?LinkId=180357)…

1

为Microsoft Dynamics CRM 2011配置Claims-Based认证

Microsoft Dynamics CRM 4.0 使用Windows集成认证(Integrated Windows authentication)来对内部用户进行认证,使用窗体身份认证(Forms authentication)来对不使用VPN的外部用户提供internet访问。Microsoft Dynamics CRM 2011 将窗体身份认证替换为了基于声明的认证(Claim-based authentication),它能够提供简化的的用户访问和单点登录(single sign-on)来访问Microsoft Dynamics CRM的数据。本文将介绍如何为CRM  2011配置Claim-based认证以及IFD。   关于ADFS和Claim,可参考下述资料: A Guide to Claims–based Identity and Access Control (http://go.microsoft.com/fwlink/?LinkID=188049) Using Active Directory Federation Services 2.0 in Identity Solutions (http://go.microsoft.com/fwlink/?LinkID=209776) Windows Server 2008 R2 Active Directory Federation Services 2.0 (http://go.microsoft.com/fwlink/?LinkId=200771) AD FS 2.0 Step-by-Step and How To…


Dialog中的变量和输入参数

在以前的博客Dialog Part 1和Dialog Part 2中,我们讲述了Microsoft Dynamics CRM 2011中的新功能Dialog。Dialog支持变量(Variables)和输入参数(Input Arguments)。在这篇博客中,我将介绍他们是什么,如何使用它们。Dialog编辑器中有一个区域可以定义变量和输入参数,如下图所示:    图1:变量和输入参数区域   什么是变量?  变量被用来在Dialog运行时提供临时数据存储。你可以在图1中的变量区域点击Add来创建一个新的变量。每个变量都有名称、类型和值。当创建一个变量时,你按照下图来填入相应值。在这里,我们创建了一个变量叫做CustomerName, 类型是单行文本,默认值为John Doe。默认值是这个变量最初的值。       图2:创建新变量   什么是输入参数? 输入参数和子Dialog(Child Dialog)一起使用。当你希望从一个Dialog转向控制另一个Dialog,这时就可以使用子Dialog。之前运行的Dialog叫做父Dialog(Parent Dialog),得到控制的Dialog叫做子Dialog。考虑这样一种情况,你希望创建多个Dialog,他们的最后几步都是相同的。这时,最好为这些相同步骤创建一个单独的子Dialog。这样,如果你要修改这些相同的步骤,就不必去修改多个Dialog。你只需要修改这个子Dialog而不需要修改父Dialog。在父子Dialog之间传递控制时,可能需要传递数据,这就是通过输入参数来实现的。在创建Dialog时,你可以在Available to run区域中来指定这是一个子Dialog,如图1所示:  ·         勾选As a child process ·         去掉As an on-demand process 这样,你就可以创建输入参数来指定希望从父Dialog得到什么数据。可以点击图1中Input Arguments section的区域的Add链接来创建输入参数。跟变量一样,输入参数也有名称、类型和值。配置输入参数属性的用户界面和创建变量的界面很相似。对于输入参数来说,当父Dialog没有指定任何值时,子Dialog就会使用默认值。   在创建父Dialog时,你需要将它连接到子Dialog。你可以在编辑器中点击Link Child Dialog步骤来实现。你可以查找到子Dialog进行链接,如图3所示:    图3:链接到子Dialog   当然,你可以点击Set Properties按钮来设置链接的属性(图3所示)。在设置属性UI中,你可以为每个输入参数设置一个值。你也可以使用动态值,例如一个变量或者dialog运行在的CRM记录的一个属性。唯一需要注意的是,两种数据类型必须相同(或者能够转换)。图4是链接属性的一个截图。在这里输入参数Name(显示为String_Name)是从当前account所关联的Primary contact的Full Name属性传递来,输入参数Age是从用户对于Request for age的输入传递来,输入参数DiscountRate是从父dialog中定义的变量DiscountRate的值传递而来。    图4:设置子dialog的属性  …


Microsoft Dynamics CRM 2011 中的Dialog-Part 2

  这篇博客是博客Microsoft Dynamics CRM 2011 中的Dialog-Part 1的续文。在这篇博客中,我们给出一个创建contact的dialog的例子,介绍data slugs(数据嵌入条),如何使用它们还有如何为optionset类型使用它们。这篇博客将会简要介绍运行dialog中的tip(提示语),comments(评论),next(下一页),previous(前一页)等等。   我们将会给出一个例子,在这个例子中将会介绍如何创建一个基本的dialog,用来获取用户输入的信息,根据这些信息在Microsoft Dynamics CRM 2011中创建一个contact。我们将会在Phone Calls上创建contact,因此Phone Call为context entity。   下图为dialog运行时的截图:       创建Dialog:Contact Creation Dialog  1.      点击Settings->Processes,点击New。 2.      按照下图填写相关信息(Category记得选为dialog)   点击OK。出现一个新窗口。 3.      点击Add Step->Page,如下图所示:   4.      输入page的描述:Contact’s first, last and middle names. 5.      点击Add Step->Prompt/Response,然后点击Set Properties, 你将看到新页面来设置其属性。 6.      如下图填写各属性(Response Type: Single Line, Data Type: Text):   然后点击Save…


Microsoft Dynamics CRM 2011 中的Dialog-Part 1

Dialog(对话)是Microsoft CRM 2011建立在Windows Workflow Foundation 4之上的一个全新的功能。在我们深入讨论Dialog的强大功能前,我们需要知道在Microsoft CRM 2011中,Workflows(工作流)和Dialogs统称为Processes(过程)。简单来讲,在Microsoft CRM 2011中,Workflows和Dialogs都是具有由创建者定义的一系列操作的process。Workflow是在后台运行的process,用来完成创建者定义的一些任务;而Dialog是一个前端的,和用户有交互界面的process,它可以接受用户输入然后同步地处理创建者定义的任务。跟workflow一样,dialog也是基于Windows Workflow Foundation,能够通过添加新的.Net 4.0支持的Custom Workflow Activities来进行扩展。   你能用Dialog来做什么? Dialog是一个前端的按需触发的process,它通过一个美观的界面向运行它的用户提供弹出框和提示语,接受用户输入来执行后端预先定义的任务。它有很多功能,一些是新功能,一些是从CRM 已有的workflow中借用的。下面是Dialog的功能列表。    1.       提出一些问题,收集客户的答案。你可以使用“Prompt and Response” 步骤来实现这个功能。你能够通过以下方式获取答案:文本框(多行、单行),选择集(单选按钮、下拉菜单)。答案可以有三种类型:整数、小数和文本。一个页面上可以有一个或多个“Prompt and Response” 步骤提供给客户。 2.       你可以创建一个静态页面链接,这个链接可以单独出现在Dialog页面上,也可以嵌入在一些“Prompt and Response”文本中。定义网页链接的选项在“Prompt and Response”编辑页面上。 3.       你可以使用CRM 查询(类似于Advance Find查询)来核实或呈现客户的数据。查询可以带有参数,你可以将客户输入的答案作为参数。使用Dialog编辑页面的“Query CRM Data”步骤可以实现这些功能。 4.       你可以在Dialog中定义变量和公式。通过使用“Variable” 或 “Input Arguments” 和 “Assign Value” 步骤来实现。 5.       你可以使用“Link Child Dialog”或 “Start Child…


Microsoft Dynamics CRM 4.0中的报表计划

在报表计划(Report Scheduling)方面,Microsoft SQL Server reporting services 提供了很多功能。在Microsoft Dynamics CRM中,仅仅用到了报表功能中的一小块,我们叫做“设置报表计划”(Report Scheduling)。 报表计划功能能够生成报表快照。快照类型可以为‘On Demand Snapshots’ 或 ‘On-Scheduled Snapshots’。在CRM 3.0中,报表计划功能是使用Microsoft 3.0 Report Scheduling Wizard来实现的。 在Microsoft Dynamics CRM 4.0中,这个功能使由CRM Data Connector提供的。它需要安装在给CRM 提供Reporting Service的机器上。若没有装CRM Data Connector,在CRM中设置报表计划会遇到下述错误:   因此作为一个前提条件,必须将CRM Data Connector安装在SRS服务器上。CRM Data Connector能够在CRM安装盘中找到。安装好CRM Data Connector后,点击Workplace下的Reports链接,在More Actions菜单中点击“Schedule Report”来启动报表计划设置向导。   什么是报表快照? 报表快照是一个报表,它包含了布局信息和在指定时间运行查询的结果。CRM能帮我们创建2种类型的快照: ·         On Demand(按需运行) ·         On Schedule(按计划运行) 当你运行报表时,按需运行的报表能够显示最更新的查询结果。按计划运行的报表则与之不同,它会在你计划的时间运行报表并将其保存到Report Server中。当你查看该报表快照时,Report Server会从数据库中获取所存储的报表,显示快照创建时的数据和布局。   为什么要使用报表快照?…


Microsoft Dynamics CRM 2011 窗体编程的新模型:Xrm.Page

Microsoft Dynamics CRM 2011在form编程扩展方面引入了新的对象模型:Xrm.Page。这个新的对象模型提供了以下新的功能:      ·   显示/隐藏UI组件。      ·  支持form上对单个属性有多个控件。      ·  支持一个实体有多个form。      ·  操作form的导航项。 Microsoft Dynamics CRM  4.0 使用crmForm来提供对form上控件的访问。Microsoft Dynamics CRM 2011已经弃用了crmForm,但用crmForm编写的script仍然能够在Microsoft Dynamics CRM 2011中使用,使其具有向后的兼容性。使用crmForm无法实现上述新功能。   Xrm.Page提供了一个命名空间(namespace)的容器,其中包括三个对象: context:提供了获取下述信息相关的方法。      ·  组织      ·  用户      ·  在查询语句中传到form的参数 data:提供操作实体数据的方法。 ui:提供获取UI信息的方法。          下面将给出三个实例,分别介绍三种对象的使用方法。   使用Xrm.Page.context 本实例将在Account form的OnLoad事件中调用jscript,来显示CRM Server地址,当前用户的GUID和组织名称。 1.       在default solution中,新建一个新的jscript类型webresource,取名为/Jscript/demo.js, 其文本内容填入(创建webresource详细过程可参考博客Microsoft Dynamics CRM 2011 Web Resource简介): function ShowContext() { alert(“The CRM Server URL is ” +…