点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的社区, 我试图在开发过程...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的社区, 我试图在开发过程...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
亲爱的社区,
我试图在开发过程中在本地运行CAP/Node.js应用时通过SCP的XSUAA服务进行身份验证。
我已按照 https://cap.cloud.sap/docs/上的说明进行操作 node.js/authentication 将基于JWT的身份验证构建到我的CAP应用程序中。 当我将应用程序部署到SCP时,身份验证可以正常进行。 但是,当我尝试在本地运行相同的应用程序并在default-env.json中提供XSUAA服务时,服务组件会在控制台日志中返回403,且登录尝试失败。
为了测试这一点,我从头开始构建了一个准系统应用程序。 您可以在此处查看实施:
https://github.com/manuelseeger/cap-auth-xsuaa
当部署到SCP审判中时,这工作得很好。 我已将CA_Admin范围分配给分配给我的用户的角色集合。 当我访问SCP中的approuter组件时,它将转发我登录并在受保护的服务可用之后。
当我在本地尝试相同操作时,approuter还会将我转发到SCP登录屏幕。 JWT令牌按预期返回。 但是,服务组件返回403。
服务日志:
应用路由器的日志:
在如上所述记录JWT令牌之前,应用路由器会在日志中打印以下内容:
#2.0#2020 03 17 13:06:18:854#+ 01:00#INFO#/Auth/OAuth2 ###### k7vupaze #### c46AFZAVSeyC34rlCLyuB-pGfQubl3NM ####### k7vupaze#PLAIN ## req.url:/# #2.0#2020 03 17 13:06:18:855#+ 01:00#INFO#/Auth/OAuth2 ###### k7vupaze ##### c46AFZAVSeyC34rlCLyuB-pGfQubl3NM ####### k7vupaze#PLAIN ## sending 客户端重定向到https://s0015861181trial.authentication.eu10.hana.ondemand.com/oauth/authorize?response_type=code&client_id=sb-cap-auth-xsuaa!t38354&redirect_uri=http%3A%2F%2Flocalhost%3A5000 %2Flogin%2Fcallback# #2.0#2020 03 17 13:06:18:855#+ 01:00#INFO#/Auth/OAuth2 ###### k7vupaze #### c46AFZAVSeyC34rlCLyuB-pGfQubl3NM ###### k7vupaze#PLAIN ## x -forwarded-path标头:undefined#
我已从SCP上应用程序的approuter组件复制了VCAP_SERVICES环境变量,并将其复制到CAP应用程序的根目录和app/目录中的default-env.json中。
我的default-env.json看起来像这样:
{ "目的地":[ { " name":" srv-binding", " url":" http://localhost:4004", " forwardAuthToken":是, " strictSSL":false } ], " VCAP_SERVICES":{ " xsuaa":[ { " binding_name":null, "凭据":{ " apiurl":" https://api.authentication.eu10.hana.ondemand.com", " clientid":" sb-cap-auth-xsuaa!t38354", " clientsecret":"省略", " identityzone":" s0015861181trial", " identityzoneid":" cfeeccea-a2c7-4284-b65f-ab1f13f02699", " sburl":" https://internal-xsuaa.authentication.eu10.hana.ondemand.com", " tenantid":" cfeeccea-a2c7-4284-b65f-ab1f13f02699", " tenantmode":"专用", " uaadomain":" authentication.eu10.hana.ondemand.com", " url":" https://s0015861181trial.authentication.eu10.hana.ondemand.com", " verificationkey":" ----- BEGIN PUBLIC KEY ----- [省略] ----- END PUBLIC KEY -----", " xsappname":" cap-auth-xsuaa!t38354" }, " instance_name":" cap-auth-xsuaa-uaa", " label":" xsuaa", " name":" cap-auth-xsuaa-uaa", "计划":"申请", "提供者":null, " syslog_drain_url":null, "标签":[ " xsuaa" ], " volume_mounts":[] } ] } }
这似乎可以解决问题,因为我从SCP获得登录屏幕,并且可以登录并接收我的JWToken。 但是本地运行的服务只是不接受它,并继续返回403。
您知道如何使XSUAA身份验证在本地工作吗? 我已经为此工作了好几天了,似乎没有办法解决问题。
最诚挚的问候,
Manuel
(38.6 kB)
嗨,曼努埃尔,
您正在使用哪个@ sap/cds版本?
似乎不包括范围。 我不知道为什么与Cloud Foundry相比有区别。 您是否尝试过使用环境变量`NODE_ENV = production`?
感谢和问候,
大卫
一周热门 更多>