一,引言(吹水)
距離上一次介紹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來實現身份驗證和授權。
微軟標識平台開發術語-----開始之前,我們還是先去了解這些術語
- 訪問令牌:由授權服務器頒發的一種安全令牌,可供客戶端應用程序用來訪問受保護的資源服務器。 通常,該令牌采用 JSON Web 令牌 (JWT) 形式,其中包含由資源所有者授予客戶端的授權,用於進行所請求級別的訪問。
- 應用程序 ID:Azure AD 向應用程序注冊頒發的唯一標識符,用於標識特定應用程序和關聯的配置。 執行身份驗證請求時將使用此應用程序 ID,開發時會向身份驗證庫提供它。
- 應用程序注冊:要允許某個應用程序與標識和訪問管理功能集成並將這些功能委托給 Azure AD,必須向 Azure AD 租戶注冊該應用程序。
- authentication:向訪問方質詢合法憑據的措施,提供創建用於標識和訪問控制的安全主體的基礎。
- authorization:授權經過身份驗證的安全主體執行某項操作的措施,在 OAuth2 授權流程中:資源所有者向客戶端應用程序授權時,允許客戶端訪問資源所有者的資源
- 授權終結點:授權服務器實現的終結點之一,用來與資源所有者進行交互,以便在 OAuth2 授權流程期間提供授權
- 授權服務器:根據 OAuth2 授權框架的定義,這是在成功驗證資源所有者身份並獲取其授權之后,負責向客戶端頒發訪問令牌的服務器。 客戶端應用程序在運行時根據 OAuth2 定義的權限授予,通過其權限和令牌終結點來與授權服務器交互
- ID 令牌:授權服務器的授權終結點提供的 OpenID Connect 安全令牌,其中包含與最終用戶資源所有者的身份驗證相關的聲明。 與訪問令牌一樣,ID 令牌也以數字簽名的 JSON Web 令牌 (JWT) 形式來表示。
- 資源所有者:能夠授予對受保護資源的訪問權限的實體。如果資源所有者是個人,則稱為最終用戶。 例如,當客戶端應用程序想要通過 Microsoft Graph API 訪問用戶的郵箱時,需要從該郵箱的資源所有者獲取權限。
- 資源服務器:托管受保護資源的服務器,該服務器能夠接受並響應出示訪問令牌的客戶端應用程序發出的受保護資源請求。 它也稱為受保護的資源服務器或資源應用程序。
- 角色:提供某種方式讓資源服務器控制其受保護資源的訪問權限。 有兩種類型的角色:“用戶”角色為需要資源訪問權限的用戶/組實現基於角色的訪問控制,“應用程序”角色為需要訪問權限的 客戶端應用程序 實現相同的訪問控制
- 范圍:與角色一樣,范圍提供某種方式讓資源服務器控制其受保護資源的訪問權限。 對於資源所有者已為其提供資源的委托訪問權限的客戶端應用程序,范圍可用於實現基於范圍的訪問控制。
- 安全令牌:包含 OAuth2 令牌或 SAML 2.0 斷言等聲明的已簽名文檔。 對於 OAuth2 授權,訪問令牌 (OAuth2) 和 ID 令牌都是安全令牌類型,並且這兩種類型都作為 JSON Web 令牌 (JWT) 實現。
- 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