Azure AD(一)入門認識

Grant_Allen發表於2020-05-05

一,引言(吹水)

  距離上一次介紹Azure Functions的相關博文以及過期快一個月了,本來早早都想好已經規劃好的Azure的相關的學習的路線,無奈還是由於自己文筆不好以及自身太懶,導致博文沒有更新?。好了,廢話也不多說,開始今天的分享!!!

二,正文

什麼是Microsoft 表示平臺?

  今天分享的主題叫 “Azure AD”,全稱為 “Azure Active Directory” Azure 活動目錄,是不是聽起來很拗口,微軟官方文件解釋到,其實在Azure上的提供的雲端的身份表示和資源訪問服務,可以幫助員工登入以及訪問以下位置的資源:

  • 外部資源,例如 Microsoft Office 365、Azure 門戶以及成千上萬的其他 SaaS 應用程式。

  • 內部資源,例如公司網路和 Intranet 上的應用,以及由自己的組織開發的任何雲應用。

  對應開發人員來講,按照這些理解,我們大概瞭解到 Azure AD 其實是微軟基於雲的表示和授權訪問管理服務,它可以幫助我們在Azure中登入和訪問資源。我們可以通過Azure的標識平臺生成應用程式,採用微軟表示登入,以及獲取令牌來呼叫受保護的API資源,這裡是不是 有點和Identity Server 4 類似,沒錯,這一切功能也是基於包含Oauth 2.0和Open ID Connect的身份驗證服務。??????

實現標識平臺,Azure AD 所支援的專案型別

  

 

 

   以上,是引用微軟關於 Azure AD介紹的所支援的所有型別的身份認證平臺

微軟標識平臺的發展

  微軟標識平臺由 Azure AD 開發人員平臺演變而來。 藉助該平臺,開發人員可以生成登入使用者的應用程式,以及獲取令牌呼叫 API,例如 Microsoft Graph 或受保護的API資源。 它包含身份驗證服務、開源庫、應用程式註冊和配置等等和其他開放人員內容。 微軟 標識平臺支援行業標準協議,例如 OAuth 2.0 和 OpenID Connect。

  藉助微軟統一標識平臺 (v2.0),可以一次性編寫程式碼,然後將任何微軟標識身份驗證到應用程式。 對於多個平臺,標識平臺終結點使用完全受支援的開源 Microsoft 身份驗證庫 (MSAL)。 MSAL 易於使用,為使用者提供出色的單一登入 (SSO) 體驗,幫助我們實現高可靠性和效能,採用 微軟 安全開發生命週期 (SDL) 開發。 呼叫 API 時,可以將應用程式配置為使用遞增同意,這允許你延遲對同意的請求以實現更廣的範圍,直到應用程式的使用在執行時對此作出保證。 MSAL 還支援 Azure Active Directory B2C,因此,客戶可使用其首選的社交、企業或本地帳戶標識對應用程式和 API 進行單一登入訪問。

藉助 Microsoft 標識平臺,可將覆蓋範圍擴充套件到以下型別的使用者:

  • 工作和學校帳戶(Azure AD 預配帳戶)
  • 通過 MSAL 和 Azure AD B2C 使用自己的電子郵件或社交標識的客戶

可以使用 Azure 門戶註冊和配置應用程式,並將 Microsoft Graph API 用於程式設計應用程式配置。

  根據自己的進度更新應用程式。 使用 ADAL 庫構建的應用程式繼續受支援。 混合應用程式組合(包含使用 ADAL 生成的應用程式和使用 MSAL 庫生成的應用程式)也受支援。 這意味著使用最新 ADAL 和最新 MSAL 的應用程式將在組合中提供 SSO,SSO 由這些庫之間的共享令牌快取提供。 從 ADAL 更新為 MSAL 的應用程式將在升級時保持使用者登入狀態。

所有由此,我們可以看出在我們的專案中整合Azure AD來實現身份驗證和授權。

微軟標識平臺開發術語-----開始之前,我們還是先去了解這些術語

  1. 訪問令牌:由授權伺服器頒發的一種安全令牌,可供客戶端應用程式用來訪問受保護的資源伺服器。 通常,該令牌採用 JSON Web 令牌 (JWT) 形式,其中包含由資源所有者授予客戶端的授權,用於進行所請求級別的訪問。
  2. 應用程式 ID:Azure AD 嚮應用程式註冊頒發的唯一識別符號,用於標識特定應用程式和關聯的配置。 執行身份驗證請求時將使用此應用程式 ID,開發時會向身份驗證庫提供它。 
  3. 應用程式註冊:要允許某個應用程式與標識和訪問管理功能整合並將這些功能委託給 Azure AD,必須向 Azure AD 租戶註冊該應用程式。
  4. authentication:向訪問方質詢合法憑據的措施,提供建立用於標識和訪問控制的安全主體的基礎。
  5. authorization:授權經過身份驗證的安全主體執行某項操作的措施,在 OAuth2 授權流程中:資源所有者向客戶端應用程式授權時,允許客戶端訪問資源所有者的資源
  6. 授權終結點:授權伺服器實現的終結點之一,用來與資源所有者進行互動,以便在 OAuth2 授權流程期間提供授權
  7. 授權伺服器:根據 OAuth2 授權框架的定義,這是在成功驗證資源所有者身份並獲取其授權之後,負責向客戶端頒發訪問令牌的伺服器。 客戶端應用程式在執行時根據 OAuth2 定義的許可權授予,通過其許可權和令牌終結點來與授權伺服器互動
  8. ID 令牌:授權伺服器的授權終結點提供的 OpenID Connect 安全令牌,其中包含與終端使用者資源所有者的身份驗證相關的宣告。 與訪問令牌一樣,ID 令牌也以數字簽名的 JSON Web 令牌 (JWT) 形式來表示。
  9. 資源所有者:能夠授予對受保護資源的訪問許可權的實體。如果資源所有者是個人,則稱為終端使用者。 例如,當客戶端應用程式想要通過 Microsoft Graph API 訪問使用者的郵箱時,需要從該郵箱的資源所有者獲取許可權。
  10. 資源伺服器:託管受保護資源的伺服器,該伺服器能夠接受並響應出示訪問令牌的客戶端應用程式發出的受保護資源請求。 它也稱為受保護的資源伺服器或資源應用程式。
  11. 角色:提供某種方式讓資源伺服器控制其受保護資源的訪問許可權。 有兩種型別的角色:“使用者”角色為需要資源訪問許可權的使用者/組實現基於角色的訪問控制,“應用程式”角色為需要訪問許可權的 客戶端應用程式 實現相同的訪問控制
  12. 範圍:與角色一樣,範圍提供某種方式讓資源伺服器控制其受保護資源的訪問許可權。 對於資源所有者已為其提供資源的委託訪問許可權的客戶端應用程式,範圍可用於實現基於範圍的訪問控制。
  13. 安全令牌:包含 OAuth2 令牌或 SAML 2.0 斷言等宣告的已簽名文件。 對於 OAuth2 授權,訪問令牌 (OAuth2) 和 ID 令牌都是安全令牌型別,並且這兩種型別都作為 JSON Web 令牌 (JWT) 實現。
  14. tenant:Azure AD 目錄的例項稱為 Azure AD 租戶

微軟標識平臺體驗

  下圖顯示了高階別的 Microsoft 標識體驗,包括應用註冊體驗、SDK、終結點和支援的標識

應用註冊體驗

  Azure 門戶應用註冊 體驗是用於管理已與 Microsoft 標識平臺整合的所有應用程式的一種門戶體驗。

要與 Azure AD B2C 整合(對社交或本地身份進行身份驗證時),需要在 Azure AD B2C 租戶中註冊應用程式。 這種體驗也是 Azure 門戶的一部分。

  使用應用程式 API 以程式設計方式配置與 Microsoft 標識平臺整合的應用程式,以對 Microsoft 標識進行身份驗證。

MSAL 庫

  可以使用 MSAL 庫生成對所有 Microsoft 標識進行身份驗證的應用程式。 .NET 和 JavaScript 中的 MSAL 庫已正式釋出。 適用於 iOS 和 Android 的 MSAL 庫處於預覽階段,適合用於生產環境。 我們為預覽版 MSAL 庫提供的生產級別支援與我們為正式版 MSAL 和 ADAL 提供的生產級別支援相同。

  還可使用 MSAL 庫將應用程式與 Azure AD B2C 整合。

  用於構建 Web 應用和 Web API 的伺服器端庫已正式釋出:ASP.NET 和 ASP.NET Core

Microsoft 標識平臺終結點

Microsoft 標識平臺 (v2.0) 終結點現已經過 OIDC 認證。 它適用於 Microsoft 身份驗證庫 (MSAL) 或任何其他符合標準的庫。 它按照行業標準實現了簡明易懂的範圍。

三、結尾

今天大概介紹了以下Azure AD的一些概述,以及作為開發者,我們可以使用Azure AD 來做些什麼,下一篇正式開始在專案中我們是如果進行整合Azure AD以及Azure AD認證授權的幾種模式。

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

參考微軟文件出處:

 中文文件:https://docs.microsoft.com/zh-cn/azure/active-directory/fundamentals/active-directory-whatis

 英文文件:https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-whatis

 

相關文章