Azure Active Directory 整合的最新資訊

工程 | Andy Clement | 2021 年 1 月 13 日 | ...

無論您是建構 Web API、行動前端應用程式,還是傳統的桌面應用程式,身分識別和存取管理始終是軟體開發中最重要的基礎要素。Azure 提供一個絕佳的平台來普及您的應用程式開發之旅,它不僅提供基於雲端的身份識別服務,還與 Azure 生態系統的其餘部分深度整合。Spring Security 透過強大的抽象化和可擴展的介面,可以輕鬆保護基於 Spring 的應用程式。然而,儘管 Spring Framework 非常強大,但它並非專為特定身分識別提供者量身定制的。適用於 Azure Active Directory 的 Azure Spring Boot Starter 是 Microsoft 和 VMware 協同努力的成果,旨在提供將應用程式連接到 Azure AD 租用戶並使用 Azure Active Directory 保護資源 API 的最佳方式。舉例來說,在某些情況下,您可能希望針對多個資源伺服器進行授權,您只需在應用程式配置中包含多個授權用戶端即可。

若要開始使用適用於 Azure Active Directory 的 Azure Spring Boot Starter,請將您的應用程式連接到 Azure AD 租用戶,並在 application.yml 中包含以下設定

azure:
  activedirectory:
    tenant-id: xxxxxx-your-tenant-id-xxxxxx
    client-id: xxxxxx-your-client-id-xxxxxx
    client-secret: xxxxxx-your-client-secret-xxxxxx
    authorization-clients:
      graph:
        scopes:
            - https://graph.microsoft.com/User.Read
            - https://graph.microsoft.com/Directory.AccessAsUser.All

在您的 Controller 中取得 OAuth2AuthorizedClient

@GetMapping("/graph")
@ResponseBody
public String graph(
    @RegisteredOAuth2AuthorizedClient("graph") OAuth2AuthorizedClient client
) {
// Now you can use the access token to access a graph URI
}

如需更多詳細資訊,請參閱我們的範例專案

讓我們看看入門套件中的一些最新增強功能

Web 應用程式

與 Microsoft API 整合

身分識別平台提供 Microsoft API 來與許多知名的 Microsoft SaaS 應用程式互動。例如,使用 Graph API 與 Office 365 互動,使用 Azure DevOps 與 Azure DevOps 伺服器通訊,並使用 Azure Batch 在雲端中排程 HPC 應用程式。若要使用 Graph API,首先請配置您的 application.yml

azure:
  activedirectory:
    authorization-clients:
      graph:
        scopes:
            - https://graph.microsoft.com/User.Read
            - https://graph.microsoft.com/Directory.AccessAsUser.All

然後在您的 Controller 中取得 OAuth2AuthorizedClient

您可以根據需要逐步核准您的應用程式對資源和 API 的存取。當您想要更精細地控制存取管理,而不是預先授予所有範圍時,這種行為是可取的。若要在 Web 應用程式中使用增量同意,請設定您的 application.yml

azure:
  activedirectory:
    authorization-clients:
      arm:
        on-demand: true
        scopes: https://management.core.windows.net/user_impersonation

當應用程式嘗試取得對應的 OAuth2AuthorizedClient 時,會觸發增量同意。也可以透過存取 URL:/login/oauth2/code/{authorization-client} 來觸發

與 AAD 整合以進行登出

在您的組態屬性中新增 azure.activedirectory.post-logout-redirect-uri,當使用者執行登出時,您的應用程式將自動登出所有作用中的工作階段,然後將使用者重新導向至 logout-redirect-uri

請參閱此 Web 應用程式範例專案,以取得更多詳細資訊。(此範例包含所有 3 種情境)

資源伺服器

受 AAD 保護的資源伺服器

在 OAuth 2.0 中,資源伺服器是使用權杖保護基礎資源的應用程式。在此版本中,我們新增了對 Audience 和 Issuer 的驗證,以確保目標物件和簽發者受到尊重。如需詳細資訊,請參閱資源伺服器範例專案

使用 Spring 資源伺服器的代表流程

當您的應用程式使用權杖呼叫 API A 時,API A 又呼叫 API B,則需要不同的權杖才能存取 API B。OAuth 2.0 提供了一個代表 (OBO) 流程,旨在處理這種常見的情境。透過適用於 Azure Active Directory 的 Azure Spring Boot Starter,您可以委派使用者身分識別要求並在要求鏈中傳播。

如需詳細資訊,請參閱具有 OBO 的資源伺服器範例專案

其他值得注意的變更

套件 ID 變更

為了與其餘的 Azure SDK 保持一致,從 3.x 開始,Azure Spring Boot Starter 的套件 ID 已從 azure-[startername]-spring-boot 重新命名為 azure-spring-boot-[startername]

最新版本

已發布 3.0.0 版本,其中包括對 Spring Boot 2.2.x 和 2.3.x 的支援

取得 Spring 電子報

隨時掌握 Spring 電子報

訂閱

搶先一步

VMware 提供訓練和認證,以加速您的進展。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

檢視全部