防止在App/ui层弹出授权(CAP开发)

2020-08-14 13:04发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,团队

在3层CAP应用程序(app,srv,db)中实现授权时,在将UI层与Service层无缝集成时,我面临某些问题。 步骤如下:

  1. 创建了安全配置文件(xs-security.json):
 {
   " xsappname":" MYAPP",
   "租户模式":"专用",
   "范围":[
     {
       " name":" $ XSAPPNAME.admin",
       " description":"管理员"
     }
   ],
   "属性":[],
   "角色模板":[
     {
       " name":" admin",
       " description":"生成",
       "范围参考":[
         " $ XSAPPNAME.admin"
       ],
       "属性引用":[]
     }
   ]
 } 

2。 创建一个UAA实例并提供上述安全配置文件作为参数

3。 将UAA绑定到MTA中的服务和应用程序层

4。 在子帐户中创建了角色和角色集合,并将其分配给我的用户

5。 在app/ui层的xs-app.json文件中,提供以下路由,并将authenticationMethod设置为Route:

 {
  " source":" ^/(。*)$",
  " target":" $ 1",
  " destination":" srv_api",
  "范围": {
  " GET":[" $ XSAPPNAME.admin"]
  },
  " authenticationType":" xsuaa",
  " csrfProtection":false
  } 

6。 在我的服务层中,提供了cds服务,该服务需要前面步骤中指定的管理员授权:
service AdminService @(requires:'admin'){....}

7。 当我访问我的应用程序时,尽管该应用程序在您首次登录时成功验证了您的身份,但该服务调用会提示以下弹出窗口:

此外,尽管我使用SAP ID登录,但在服务层中,该用户仍显示为"匿名"。

我的问题是:

1。 如何防止上述弹出窗口并允许已登录的角色和作用域自动调用服务

2。 为什么用户在我的srv层中显示为"匿名"。 我是否应该指定UAA以外的其他连接来集成我的应用程序和srv层

请求您的输入,

感谢与问候,

Harish

(55.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,团队

在3层CAP应用程序(app,srv,db)中实现授权时,在将UI层与Service层无缝集成时,我面临某些问题。 步骤如下:

  1. 创建了安全配置文件(xs-security.json):
 {
   " xsappname":" MYAPP",
   "租户模式":"专用",
   "范围":[
     {
       " name":" $ XSAPPNAME.admin",
       " description":"管理员"
     }
   ],
   "属性":[],
   "角色模板":[
     {
       " name":" admin",
       " description":"生成",
       "范围参考":[
         " $ XSAPPNAME.admin"
       ],
       "属性引用":[]
     }
   ]
 } 

2。 创建一个UAA实例并提供上述安全配置文件作为参数

3。 将UAA绑定到MTA中的服务和应用程序层

4。 在子帐户中创建了角色和角色集合,并将其分配给我的用户

5。 在app/ui层的xs-app.json文件中,提供以下路由,并将authenticationMethod设置为Route:

 {
  " source":" ^/(。*)$",
  " target":" $ 1",
  " destination":" srv_api",
  "范围": {
  " GET":[" $ XSAPPNAME.admin"]
  },
  " authenticationType":" xsuaa",
  " csrfProtection":false
  } 

6。 在我的服务层中,提供了cds服务,该服务需要前面步骤中指定的管理员授权:
service AdminService @(requires:'admin'){....}

7。 当我访问我的应用程序时,尽管该应用程序在您首次登录时成功验证了您的身份,但该服务调用会提示以下弹出窗口:

此外,尽管我使用SAP ID登录,但在服务层中,该用户仍显示为"匿名"。

我的问题是:

1。 如何防止上述弹出窗口并允许已登录的角色和作用域自动调用服务

2。 为什么用户在我的srv层中显示为"匿名"。 我是否应该指定UAA以外的其他连接来集成我的应用程序和srv层

请求您的输入,

感谢与问候,

Harish

(55.0 kB)
付费偷看设置
发送
3条回答
shere_lin
1楼-- · 2020-08-14 13:51

请尝试让我的 bookshop-demo 应用程序正常工作并将其应用于您的应用程序。

独立观察员
2楼-- · 2020-08-14 14:00

如果您将身份验证令牌转发到 srv 模块

 -名称:bookshop-demo-app
     类型:nodejs
     路径:应用
     参数:
       记忆体:256M
       磁盘配额:1024M
     要求:
      -名称:bookshop-demo-uaa
      -名称:srv_api
        组:目的地
        特性:
           forwardAuthToken:true#<-将JWT令牌从应用路由器转发到srv模块所需
           strictSSL:假
           名称:srv_api
           网址:〜{url} 
小灯塔
3楼-- · 2020-08-14 13:45

嗨,哈里斯,

除了 Sebastian Esch 的答案之外,还请检查您应用的身份验证设置。 开发和生产环境中的身份验证策略有不同的默认值(请参见 https://cap。 cloud.sap/docs/node.js/authentication )。 在WebIDE中运行意味着您处于开发环境中(如果您没有专门设置为生产环境)。

最佳,
塞巴斯蒂安

一周热门 更多>