为什么一定要手动干预,oauth2.0为什么不能全部走服务器api调用?
cnmade opened this issue · 15 comments
ping @JoeCqupt
为什么一定要手动干预,oauth2.0为什么不能全部走服务器api调用?
为什么一定要人工去点授权,这一步是阻碍全部自动化的硬伤。
就不能用更友好的方式,实现自动化api授权码?
你们学一下github, google, aws, aliyun, 这些厂商的成熟方案啊。
他们一般是生成一个app key, 一个token, 就可以安全调用api接口。
没你们这麽多破事。。
你好!感谢对baiduads-sdk的关注和使用!
当前百度营销API支持的OAuth 2.0授权方式,适用于开发者开发应用提供给第三方推广用户使用,该应用通过API操作的推广资源,拥有者是推广用户,而不是开发者或者这个应用,所以在使用过程中需要推广用户的显示授权才能访问这些资源(截图红框中的过程)。
当前实现的OAuth 2.0授权方式对于自操作场景(开发者既是应用开发方,也是推广用户)授权可以优化,需要实现OAuth 2.0的Client Credentials 模式去支持,我们也在计划升级中。
你说的自动化需求场景,如果是我说的自操作场景,请耐心等待我们的升级;如果是其他场景,请提供详细的说明。
另外,github, google, aws, aliyun等业界厂商在认证授权上,有两种常用的方式:HMAC(AK/SK)和OAuth 2.0。HMAC适用于M2M场景(Machine 2 Machine),解决的是API访问时的身份认证,各大厂商访问云上资源时都采用这种方式;OAuth 2.0适用于U2M(User 2 Machine)场景,主要解决访问授权的问题,开发者开发应用给用户使用都采用这种方式,比如淘宝卖家工具服务等。 百度营销API采用OAuth 2.0主要是解决访问推广资源时的授权问题。
你说的“生成一个app key,一个token就可以安全调用api接口”,如果是指HMAC方式,那么不太适合百度营销API的使用场景。
我来支持一下官方, "人工去点授权" 跟 "人工复制AK/SK",不都是要人工吗?
开发者没有推广账户所有权,要账户管理员同意授权,这是必然的。就算是同一家公司,开发者不也得先找推广的同学要个key之类的,不然想改就改了。
这套oAuth不只百度在用,抖音、广点通之类也都在用
我想了一下,这位同学应该是吐槽必须对外有一个接收的网址接口,这种对外接口确实不是每个开发方都有对外,例如数据部门的
2022年底都要实现oath授权,之前旧的不行了。这的确是一个大问题,必须使用在线操作授权后才能继续下面的操作,这样只能让程序一直更新token,中间要是中断,必须人工再授权一次,这的确相当大的不方便。
这个可能是为了安全考虑,但实际开发中,这种安全只是浪费人力,增加开发难度。一般的开发者哪有懂这么多的。
这种改变的确增加了难度。 无法通过python脚本直接获取accesstoken,必须人工打开授权链接,获得authcode才可以。
希望后续尽快增加其它授权方式。
我猜测当前反馈的核心问题可能是:accessToken过期后需要人工操作获取新的accessToken;期望是能实现accessToken自动续期,或者过期后能通过程序自动化获取新的accessToken。
当前OAuth流程的正常情况下,开发者实现accessToken自动更新(程序自动化,无需人工)的过程如下:
- 【人工操作】获取accessToken 和 refreshToken。accessToken有效期1天,refreshToken有效期30天
- 当accessToken过期后,使用refreshToken接口换取新的 accessToken和refreshToken
- 每次使用新的refreshToken,循环第2步
当且仅当refreshToken过期/失效的情况下,需要人工介入获取新的accessToken 和 refreshToken,场景如下:
- 访问的推广账号解除授权:推广用户人工操作
- OAuth应用授权重置:开发者后台人工操作
- accessToken过期30天内没有调用refreshToken接口换取新的
- 营销API后台人工干预导致过期/失效:概率极小,一般基于安全风险控制的目的进行
针对当前反馈的体验问题,SDK提供方会尽快进行一些优化来提升开发者体验,同时也需要开发者进行一些协助:
- 【开发者】若出现refreshToken非预期的过期/失效,可以带上必要的请求信息在如流交流群(群号:5995216)或者在商业开发者中心 进行问题反馈,我们会有值班人进行排查跟进
- 【SDK提供方】将当前OAuth流程下accessToken自动更新过程内嵌到SDK中,在refreshToken不过期的情况下,尽量让开发者不感知accessToken的自动换新过程。
互联网是有记忆的。你有本事别删,让网友评论,我攻击了谁?我冒犯了谁?
leadscloud 该同学所描述的场景,正是我们日常的痛苦所在。 你们不反省自己能不能为用户提供更优质的服务,还在这里高傲的指责用户,有什么意义?
能让你们提升业绩吗?能让用户解放双手吗?
一点意义都没有。
对于广告主自身就是开发者的情况,会有个优化,这个优化在排期去做(涉及百度账户系统的升级,百度账户系统升级需要较长的开发周期),这个优化是类似“生成一个app key,一个token就可以安全调用api接口”的效果。leadscloud 该同学所描述的场景,正是我们日常的痛苦所在。 你们不反省自己能不能为用户提供更优质的服务,还在这里高傲的指责用户,有什么意义? 能让你们提升业绩吗?能让用户解放双手吗? 一点意义都没有。
互联网是有记忆的。你有本事别删,让网友评论,我攻击了谁?我冒犯了谁?
没问题,可以不删除『百度太蠢』『垃圾』字样的文字。到底太蠢和垃圾指的是谁,大家自行理解。
@cnmade @leadscloud @Violam Oauth增加了自授权模式,请参考https://dev2.baidu.com/content?sceneType=0&pageId=104467&nodeId=1355&subhead= 的 『OAuth2.0对接有没有简单方式?』章节的说明。
非常感谢,相当牛逼