RBAC - Role Based Access Control (Users & Groups rights)

I see this is super high in Feature requests. Personaly as HAAS is getting significantly better every day, I miss this more and more every day.

Is this being developed? I assumed there will be updated roadmap due to state of the open home, but while I watched it, I dont see there was any roadmap update at all.

1 Like

It’s likely part of the topic of security, and because of how deep into the system they would have to go to properly implement it, they can’t give us an exact timeframe for it being added. One thing that they have to do is make it work as it does currently because a lot of long term users won’t want to reconfigure their systems to be able to have it work as it currently does.

I’m surprised this hasn’t been implimented. Everyone has multiple applications for this especially in a family enviroment.

1 Like

I’m not; most smart people would rather the developers took their time and did it right than just throw something together to satisfy a very vocal group of users on the forums and github. And personally, even with family in the house, I wouldn’t have a need for this, because I wouldn’t be giving anyone else access directly to the web interface.

1 Like

I think this idea that the developers are just “taking their time to get it right” is a red herring. That isn’t really a realistic mindset with something like RBAC because the more stuff you keep adding, the more stuff you need to change later if you do implement RBAC.

Hate it break it to everyone, but RBAC isn’t coming. At least nothing that will withstand more than casual atttempts to circumvent it. Security needs to be designed in from the beginning or it’s a massive massive undertaking that will stop all other feature work AND break existing stuff. It’s painful, and even then, it’s going to take iteration and time. I just don’t see this happening for HA which favors “add a bunch of crap really quickly and move on to the next thing” style development (which is great for a FOSS project! HA is awesome). There wouldn’t be nearly as many contributions if every change needed a security evaluation. Software engineering is frankly pretty easy if you don’t need to deal with securtity. Security multiplies the cost of a feature by 5-10x, easily. At least if you do it right, which again, needs to happen from the beginning.

Hate to be the bearer of bad news but HA is far more insecure than you could have imagined. All of the credentials you’ve ever typed in to log into an integration are stored on disk unencrypted. There is also no sandboxing between integrations or addons or anything, so any integration can straight up read credentials from any other integration. There is obviously no restriction on sending web requests (you’ve never had to approve an integration talking to server XYZ) so someone could pretty trivially write an integration that is useful, build it up to gain popularity, add some innocuous looking code that extracts session tokens, api tokens, usernames / passwords, etc + sends it off to a cloud host (but keep it deactivated), then finally turn it on and watch the passwords stream in.

Yes, it will probably be noticed relatively quickly because some people do monitor this stuff. But if they purposefully weeded out intelligent people in a way that kept the popularity limited (eg., a combination daily bible verse and inspirational Trump quote lovelace card), it could theoretically take quite a while. Fewer people using it means less likelihood any of them will be monitoring outgoing traffic. And limiting the audience to a group of people who are less likely to think critically about things is a classic strategy to scam people (this is why spam and scams will have obvious typos, they help filter out people who won’t fall for the scam anyway).

Does this mean those AirBnB guests can access all of this info? Darn tootin’! Could some integration/add-on/HACS component already be doing this today. Obviously. I haven’t mentioned it because I don’t want my own stuff to get hacked, but that’s not really a good security strategy. Someone is going to figure this out.

Obviously the devs are well aware of this. I can’t imagine any scenario in which you could meaningfully contribute code to HA and not be aware of this. It’s pretty obvious, go look for yourself. There is a folder called /config. In this folder is a hidden folder. Within that folder is all of your internal HA data.

If you can install add-ons, just install the VS Code add-on, enable ‘show hidden files’ in the settings and you can browse right to it and view everything.

I know the topic is RBAC, but this is clearly related. For one thing, it doesn’t really make much sense to implement RBAC on top of a system like this. The security issues here are far more fundamental because they don’t require any local access and the stakes are a bit higher than deleting automations or whatever. 2nd, because RBAC also doesn’t exist, any LOCAL user can ALSO extract your credentials, trivially. I have no doubt they could even extract a session token they could put on their own computer that would allow them to auth with your HA instance and fully extract whatever data they want, or install a backdoor.

The limit here is the capability of the attacker, the relative unpopularity of HA (techie people know what it is, but few outside of that) and the fact that no one really cares about your data. Home Assistant itself is built on the premise of “always trust everything automatically all the time” with a few random efforts at reining that in. Any meaningful change seems pretty unlikely (basically 0% chance) because it would require rewriting ANYTHING that depends on those assumptions. And that type of work just isn’t fun. Ain’t gonna happen.

EDIT: I will say, it’s a bit of hyperbole to say ALL of your credentials for EVERYTHING are stored there. They obviously should never need to store your username/password, that’s what session tokens are for. But I do know my iCloud creds were right there, plain as day. And they will need to store a token of some sort or the integration would not integrate very well, so this is somewhat unavoidable. I mean, this is pretty much the worst possible way to do it, but the tokens do need to live somewhere.

Make sure you’re using MFA and unique passwords on every single site, buckos.

1 Like