云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_多少钱网站建设_试用

小七 141 0

云主机登录_国内_大数据分析做什么

你听说过白名单和疯狂的"SAP\u JWT\u TRUST\u ACL"吗?然后你读了一些博客文章,发现这个变量已经被弃用了,现在你感到困惑了?我也有同样的感觉,我想了解xsuaajsonwebtoken在没有SAP approver的情况下是如何工作的。你也想明白吗?继续读下去!

由于几个月前"SAP\u JWT\u TRUST\u ACL过时了"(看看Carlos Roggan精彩的帖子),有了一种新的方式来继续"白名单"其他XSUAA实例。因为使用sap approver和xs很容易做到这一点-安全.json如果没有这些文件,有些事情需要理解节点.js应用程序,大数据趋势,谁将提供一个API,受到某种xsuaa的保护。

并且能够从作业调度服务和具有oAuth clientID和clientSecret的普通"用户"中获得呼叫。

注意:请谨慎阅读,免费企业管理软件,因为我不是xsuaa领域的高级专家

如果您完全不了解xsuaa,停止阅读,看看这个伟大的职位在这里!

正如您在Carlos post中发现的,关于app2app的东西有两个XSUAA实例,您将接触到有两个XSUAA实例和没有xs的单个应用程序-安全.json

这篇技术博客文章将为您提供一些关于XSUAA、JWT和oAuth令牌的详细信息,以及一个简短的示例节点.js在SAP云上使用

的方法平台云铸造空间我们有一个作业调度服务(集成了xsuaa服务)和一个额外的xsuaa服务正在运行。两者都与一个节点.js名为"JOB001"的应用程序:

由于作业调度程序服务提供自己的xsuaa服务,因此我们有两个不同的xsuaa服务。我们在Carlos Roggan的博客文章中了解到一些关于JWT中受众的信息,我们需要添加/共享这些受众。

现在我们不能共享受众,因为我们没有像参考文章中那样的两个应用程序。我们有一个应用程序(JOB001)和两个XSUAA实例。

一个是"普通"XSUAA,另一个是作业调度服务。双方都想访问JOB001应用程序和内部提供的api。

我们正在设置一个简单的节点.js带有"express"模块的应用程序。我们还使用'@sap/xsenv'模块获取环境变量(所谓的'VCAP\u SERVICES'——这里有详细信息)。

然后我们将读取'VCAP\u SERVICES',并获取xsuaa服务凭据。有了这个,我们就可以创建一个新的jwt策略。此json web令牌策略与模块"passport"一起使用,并参与中间件"使用"我们的"应用程序"。

现在我们准备好了!部署到您的云铸造环境并调用https://your-url.ondemand.com/jwtdecode在邮递员中

状态:401–未授权

很好,您的端点受到保护。好事情。

现在我们将使用凭据在之前请求oAuth V2令牌,并将此令牌发送到应用程序,我们以前确实部署过。

我们正在通过XSUAA实例"XSUAA\u jobs"的驾驶舱打开凭据:

并将在"url"提供的具有"clientid"和"clientsecret"的端点处请求oAuth令牌:

https://de.authentication.eu10.hana.ondemand.com/oauth/token?grant\u type=client\u credentials&response\u type=token

然后我们将oAuth令牌(承载器)添加到头中,作为我们所知道的"Authorization",并且我们从"/jwtdecode"令牌接收到如下内容:

所以我们现在有一个受保护的API,我们看到我们的json web令牌被解码。观众中出现了什么?"xsuaa\u jobs"的客户ID。很好!

还有什么不起作用?来自"jobscheduler"服务的令牌!

状态:401–未授权。

为什么?JOB001不存在jobscheduler服务的访问群体。

因此,我们已经将两个服务实例绑定到了JOB001应用程序,现在我们将在我们的应用程序中包含两个jwt策略:

那么这是怎么回事?

您可以提供策略的另一个默认名称。如果不提供,则默认为"JWT"。

重要的是每个策略有不同的名称:

"jwt2"包含jobscheduler服务的uaa凭据,定义为JWTStrategy(jwtStrategy2)。

重要的部分:使用passport将两个JWTStrategy添加到中间件:

在此中间件步骤中,我们确实提供了两个JWT策略,好评返现,因此也提供了JOB001应用程序的两个访问群体。

现在是时候检查另一个xsuaa服务(来自jobscheduler服务的uaa服务,不要问为什么它只被称为"uaa")是否如预期的那样工作了。

所以我们得到了"clientid"和"clientsecret"…

…请求我们的oAuth v2令牌(承载),免费网站自助建站,将该令牌添加到"Authorization"头字段,并使用"/jwtdecode"点击"send"到端点:

它正在工作!不要相信你自己——用"xusaa\u jobs"服务实例凭据再次做同样的事情……如果这仍然有效,我们做得很好

回到Carlos Roggan的博客文章。他解释了如何通过xs向每个应用程序添加访问群体-安全.json. 这是最常见的方法,但现在我们也可以做到这一点,不需要,通过要求应用程序从2个xsuaa服务获取2个json web令牌策略。

这样,作业调度程序服务就可以调用端点,企业服务软件,就像我们可以用xsuaa凭据做这件事一样。