內容

高階設計文件

MOBILE 工具(Node.js 的 Azure AD 身份驗證)

版本 1.0(草案)

目錄

  1. 簡介 4
  2. 建築表示(邏輯檢視)5
  3. 技術過程 7
  4. 建築目標和制約因素 8
  5. 尺寸和效能 9
  6. 問題和關注 9

高階設計(HLD)

  1. 簡介本文件提供了高階概述,並解釋了 Node.js(移動工具)的 Azure AD 身份驗證過程的整體架構。它解釋了移動應用程式,Web-API,文件資料庫和 Azure Active Directory 之間的技術元件及其互動。最後,移動使用者將如何登入系統並執行操作。該文件提供了體系結構目標的高階描述,系統支援的用例以及為最佳實現用例而選擇的體系結構樣式和元件。1.1。目的高階設計文件(HLD)提供了 MOBILE APP 的全面架構概述。1.2。範圍本 HLD 的範圍是描述 Preludesys 團隊開發的 MOBILE APP 的架構。

1.3。定義,縮略語和縮寫

  • HTTP - 超文字傳輸​​協議
  • Azure AD - Azure Active Directory
  • Web-API - Web 應用程式介面
  • REST API - 具象狀態轉移
  • JSON - JavaScript 物件表示法
  • ADAL - Azure Active Directory 身份驗證庫
  • iOS - Apple 裝置的作業系統
  • Android - 適用於 Google 裝置的作業系統
  • OAuth2 / OpenID-授權的開放標準
  • 使用者 - 這是具有 Azure Active Directory 成員的組織使用者。
  • 建立者(流程所有者) - 這是可以建立/修改文件的使用者
  • Reader - 此使用者可以讀取/檢視資料
  • 管理員 - 此使用者可以讀取,修改和刪除任何 DTCPII 工具流程規範,流程稽核,流程模板以及管理其他使用者許可權/角色。管理員可以將管理許可權委派給系統中的其他使用者。

1.4。參考

1.5。概述

本文件提供了以下元件的技術概述。

  • Node.JS 模組
  • 自定義 Web API
  • ADAL 庫
  • Azure Active Directory
  • 檔案 DB
  1. 架構表示(邏輯檢視) StackOverflow 文件 解決方案分為兩個元件。一個是可在移動裝置上執行的客戶端應用程式,另一個是在 Azure 環境中執行的伺服器端元件。

移動應用程式(Node.js 客戶端)Node.js 是輕量級響應使用者介面。移動應用程式可以簡單地用本地語言編寫,也可以使用像 Cordova(aka PhoneGap)這樣的混合解決方案。此使用者介面將通過呼叫伺服器端 API 獲取資料並執行業務邏輯。如果移動應用程式需要部分業務邏輯,則必須在 iOS 的 Objective-C 和 Android 的 Java 中重寫。雖然 Cordova 為某些程式碼重用提供瞭解決方案,但它無法直接利用 Node 或其生態系統。

伺服器端元件 Node.js 伺服器節點是 JavaScript Web 伺服器執行時。這充當移動應用程式的 Web 伺服器。它使用 JSON 作為資料交換格式,JSON,可以由兩端進行本地解析。Node 以其處理併發的方式與大多數 Web 應用程式執行時不同。Node 不依賴於使用執行緒來實現併發,而是依賴於在單個程序中執行的事件驅動的迴圈。Node 支援非同步(非阻塞)模型。Web API 這是在 Azure 上作為 Web API 執行的 REST API 解決方案。它執行在 Document DB 之上,並作為 Document DB 的保護層。來自 Microsoft Open Web Interface for .NET(OWIN) 元件的 ASP.NET 工具和安全中介軟體,可以直接保護 Web API。使用 azure AD OAuth Bearer 2.0 訪問令牌保護端點。

  1. 技術流程 StackOverflow 文件

3.1。身份驗證身份驗證歸結為在向伺服器傳送訊息時要求呼叫者包含某種可以驗證其身份或檢索其屬性的憑據。然後,伺服器使用該資訊進行授權,確定是否應授予訪問許可權以及以何種方式授予訪問許可權資源通常會將大多數身份驗證功能解除安裝到外部服務提供程式(通常稱為許可權或身份提供程式)。這些提供商負責處理繁重的任務,例如入職使用者,分配憑證,處理生命週期流(例如密碼恢復),提供使用者身份驗證的 UI,多個協議的憑證驗證,多個身份驗證因素管理,欺詐檢測等。有了這些功能,剩下的唯一身份驗證任務是驗證在所選許可權下驗證是否成功。這通常涉及檢查安全令牌,安全令牌是在成功驗證後由許可權釋出給呼叫者的資料片段。安全令牌通常根據特定格式製作,通過金鑰進行數字簽名,該金鑰將明確標識釋出機構,幷包含將令牌唯一地繫結到目標資源的一些資料。當資源收到請求時,它會查詢附帶的令牌。如果找到滿足所需驗證屬性的那個,則對呼叫者進行身份驗證。在該詳細程度,該模式是如此通用,它可以描述許多不同的身份驗證方法。我將通過將高階角色分配給具體實體來將其應用於此場景。資源資源將是我需要保護的 ASP.NET Web API 2 專案。你可以更精細地應用身份驗證要求。

3.2。自定義 Web API 和安全端點伺服器將配置 Web API 以將其身份驗證需求解除安裝到 Windows Azure AD,即每個 Windows Azure 訂戶可用的平臺即服務(PaaS)。Windows Azure AD 專門用於支援基於雲的應用程式工作負載。該服務儲存有關使用者(屬性和憑據)和組織結構的資訊。它可以與 Windows Server Active Directory 同步資料,只在雲中提供連線。3.3。OAuth 令牌格式 OAuth 2.0 驗證過程不強制要求任何特定的令牌格式,但 REST 場景的 JSON Web 令牌(JWT)格式(bit.ly/14EhlE8)已成為事實上的標準。Windows Azure AD 和 Microsoft OWIN 元件都支援 OAuth 2.0 流中的 JWT 格式。JWT 獲取和驗證的機制都由中介軟體處理,令牌格式對應用程式程式碼是透明的。3.4。Node.js 模組與 ADAL 庫 Node.js 模組是一個移動介面,包含 UI 元件和身份驗證模組,使用 ADAL 庫從 Active Directory 獲取安全令牌。node.js 庫的 ADAL 使 node.js 應用程式可以輕鬆地向 Azure AD 進行身份驗證,以便訪問 Azure AD 受保護的 Web 資源。

3.5。文件資料庫設定和配置

3.6。使用 Azure AD Connect 進行 Azure AD 同步這超出了範圍,因為業務使用者已經是 Office 365 的一部分,這意味著他們已經與 Azure Active Directory 同步。

  1. 架構目標和約束伺服器端移動工具將託管在作為 Web 應用程式執行的 Azure 雲平臺上與客戶端的所有通訊必須符合公共 HTTPS,TCP / IP 通訊協議標準。客戶端使用者將能夠通過 Android 和 iOS 裝置訪問移動工具。

4.1。安全

為了能夠對使用者進行身份驗證,你必須使用 Azure Active Directory(AAD) 註冊 Node.js 應用程式。這分兩步完成。首先,你必須註冊你的移動服務並公開其許可權。其次,你必須註冊你的 iOS 應用並授予其訪問許可權 4.2。堅持

將使用 Azure Document DB 資料庫解決資料永續性問題。

4.3。可靠性/可用性

4.4。效能

沒有與系統效能相關的特定約束。預計系統應在標準資料庫和 Web 伺服器指令碼超時(20 秒)內響應任何請求,系統效能也取決於可用硬體,PSU 網路和 Internet 連線功能。此外,上傳/下載時間可能取決於資料大小,而資料大小又取決於使用者輸入。因此,只有在系統部署和測試之後才能確定實際效能。

  1. 尺寸和效能

  2. 問題和擔憂