Dynamics 365中的非交互式賬號(Non-interactive User)介紹


摘要: 本人微信和易信公眾號: 微軟動態CRM專家羅勇 ,回復272或者20180616可方便獲取本文,同時可以在第一間得到我發布的最新的博文信息,follow me!我的網站是 www.luoyong.me 。

人不學不知道,我以前也不知道Dynamics 365 Customer Engagement (就是Dynamics 365的CRM部分功能)中還有非交互式這種賬號,今天我們一起來看看吧。

首先我們在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 管理員尋求幫助。

我們現在去Office 365管理門戶中將這個用戶的許可取消,待到【賬單】 > 【許可證】該用戶使用的許可證類型分配數量增加1后,我們再去Dynamics 365 Customer Engagement中查看這個用戶,你會發現該用戶並沒有被禁用,狀態還是已啟用。若是普通的用戶賬戶,取消許可后該賬戶的狀態將會變成禁用,不能使用。

不能通過瀏覽器登錄Dynamics 365 Customer Engagement,但是它能夠通過SDK的方式來做操作。我這里用簡單的代碼來登錄並執行消息是可以的:

                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();

 

這是程序運行后的截圖:

 

但是,如果根據我前面的文章 控制台程序(C#)不彈出認證窗口連接到Dynamics CRM Online的Web API  來做的話會報錯如下,因為這篇文章使用非交互式賬號登錄是不行的。

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個非交互式賬號。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM