内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

域名备案_高端网站建设报价_多少钱

2021-07-22 01:25 出处:欧普曼云计算 人气: 评论(0

域名备案_高端网站建设报价_多少钱

这个博客是关于SAP云平台作业调度器的一个小系列的一部分

您是否配置了一个作业来调用oauth保护的端点?它失败了吗?你会得到像401或403这样的错误吗?你讨厌它?

如果是,你应该去给这个博客一个机会,希望它能解决你的问题…!我列出了失败的可能原因,以及找到错误和解决问题的可能方法。我不怎么解释,你可以在这个系列的博客里找到详细的描述

请:如果您有其他解决问题的技巧,请添加到评论部分

在创建jobscheduler服务实例时,您必须传递以下参数:

详见此处

在创建jobscheduler服务实例时,您必须选择服务计划标准否则,您的端点不完全支持OAuth流,授权总是会失败

在创建"authorization and Trust Management"(XSUAA)实例时,必须选择service plan作为应用程序或代理详见

背景:您创建一个应用程序并定义"作用域"来控制对它的访问。意思是,调用你的应用程序的用户需要有这个"范围"因此Jobscheduler也必须拥有它但是Jobscheduler不是用户,因此必须通过xs中的"GRANT"来分配作用域-安全.json文件

这是必不可少的!当Jobscheduler调用你的应用程序时,它会发送一个JWT令牌,这个令牌将包含所需的作用域——但只有在它被授予权限的情况下如需更改xs,请参见此处

-安全.json:XSUAA实例需要更新,app重新部署不够。如果你修改了xs-安全.json文件,则需要执行以下命令以使更改在xsuaa实例中可用:

cf update service yourXsuaa-c xs-安全.json

注意服务实例的更新只能在命令行上进行,驾驶舱不支持。注:更改xsuaa实例后,需要将其再次绑定到应用程序。见第8节

背景:Jobscheduler无法读取应用程序的凭据(我指的是在将应用程序绑定到xsuaa时提供给应用程序的OAuth凭据)因此它无法发送预期的clientid相反,jobscheduler发送自己的clientid但是,这个clientid是错误的,所以它被拒绝了,除非你的应用向它声明了exlicit信任要指定信任,应用程序必须提供以下环境变量,该变量指定受信任的clientid。您可以指定clientid(您可以在jobscheduler的credentials部分找到它,绑定到您的应用程序),或者只指定一个星号(显然,不建议在生产场景中使用)上述环境变量可以在清单.yml文件:

环境变量也可以通过命令行或云驾驶舱进行设置注意:确保不要忘记所有括号。注意:也必须有方括号有关详细信息,请参见此处

在部署应用程序后,检查信任属性是否已正确到达云端是有意义的可以在云驾驶舱、应用程序的详细信息屏幕、用户提供的变量部分进行检查也可以使用命令行cf env yourAppName文件用户提供部分的结果:

SAP\U JWT\U TRUST\U ACL:[{"clientid":"*","identityzone":"*"}]

注意:请确保引号在那里

在教程3中,我们了解到创建和绑定服务实例的顺序是至关重要的,因为否则jobscheduler无法获得所需的范围分配。因此,调用您的端点将失败

而不是再次经历创建和绑定的过程,您只需执行I(我所称的)洗衣程序。我的意思是,只要解除服务实例的绑定,然后按要求的顺序再次绑定

这些是要在命令行上执行的命令请确保调整应用程序名称和服务实例名称

首先解除两个实例的绑定:cf unbind service yourApp yourXsuaa

cf unbind service yourApp yourJobscheduler

cf restage yourApp

然后绑定xsuaa:

cf bind service yourApp yourXsuaa

cf restage yourApp

最后绑定jobscheduler:

cf bind service yourApp yourJobscheduler

cf restage yourApp

(我承认命令量有点偏执……

)在Jobscheduler运行日志,检查错误消息:错误状态是401还是403?在403的情况下,大数据时代的特点,身份验证正常,但缺少授权。这将表明jobscheduler没有所需的作用域

请确保端点的行为符合预期。我的意思是,问题可能不在Jobscheduler上,52返现网,而在endpoint上要验证它,请使用REST客户机(例如Postman)调用端点URL您需要遵循OAuth流程,大数据数据库,在这里进行描述或在这里进行更详细的描述

当手动调用端点时,如前一节所述,云服务器服务器,您需要手动获取JWT令牌。一旦你有了它,你就可以解码了。然后查看scopes部分:所需的作用域是什么样子的?记住它并与Jobscheduler发送的令牌和作用域进行比较(请参阅下一节)请在此处找到所需说明

这是基本检查:Jobscheduler发送的JWT令牌是否包含所需的作用域?这可能不容易识别。要验证它,请在端点失败之前将其挂接到应用程序中。您需要访问"request"对象并获取"authorization"头。此头的值包含令牌,您可以对其进行解码检查所需范围是否存在看看这里是怎么做的节点.js

如果之前的方法不可行:将另一个端点添加到你的应用程序。没有框架。没有保护,云是什么,没有安全检查。端点只需读取jwt令牌

另外,在代码中还可以访问TRUST环境变量,并检查它是否包含有效的JSON。我的意思是,例如,如果引号丢失了,那么解析内容就会失败,因为无效的JSON

如果前面的方法不可能:增加相关组件的日志级别,如xssec或app router

xssec:

要增加日志级别,请将此变量添加到您的环境:

DEBUG=xssec:*

app router:

如果您涉及应用程序路由器,还可以将其配置为写入数百万个日志条目。E、 g.运行这个命令

cf set env yourAppName XS\u APP\u LOG\u LEVEL DEBUG

另外,要添加更多的环境变量:

REQUEST\u TRACE=TRUE

DEBUG=*

如果没有其他选项,您可以编写一个单独的应用程序,它除了读取JWT令牌之外什么都不做。类似上面的尝试,但这次是一个单独的应用程序这就是为什么这是最后一次尝试:一个单独的应用程序不是同一个应用程序,所以它可能没有真正的帮助。不过,您可以将它绑定到xsuaa和jobscheduler的同一个实例(记住顺序),就像您的高效应用程序

1一样。希望你不太熟悉节点.js,这样您就可以用以下文件创建一个有意义的应用程序应用程序的代码可以在附录中找到2部署三。创建作业4然后检查日志(jobscheduler运行日志和云平台日志)。在这里您可以找到有关Jobscheduler发送的JWT令牌的信息。

如果您发现错误或添加了增强功能:请让我们知道

注意:如果在显示作业计划程序仪表板时遇到问题:您正在使用旧的Microsoft浏览器吗?背景:较新的UI5版本(1.88版本)不再支持传统浏览器IE11和Edge legacy(Edge HTML)(更多信息)为了解决这个问题,你应该使用现代浏览器

附录:麻烦制造者应用程序文件

分享给小伙伴们:
本文标签: 域名备案高端网站建设报价少钱

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

签名: 验证码: 点击我更换图片

评论列表