天天看點

如何為部署到 SAP BTP 平台上的 Node.js 應用提供Authorization 和 Trust 管理 - 權限管控

官方連結

本教程的目标是通過身份驗證和授權來保護和部署産品清單應用程式,是以隻有具有正确授權的使用者才能獲得身份驗證應用程式中的産品。沒有必要授權的使用者可以登入應用程式,但看不到産品。

本教程的基礎是一個 Node.js 應用程式,它使用 express 架構和 SAPUI5 來顯示産品清單(參見螢幕截圖)。

如何為部署到 SAP BTP 平台上的 Node.js 應用提供Authorization 和 Trust 管理 - 權限管控

XSUAA and the Application Router

為了保護此産品清單應用程式,使用了兩個元件。 一種稱為 XSUAA 服務,另一種稱為應用路由器。 應用程式路由器與 XSUAA 服務結合使用來驗證使用者并将使用者路由到受保護的應用程式。

XSUAA 扮演 OAuth 授權服務的角色,而應用程式路由器扮演 OAuth 用戶端的角色。 此外,應用路由器充當應用的中央入口點。

為了防止在未經身份驗證的情況下直接調用您的應用程式,有必要向您的應用程式添加一些代碼。 在我們的示例中,您使用 Node.js 護照身份驗證中間件并使用 XSUAA JWT 政策對其進行配置。

如何為部署到 SAP BTP 平台上的 Node.js 應用提供Authorization 和 Trust 管理 - 權限管控

checkReadScope 函數確定隻有具有正确權限的使用者才能檢視産品。

If you want to use SAP modules locally, you need to add the npm configuration:

npm config set @sap:registry

https://npm.sap.com

approuter 将使您能夠建立到您的應用程式的安全路由。

在 manifest.yaml 中,您必須為應用程式定義主機名并添加目的地。 清單檔案用于将 XSUAA 服務執行個體綁定到您的應用程式。

使用參數 route 為您的應用程式指定一個特定的主機名。 路由在整個 Cloud Foundry 環境中必須是唯一的,是以請確定向路由添加随機部分,例如您的姓名首字母和出生日期,如 product-list-ap25 和 approuter-product-list-ap25。 稍後您還需要路由來配置目的地。

如何為部署到 SAP BTP 平台上的 Node.js 應用提供Authorization 和 Trust 管理 - 權限管控
如何為部署到 SAP BTP 平台上的 Node.js 應用提供Authorization 和 Trust 管理 - 權限管控

要使用 XSUAA 服務,需要一個名為 xs-security.json 的檔案。 該檔案可以定義 XSUAA 服務執行個體的屬性以及不同的角色和授權。 在此示例中,該檔案包含一個角色模闆和一個具有産品清單檢視者角色的角色集合,使使用者可以稍後檢視産品。

建立一個 security 檔案夾,xs-security.json 檔案内容維護如下:

如何為部署到 SAP BTP 平台上的 Node.js 應用提供Authorization 和 Trust 管理 - 權限管控

這将建立一個具有角色模闆的角色集合和一個具有閱讀範圍的角色,是以具有此角色的使用者可以檢視産品。

Prepare the approuter files

将名為 approuter 的檔案夾添加到您的産品清單檔案夾中。

在該檔案夾中建立一個名為 package.json 的檔案。

添加以下内容:

如何為部署到 SAP BTP 平台上的 Node.js 應用提供Authorization 和 Trust 管理 - 權限管控

這将建立一個名為 products-destination 的目的地。 目的地稍後會在 manifest.yml 中引用。

Move static content to the application router

出于性能原因,最好将應用程式的圖像放入帶有應用程式路由器的靜态資源檔案夾中。

最後應用結構如下:

繼續閱讀