15:11:28 #startmeeting keystone 15:11:28 Meeting started Tue Jul 5 15:11:28 2022 UTC and is due to finish in 60 minutes. The chair is dmendiza[m]. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:11:28 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:11:28 The meeting name has been set to 'keystone' 15:11:35 #topic Roll Call 15:11:55 Courtesy ping for admiyo, bbobrov, crisloma, d34dh0r53, dpar, dstanek, hrybacki, knikolla, lbragstad, lwanderley, kmalloc, rodrigods, samueldmq, ruan_he, wxy, sonuk, vishakha, Ajay, rafaelwe, xek 15:12:00 o/ 15:12:14 o/ sorry for being late 15:13:06 No worries, I was late too 😅 15:13:12 OK, let's get started 15:13:16 o/ 15:13:21 #topic Review Past Meeting Action Items 15:13:35 #link https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-06-28-15.00.html 15:13:41 I did not do the thing 15:13:48 * dmendiza[m] kicks can down the road again 15:14:02 #action dmendiza[m] to try to run keystone from a fresh clone 15:14:16 Moving on ... 15:14:22 #topic Liaison Updates 15:15:32 I don't have any updates 15:15:40 #topic Oauth 2.0 15:16:04 h_asahina around? 15:16:08 yes 15:16:15 Hi 15:16:20 Do you want to talk about your agenda topic? 15:16:32 yes 15:16:34 > The way of binding a client certificate to OAuth2.0 access token (h-asahina) 15:16:45 thanks that's my topic 15:17:08 I feel we have to confirm the way to bind a client certificate to an access token 15:17:37 I think we have two options 15:18:04 A) adding the information of cert (e.g., DN/thumbprint) to fernet/JWT token. 15:18:40 B) adding a new DB table consisting of the information of cert and corresponding token that is bound to the certificate 15:19:02 IMO, The straight forward way is A. 15:19:20 does the oauth mtls rfc require a bearer token be bound to a certificate? 15:20:24 I think so. rfc8705 defines that case. 15:20:50 https://datatracker.ietf.org/doc/html/rfc8705 15:21:59 ah, it's in the rfc title. "certificate-bound access tokens" 15:22:25 yeah 15:23:13 that's why I consider this as a fundamental requiremnt. 15:23:25 " 15:23:25 Mutual-TLS certificate-bound access tokens and mutual-TLS client authentication are distinct mechanisms that are complementary but don't necessarily need to be deployed or used together." 15:23:43 The rfc introduces both as separate mechanisms 15:24:24 that menas the client authentication and binding token to certificate are separated process. 15:26:02 in any case, to follow the rfc, token should be bound to the client certificate 15:26:58 i understand 15:27:05 for instance, during the token introspection, thumbprint of the certificate is used to confirm the authenticity of the client. 15:27:16 i'd definitely favor approach A 15:27:30 so do I 15:27:46 but to do so, we need to modify the token payload class 15:28:03 https://github.com/openstack/keystone/blob/master/keystone/token/token_formatters.py#L222-L225 15:28:19 Specifically, args of the token payload 15:28:57 because it is designed to only accept some predefined parameters. 15:29:12 yes 15:29:40 there many places calling this class, so we have to change many parts, is that okey? 15:29:58 I'm not sure that it is required per "Other methods of associating a 15:30:00 certificate with an access token are possible, per agreement by the 15:30:02 authorization server and the protected resource, but are beyond the 15:30:04 scope of this specification. 15:31:13 d34dh0r53: yeah, you can only choose to support mtls for authentication, without bounding. But my understanding is that h-asahina requires the full implementation of the RFC for NFV certification? 15:31:27 you can choose to only* 15:31:37 ahh, good point 15:32:35 what knikolla: said is right. we need to implement it. 15:33:07 ok 15:33:36 I think adding an additional parameters to token payload won't ruin the Keystone functionalities. 15:34:10 but if you can't accept it or if you have any alternative ideas, please let me know 15:34:28 I think I'm okay with it. But I'm not a cryptography expert. 15:34:37 no, I think I'm ok, I just got hung up on the word required 15:35:36 d34dh0r53: based on my prior experience reading OAuth 2.0 specs, nothing is required, everything is optional, and hence everything is a confusing mess of who supports what. 15:36:32 knikolla: lol, sounds about right 15:37:03 that's what's giving me a headache when writing specs. 15:37:38 netheir i'm expert for crypto 15:38:20 but, as you know, the fernet is encrypted by the secret key of Keystone, there's no impact on the security if we add fields to the payload 15:39:01 yeah, just need to be careful with not putting too much stuff in there due to increasing size. 15:39:20 sure 15:39:47 i guess it's not a concern here, since a thumbprint would be pretty small 15:40:18 yes. that's right. 15:40:40 okey. I'll go with the option A 15:41:36 Sounds good 15:41:39 btw, the dead line of spec is 14 July, right? can we make it? 15:42:23 https://releases.openstack.org/zed/schedule.html#z-2 15:42:26 I hope so. 🤞 We'll review the spec again on Friday for the Reviewathon 15:43:16 yeah, should be fine. worst case we may grant an exception/extensions. 15:43:28 great. thanks a lot. 15:43:46 OK, moving on 15:43:50 #topic Secure RBAC 15:44:13 I still feel a bit out of the loop on the latest SRBAC happenings. I'll have to catch up with gmann soon. 15:44:56 #link https://governance.openstack.org/tc/goals/selected/consistent-and-secure-rbac.html#z-release-timeline 15:45:04 We're still on the hook for: 15:45:04 my understanding is that we're keeping "project admin is global admin" and holding off on any system scope things. 15:45:13 > Keystone starts implementing support for manager across project, domain, and system scopes. 15:45:26 so we need to make sure our new policies work with project-admin for global admin operations 15:45:34 gotcha 15:45:36 I can work on that 15:45:49 and for actual project level admin operations, support manager 15:46:17 Yeah, I think the patch for the "manager" role was stalled on whether we're handling existing "manager" roles appropriately 15:46:32 I'll add that to my TODO list 15:47:00 I think a strongly worded release note and upgrade note should do the trick 15:47:20 Hehe, yeah, that should be the minimum 15:47:44 I was think maybe keystone-boostrap could throw an error if it finds an existing "manager" role? 15:48:00 I'd look at what we did for the "reader" role 15:48:02 when we introduced it 15:48:08 and just repeat the same 15:48:36 initially keystone didn't mandate any roles (except admin), and then we introduced member and reader 15:48:43 so the process that we followed then, can be the same 15:48:53 sounds good 15:50:09 i think throwing an error on the existence of a manager role is going to be hard, given that bootstrap is supposed to be idempotent 15:51:11 but also, i'm not sure that "bootstrap" is something that we tell people to run after their initial setup 15:53:27 Looks like we tell folks to `keystone-manage bootstrap` in the installation guides: 15:53:28 #link https://docs.openstack.org/keystone/latest/install/index.html 15:54:34 In any case, I'll do the needful to make sure we're on track for Keystone's SRBAC 15:55:48 Not sure we have enough time to talk about any other specs 15:55:54 So let's call it a meeting. 15:56:01 Thanks for joining, y'all. 15:56:10 #endmeeting