实践教程
在本博客系列中,我们将探讨在多云铸造环境中开发安全应用程序。这个博客是关于应用路由器的。
在这个博客中,家庭人工智能,我们
创建了一个安全描述符文件(xs)-安全.json)对于XSUAA创建XSUAA服务实例创建应用程序路由器(由SAP提供)更新审批者的应用程序清单验证对approuter的访问需要身份验证(但还不适用于业务应用程序)
在本系列的第五个视频中,我们将演示如何创建和配置XSUAA服务的实例,以及如何将approuter添加到我们的应用程序中以用作端点。
与之前一样,我们继续使用SAP云平台文档中的(稍加修改)示例代码:
验证签入节点.js应用Python应用程序中的身份验证检查
您可以从存储库下载示例代码
github.com/dvankempen/XSUAA
有关SAP云平台试用环境、Cloud Foundry构建包、依赖项声明、属性、Diego单元等的更多详细信息,请参阅"附录"博客
平台内部
注意:SAP HANA eXtended Application Services(简称XS)在SAP HANA 1.0平台的早期版本(SPS 05,2012)中引入,以提供基于开源SpiderMonkey Mozilla JavaScript运行时的内置应用程序服务器服务。三年后,该体系结构被另一个SAP实现取代,这次是开源云铸造环境(SPS 11,大数据什么意思,2015),当时内部称为XS 2,正式命名为XS Advanced,或XSA。这个Cloud Foundry"/4HANA"实现与SAP云平台Cloud Foundry环境非常相似和兼容,除了一些特定于内存平台的品牌和功能。例如,CLI被称为xs(不是cf),但在其他方面是相同的。
SAP HANA的service broker是专门为此环境开发的,大数据怎么样,其他服务也适应了该平台,如Cloud Foundry UAA服务的SAP XSUAA实现,使用名为xs security的JSON格式文件进行配置。
比较
为您的xs Advanced JavaScript应用程序设置身份验证,SAP HANA Developer Guide for SAP HANA xs Advanced Model身份验证签入节点.js应用,SAP云平台
架构图显示了涉及的组件。浏览器(UI/用户代理)请求到达的第一个站点是SAP云平台上SAP Cloud Foundry环境的Cloud Foundry路由器;这是一个由SAP管理的平台组件。CloudFoundry路由器将请求转发给应用程序路由器。这是我们自己管理的一个组件,我们将在本博客中向您展示如何构建一个组件。应用程序路由器使用访问令牌与UAA和身份提供者交互以获得安全和会话服务。使用这些令牌,用户请求随后与运行时容器中的业务服务交互。
作为类比,用户到达酒店(路由器)并被引导到接收(应用路由器)。接待员(UAA)使用护照(身份验证)和信用卡(授权)验证身份。用户获得房间密钥(令牌)。使用此令牌,用户可以访问房间(业务服务)。
SAP云平台使用SAP Cloud Identity Services作为默认身份提供程序(IdP),但任何SAML 2.0 IdP都可以用作替代方案。
如文件所述
XSUAA编程模型云铸造环境中的Web访问SAP Cloud Identity Services | SAP Community
如果您对流程感兴趣,请参阅
OAuth 2.0:授权码授予类型
对行话感到困惑?这里是一个复习
SAML2.0(2005)–身份和服务提供商(网站)之间交换身份验证和授权数据的标准。基于XML(结果有点笨拙)。可以追溯到21世纪初,适用于网络浏览器,但不适用于应用程序和移动设备Oauth 2.0(2012)–使用令牌的访问委派标准。是一个具有多个用例的授权框架(上图只是其中一个)。它不是一个协议(如SAML)OIDC/OpenID Connect(2014)–为OAuth授权框架提供身份验证。JWT/jsonwebtokens(2010)–以JavaScript对象表示法交换令牌的格式,与XML相比,这种格式更轻量级。OAuth流使用SAML(XML)断言作为JWT。
作为提醒,这些概念也在以前的博客中讨论过。
Cloud Foundry、UAA和XSUAA
XSUAA服务实例
为XSUAA服务创建服务实例与创建其他服务类似,就像我们为SAP HANA Cloud或HDI容器所做的一样,尽管在这种情况下,我们需要提供一个名为xs security的JSON格式的安全描述符文件。
此文件定义了用于访问应用程序的身份验证方法和授权类型的详细信息。
如文档所述,
应用程序安全描述符应用程序安全描述符配置语法
虽然我们可以在此文件中添加指定范围(显示、编辑、删除)、属性和角色,但现在我们将保持简单,只引用(business logi)应用程序名称。这应该是有意义的,因为XSUAA服务实例需要知道它需要管理哪个应用程序的安全性。
然后我们使用安全描述符文件创建XSUAA的服务实例,使用相同的create service命令指定service,PLAN,服务实例名称加上参数:
包含特定于服务的配置参数的有效JSON对象,可以在线提供,也可以在文件中提供。有关支持的配置参数列表,请参阅特定服务产品的文档。
如Cloud Foundry CLI参考指南中所述
cf create service
有关一次性情况,人工智能的技术有哪些,我们也可以使用SAP Cloud Platform cockpit中的向导来创建实例,并上载安全描述符文件或以JSON格式指定参数。
这与本例中web界面调用cf create service命令完全相同。
参数tenant mode=dedicated是默认值,可以省略。
SAP云平台驾驶舱在Cloud Foundry空间级别显示此信息:服务>服务实例
这里我们还可以从服务市场中找到有关UAA服务计划的信息(再次,相同的cf marketplace命令)。
应用程序路由器
要为我们的we应用程序启用身份验证,我们将添加一个应用程序路由器。
如文件所述: