共用方式為


使用 OAuth 搭配跨原始來源資源共用,將單一頁面應用程式連線至 Microsoft Dynamics 365

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

有了 Microsoft Dynamics CRM Online 2016 更新 和 Microsoft Dynamics 365 內部部署與 網際網路對向部署 (IFD),您可以建立單一頁面應用程式 (SPA),其使用 JavaScript 搭配 Microsoft Dynamics 365 資料。 若要提供此項,跨原始來源資源共用 (CORS) 會啟用,您的 SPA 就能略過瀏覽器限制,其通常會阻止跨網域界線的要求。

注意

CORS 支援只有在使用 Web API 時提供。 您無法使用組織服務或已取代的組織資料服務。

本主題內容

SPA 和相同原始來源原則

使用 CORS 搭配 Microsoft Dynamics 365 (線上)

adal.js 如何運作

準備使用 ADAL.js 搭配 SPA

SPA 和相同原始來源原則

SPA 倚賴大量使用用戶端 JavaScript 建立單一動態頁面,不需要載入新頁面。 而是使用 XMLHTTPRequest 從伺服器擷取資料和其他資源。 SPA 在資料和資源與應用程式位於相同網域時運作順暢。 但是,為了保護對其他網域資料和資源的存取,所有現代瀏覽器都會強制執行相同原始來源原則,防止網站使用不同網域中網站的資料和資源。 CORS 提供了存取其他網域資源的方式。 建立 SPA 存取 Microsoft Dynamics 365 資料,但沒有 CORS,是不可行的選項。

使用 CORS 搭配 Microsoft Dynamics 365 (線上)

跨原始來源資源共用規格提供如何實作和使用 CORS 的詳細描述。 當中說明所有關於各種標題和預檢要求的資訊,需要套用才能讓 CORS 運作。 好消息是,您不需要是 CORS 的專家,也能用它搭配 Microsoft Dynamics 365。 伺服器端部分已為您完成,您只需要知道如何使用它。 您不需要了解 CORS 的所有內部運作情形,就能使用它搭配 Microsoft Dynamics 365。 另外,您可以改用 Azure Active Directory Authentication Library for JavaScript (adal.js),它會為您處理大部分 CORS 的複雜性。 因為 Dynamics 365 (線上) 和 網際網路對向部署 (IFD) 使用者都是使用 Azure Active Directory 驗證,所以 ADAL.js 是支援的驗證 SPA 使用者的方式。

adal.js 如何運作

核心程式庫是 adal.js。 您可以存取此程式庫的最小版本,位於 https://secure.aadcdn.microsoftonline-p.com/lib/1.0.0/js/adal.min.js。 Github 專案及文件位於 https://github.com/AzureAD/azure-activedirectory-library-for-js

adal.js 程式庫包含低階功能,使用 OAuth2 驗證。 Adal.js 的設計是搭配其他架構使用,例如有 adal-angular.js 程式庫,其設計在於搭配 Angular 架構使用。您使用此程式庫的方式是設定特定設定屬性,然後它會等待事件發生,再觸發互動流程。 這可能只是呼叫 login 功能,或者如果您的應用程式有路由行為,則驗證可透過該路由的控制器設定的方式初始化。

需要驗證時,使用者會被帶往登入頁面提供其認證。 驗證成功後,他們會被重新導向回呼叫頁面,且會附加權杖資訊做為 URL 的片段 (使用 #)。 這樣可讓 SPA 取得權杖,並在瀏覽器的本機或工作階段儲存空間中快取它。 這表示,整個頁面會在驗證後重新載入,但是此時有關授權使用者的資訊會提供,且應用程式可以繼續呼叫 Dynamics 365 Web API 或其他資源。

當呼叫 Dynamics 365 Web API 時,您必須在 Authorization 標頭中包含權杖值,使用 XMLHTPPRequest。 不過,因為權杖會過期,因此最好確認它不會在有人使用您的 SPA 時過期。 請記住,輸入新認證需要將整個 SPA 頁面的內容轉換成登入頁面。 這樣會造成非常不良的使用者體驗,如果是在使用者正在進行工作時發生。 為了確保不會發生此情況,您可以在 acquireToken 函數中結束 Web API 呼叫,以便能夠檢查這個權杖的有效性,並在需要時重新整理,而不必將使用者帶往登入頁面。

準備使用 ADAL.js 搭配 SPA

若要設定 SPA 搭配 adal.js 使用,您需要:

  1. 透過 Azure Active Directory 用戶註冊您的應用程式

  2. 匯出您註冊的應用程式資訊清單並編輯,以允許 OAuth2 隱含硫量,然後將 JSON 檔案匯回您的應用程式註冊中。

  3. 在 SPA 中設定組態變數,利用該註冊的資訊。

    您需要包含下列:

    • 您的 Microsoft Dynamics 365 組織的 URL

    • 您的組織用來驗證的 Active Directory 用戶的名稱

    • 當您註冊應用程式時取得的用戶端識別碼

    • 在開發期間,將部署或偵錯 SPA 的位置的 URL

需要的步驟在逐步解說:使用 adal.js 註冊及設定 SimpleSPA 應用程式中描述。

另請參閱

在 Microsoft Dynamics 365 中驗證使用者
使用 OAuth 連線至 Microsoft Dynamics 365 Web 服務
Active Directory 和宣告型驗證

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權