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

简介: 如何为部署到 SAP BTP 平台上的 Node.js 应用提供Authorization 和 Trust 管理 - 权限管控

官方链接


本教程的目标是通过身份验证和授权来保护和部署产品列表应用程序,因此只有具有正确授权的用户才能获得身份验证应用程序中的产品。没有必要授权的用户可以登录应用程序,但看不到产品。


本教程的基础是一个 Node.js 应用程序,它使用 express 框架和 SAPUI5 来显示产品列表(参见屏幕截图)。


image.png

XSUAA and the Application Router

为了保护此产品列表应用程序,使用了两个组件。 一种称为 XSUAA 服务,另一种称为应用路由器。 应用程序路由器与 XSUAA 服务结合使用来验证用户并将用户路由到受保护的应用程序。


XSUAA 扮演 OAuth 授权服务的角色,而应用程序路由器扮演 OAuth 客户端的角色。 此外,应用路由器充当应用的中央入口点。


为了防止在未经身份验证的情况下直接调用您的应用程序,有必要向您的应用程序添加一些代码。 在我们的示例中,您使用 Node.js 护照身份验证中间件并使用 XSUAA JWT 策略对其进行配置。

image.png

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。 稍后您还需要路由来配置目的地。


image.png

image.png

要使用 XSUAA 服务,需要一个名为 xs-security.json 的文件。 该文件可以定义 XSUAA 服务实例的属性以及不同的角色和授权。 在此示例中,该文件包含一个角色模板和一个具有产品列表查看者角色的角色集合,使用户可以稍后查看产品。


新建一个 security 文件夹,xs-security.json 文件内容维护如下:

image.png

这将创建一个具有角色模板的角色集合和一个具有阅读范围的角色,因此具有此角色的用户可以查看产品。


Prepare the approuter files

approuter 将使您能够创建到您的应用程序的安全路由。


将名为 approuter 的文件夹添加到您的产品列表文件夹中。


在该文件夹中创建一个名为 package.json 的文件。


添加以下内容:

image.png

这将创建一个名为 products-destination 的目的地。 目的地稍后会在 manifest.yml 中引用。


Move static content to the application router

出于性能原因,最好将应用程序的图像放入带有应用程序路由器的静态资源文件夹中。


最后应用结构如下:


相关文章
|
7月前
|
JavaScript 网络协议 测试技术
关于 SAP Commerce Cloud 构建的 Node.js 版本号问题
关于 SAP Commerce Cloud 构建的 Node.js 版本号问题
57 1
|
7月前
|
弹性计算 开发框架 JavaScript
SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版
SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版
69 0
|
7月前
|
JavaScript 前端开发 安全
windows 环境下使用 Node.js 访问 SAP OData 遇到 unable to get local issuer certificate
windows 环境下使用 Node.js 访问 SAP OData 遇到 unable to get local issuer certificate
56 0
|
12月前
|
JavaScript 网络协议 测试技术
关于 SAP Commerce Cloud 构建的 Node.js 版本号问题
关于 SAP Commerce Cloud 构建的 Node.js 版本号问题
|
SQL JavaScript
如何使用 Node.js 访问 SAP HANA Cloud 数据库里的数据
登录 SAP Business Technology Platform,找到 space 下自己创建好的 HANA Cloud 实例,右键菜单选择 Copy SQL Endpoint,将 HANA Cloud 实例的 endpoint 拷贝下来:
如何使用 Node.js 访问 SAP HANA Cloud 数据库里的数据
|
弹性计算 开发框架 JavaScript
|
JavaScript
使用Visual Studio Code调试运行在SAP云平台上处于运行状态的nodejs应用
https://blogs.sap.com/2020/11/23/debugging-nodejs-application-in-vscode-running-on-sap-cloud-foundry
使用Visual Studio Code调试运行在SAP云平台上处于运行状态的nodejs应用
|
NoSQL JavaScript Redis
如何把nodejs应用和SAP云平台上的Redis实例做绑定
选择CloudFoundry上服务实例列表里的Redis实例,点击Actions标签栏下面的Bind图标:
如何把nodejs应用和SAP云平台上的Redis实例做绑定
|
JavaScript
nodejs应用部署到SAP云平台的经过
命令行cf push: 解析出项目里的本地manifest.yml文件
nodejs应用部署到SAP云平台的经过
|
网络协议 JavaScript API
SAP云平台上nodejs应用连接8080端口失败的日志
SAP云平台上nodejs应用连接8080端口失败的日志
SAP云平台上nodejs应用连接8080端口失败的日志