Dynamics 365中的非交互式帐号(Non-interactive User)介绍

摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复272或者20180616可方便获取本文,同时能够在第一间获得我发布的最新的博文信息,follow me!个人网站是 www.luoyong.me 。html

人不学不知道,我之前也不知道Dynamics 365 Customer Engagement (就是Dynamics 365的CRM部分功能)中还有非交互式这种帐号,今天咱们一块儿来看看吧。api

首先咱们在Office 365管理门户( https://portal.office.com )中像创建普通用户同样创建一个帐户,给他授予一个许可证,这样他才会同步到Dynamics 365 Customer Engagement中去。浏览器

一下子你在Office 365管理门户的【帐单】 > 【许可证】中就会看到你刚才授予的这种许可证的分配数量增长了1,也就是占用了一个许可。在Dynamics 365 Customer Engagement中也能够看到这个用户了。咱们先为它分派一个角色,我这里分派为系统管理员,而后我用这个帐户使用浏览器登陆Dynamics 365 Customer Engagement,你能够看到是能够登陆的。安全

 

如今咱们在Dynamics 365 Customer Engagement > 【设置】 > 【安全性】 > 【用户】中将这个用户帐号的【访问模式】设置为【非交互式】,而后保存。微信

 

而后我在用这个帐户使用浏览器来登陆Dynamics 365 Customer Engagement,登陆后提示以下:您对此组织仅具备 SDK 访问权限。您没有查看、建立、编辑或删除数据的必要权限。请联系您的 Microsoft Dynamics 365 管理员寻求帮助。app

咱们如今去Office 365管理门户中将这个用户的许可取消,待到【帐单】 > 【许可证】该用户使用的许可证类型分配数量增长1后,咱们再去Dynamics 365 Customer Engagement中查看这个用户,你会发现该用户并无被禁用,状态仍是已启用。如果普通的用户帐户,取消许可后该帐户的状态将会变成禁用,不能使用。网站

不能经过浏览器登陆Dynamics 365 Customer Engagement,可是它可以经过SDK的方式来作操做。我这里用简单的代码来登陆并执行消息是能够的:this

IServiceManagement<IOrganizationService> orgServiceManagement = ServiceConfigurationFactory.CreateManagement<IOrganizationService>(new Uri("https://luoyongdemo.api.crm5.dynamics.com/XRMServices/2011/Organization.svc")); AuthenticationCredentials authCredentials = new AuthenticationCredentials(); authCredentials.ClientCredentials.UserName.UserName = "noninteractiveuser@luoyongdemo.onmicrosoft.com"; authCredentials.ClientCredentials.UserName.Password = "Pass@w0rd1"; using (OrganizationServiceProxy organizationProxy = GetProxy<IOrganizationService, OrganizationServiceProxy>(orgServiceManagement, authCredentials)) { WhoAmIRequest whoAmIReq = new WhoAmIRequest(); var whoAmIRep = organizationProxy.Execute(whoAmIReq) as WhoAmIResponse; var userEntity = organizationProxy.Retrieve("systemuser", whoAmIRep.UserId, new ColumnSet("fullname")); Console.WriteLine(string.Format("登陆成功,欢迎{0},继续操做请输入y!", userEntity.GetAttributeValue<string>("fullname"))); } Console.WriteLine("程序运行成功!"); Console.ReadKey();

 

这是程序运行后的截图:spa

 

可是,若是根据我前面的文章 控制台程序(C#)不弹出认证窗口链接到Dynamics CRM Online的Web API  来作的话会报错以下,由于这篇文章使用非交互式帐号登陆是不行的。3d

AADSTS65001: The user or administrator has not consented to use the application with ID '7a092321-a423-4dc0-b1b3-9801898dec32' named 'LuoYong Demo'. Send an interactive authorization request for this user and resource.

经过前面的演示,我以为能够总结下:

1. 能够节省许可费用,一个许可每一年都要收钱,节约一个是一个,为客户着想省钱,提高项目的投入产出比。

2. 由于非交互式帐号不能经过浏览器登陆Dynamics 365 Customer Engagement,相对更安全一些。拿到这个帐号的密码,没有Dynamics  365 Customer Engagement开发能力的也作不了什么。

3. 此类帐户专门为Dynamics 365 Customer Engagement 与其它系统,如ERP等集成使用,妥妥的。

 固然有一个值得注意的地方就是一个CRM Online实例最多只能容许存在5个非交互式帐号。

相关文章
相关标签/搜索