本主题在Cloud Foundry中开发具有身份验证和授权的Python应用程序将指导您创建一个Python应用程序,在Cloud Foundry中设置身份验证检查和授权检查(为了便于阅读"CF"。
由于这是一个很大的主题,大数据汇总,为了给您更好的阅读体验,我想对它进行划分分为三部分:
第一部分:创建和部署Python应用程序第2部分:Python应用程序中的身份验证检查第3部分:Python应用程序中的授权检查
本文是第2部分。
添加身份验证的最简单方法是利用应用程序路由器(approuter)。我们将创建一个单独的节点.js带有包@sap/approuter的micro服务,充当Python应用程序的入口点。如下面的结构所示,所有到达应用程序路由器的请求都将触发身份验证(和授权)过程。默认情况下,返利机器人软件,IdP是预先提供的身份提供者。您还可以添加自定义的IdP作为身份提供商。
什么是应用程序路由器
1个应用程序路由器用于1个业务应用程序通往外面的唯一入口作为反向代理重写URL
应用路由器的主要功能:
处理应用中所有应用的认证授权检查提供静态资源执行路由映射(URL映射)与XSUAA交谈:如果是多租户,它从URL中获取租户信息并提供给XSUAA,将身份验证请求重定向到租户特定的IdP。
步骤1:创建XSUAA实例
创建XSUAA实例-安全.json为您的应用程序提供以下内容的文件:
将替换为您组织中可用的域,您可以通过执行CF命令CF domains来检查它。
例如:
通过以下命令创建一个名为myuaa的XSUAA服务实例:
您可以在驾驶舱中检查它,也可以通过CF命令检查它:
步骤2:将XSUAA实例绑定到应用程序
将myuaa服务实例添加到应用程序中清单.yml文件如下:
myuaa稍后部署时服务实例将绑定到myapp应用程序
第3步:创建应用程序路由器app
在python中用xsuaa目录创建approuter目录
在approuter目录中创建resources子目录,此目录将用于提供业务应用程序的静态资源。
在资源内部,创建一个索引.html包含以下内容的文件:
创建包.json执行:
将approuter包安装到approuter/node\u modules/@sap中:
添加以下脚本部分到包.json批准者目录中的文件:
例如:
修改清单.ymlpython with xsuaa目录中的文件,其末尾包含以下内容:
用唯一的名称替换,这样它就不会与其他部署的应用程序冲突。将替换为组织中可用的域,您可以通过执行CF命令CF domains来检查它。用cf apps命令显示的myapp应用程序的url替换,并在url之前添加网络协议。环境变量定义微服务的目的地,阿里大数据分析,应用程序路由器将请求转发到。
例如:
创建一个xs-应用程序.jsonapprouter目录中的文件,包含以下内容:
通过此配置,传入的请求路径与请求应位于的目标连接转发到。默认情况下,每个路由都需要OAuth身份验证,因此对该路径的请求将需要经过身份验证的用户。
第4步:将应用程序部署到Cloud Foundry
导航到python with xsuaa目录并执行:
该命令将更新myapp应用程序并部署新的approuter应用程序。从本教程的这一点开始,将请求approuter应用程序的URL,而不是myappurl。然后将请求转发到myapp应用程序。
第5步:访问应用程序
通过以下方式检查approuter应用程序的URL:
打开Firefox Developer Edition浏览器窗口并输入approuter应用程序的URL,您将看到登录页进行身份验证:
输入您的SAP电子邮件和域密码,然后您将看到您在Approver应用程序中定义的欢迎页面:
单击myapp链接,你可以看到你的myapp应用:
结论
这篇博文分享了如何利用SAP云平台中的应用路由器和XSUAA服务来实现对已有应用的认证
阿里云的特别之处:
阿里云必须使用自定义域,交通大数据,好评返现,所以需要指定重定向URL重定向URI在xs中-安全.json文件