『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: mobster

[技术探讨] HA升级到0.76后全面采用oAuth2认证,自建认证网关解决API访问

  [复制链接]

5

主题

183

帖子

1388

积分

论坛积极会员

Real

积分
1388
金钱
1200
HASS币
0
发表于 2018-8-25 19:19:46 | 显示全部楼层
拜读大神文章。学习下。还是73.1 又得更新了
回复

使用道具 举报

0

主题

114

帖子

3665

积分

论坛元老

Rank: 8Rank: 8

积分
3665
金钱
3551
HASS币
0
发表于 2018-8-25 20:24:42 来自手机 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

0

主题

90

帖子

495

积分

中级会员

Rank: 3Rank: 3

积分
495
金钱
405
HASS币
0
发表于 2018-8-25 20:26:23 | 显示全部楼层
看都看不懂系列...
回复

使用道具 举报

1

主题

34

帖子

228

积分

中级会员

Rank: 3Rank: 3

积分
228
金钱
194
HASS币
0
发表于 2018-8-26 12:12:42 | 显示全部楼层
看看
回复

使用道具 举报

2

主题

291

帖子

1530

积分

论坛积极会员

积分
1530
金钱
1239
HASS币
0
发表于 2018-8-26 22:42:19 | 显示全部楼层

及时的文章啊
回复

使用道具 举报

2

主题

291

帖子

1530

积分

论坛积极会员

积分
1530
金钱
1239
HASS币
0
发表于 2018-8-26 23:23:31 | 显示全部楼层
state(必填) : clientrequesttoken 或 clientrequestapi     不知道在哪里啊??

网页显示,Something went wrong。
日志就是这样
[homeassistant.components.http.view] Serving /auth/login_flow/33f220b6da774032a104d7d79b0b0fef to 10.0.1.11 (auth: False)
回复

使用道具 举报

1

主题

32

帖子

221

积分

论坛技术达人

积分
221
金钱
189
HASS币
0
发表于 2018-8-27 14:21:45 | 显示全部楼层
我们在盖墙,你在这教大家挖洞,服了。

想要永久Access Token,基本功能都在了,分分钟解决,只是界面还没做好而已。

以下是屠龙秘籍,学会的人使用起来要慎重:
第零步,正常登陆,选择保存登陆信息,打开Browser console,找到LocalStorage,你可以看到tokens,其中包含了一个refresh_token
第一步,打开配置目录下的 .storage 目录里的auth文件,找到你想要修改的refresh_token,把access_token_expiration从缺省的1800(30分钟)修改为315360000(10年),重启HASS
第二步,注销,重新登陆,选择保存登陆信息,再找到LocalStorage,你可以看到refresh_token还是那个refresh_token,但是access_token已经变了,这就是你要的10年有效的access_token,把这串字符保存好。
第三步,回到auth文件,把刚才的改动改回去,重启HASS。

以上,你已经拿到了等同于永久有效的access token,想让他失效,也很简单,去auth文件里把对应的refresh_token删除即可。

最后,以上传授的屠龙技可能把你的HASS搞瘫,auth文件没什么校验,格式搞坏了,系统就启动不了。所以,任何问题不要来问我,自己去解决。
回复

使用道具 举报

8

主题

97

帖子

841

积分

论坛技术达人

积分
841
金钱
739
HASS币
30
 楼主| 发表于 2018-8-27 15:16:05 | 显示全部楼层
狮心哥哥 发表于 2018-8-27 14:21
我们在盖墙,你在这教大家挖洞,服了。

想要永久Access Token,基本功能都在了,分分钟解决,只是界面还没 ...

我承认这个做法确实属于挖洞行为,并不值得鼓励教大家去这么做,存在风险的也未知

但是,rest api访问的问题,如何处理,官方并没有给出任何指导,而且我提供的这个token请求并没有破坏原先任何的内容,而你提供的屠龙宝典对HA的认证却存在着破坏性的风险

帖子里我也说了,或许官方提供永久keyid的自助开放才是解决rest api的终点?
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2018-8-27 15:51:31 | 显示全部楼层
本帖最后由 neroxps 于 2018-8-27 15:53 编辑

感谢 awarecan 大佬莅临本站指导工作

也感谢您构建的 auth 系统为 homeassistant 作出安全更新

我觉得目前这个问题就是矛与盾的问题。目前的 auth 系统暂时没有办法让类似 tasker 这种软件继续使用 homeassistant 的 reset api(目前保留了    - type: legacy_api_password 的方法,但是如果以后被去掉的话~)

不知道日后针对这种场景,homeassistant以后会以什么方法进行授权?


其实如果能通过homeassistant获得一个受限的token,这样可能会好很多。(不懂homeassistant架构,不太清楚目前是否能做到。)例如保留 api_key 的操作日志(好像 0.76 的更新已经在部署这一点?)

据我所知,hassio 有一个 api_proxy 模块,目前应该也还是依赖旧的api授权模式?日后这些依赖 api_key 使用的程序将如何进行授权?




Nero
回复

使用道具 举报

9

主题

534

帖子

4530

积分

元老级技术达人

积分
4530
金钱
3986
HASS币
60
发表于 2018-8-27 18:43:07 | 显示全部楼层
感谢分享,应该可以用到
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 04:27 , Processed in 0.074229 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表