Tuesday, 2022-07-05

*** dviroel|biab is now known as dviroel11:29
*** dasm|off is now known as dasm13:15
*** Guest3528 is now known as h-asahina15:03
*** dviroel is now known as dviroel|lunch15:07
dmendiza[m]Hey!15:10
dmendiza[m]Sorry y'all, in a video call for work and lost track of time15:11
dmendiza[m]#startmeeting keystone15:11
opendevmeetMeeting 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
opendevmeetUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.15:11
opendevmeetThe meeting name has been set to 'keystone'15:11
dmendiza[m]#topic Roll Call15:11
dmendiza[m]Courtesy ping for admiyo, bbobrov, crisloma, d34dh0r53, dpar, dstanek, hrybacki, knikolla, lbragstad, lwanderley, kmalloc, rodrigods, samueldmq, ruan_he, wxy, sonuk, vishakha, Ajay, rafaelwe, xek15:11
knikollao/15:12
d34dh0r53o/ sorry for being late15:12
dmendiza[m]No worries, I was late too 😅15:13
dmendiza[m]OK, let's get started15:13
h-asahinao/15:13
dmendiza[m]#topic Review Past Meeting Action Items15:13
dmendiza[m]#link https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-06-28-15.00.html15:13
dmendiza[m]I did not do the thing 15:13
* dmendiza[m] kicks can down the road again15:13
dmendiza[m]#action dmendiza[m] to try to run keystone from a fresh clone15:14
dmendiza[m]Moving on ...15:14
dmendiza[m]#topic Liaison Updates15:14
dmendiza[m]I don't have any updates15:15
dmendiza[m]#topic Oauth 2.015:15
dmendiza[m]h_asahina around?15:16
h-asahinayes15:16
dmendiza[m]Hi15:16
dmendiza[m]Do you want to talk about your agenda topic?15:16
h-asahinayes15:16
dmendiza[m]>     The way of binding a client certificate to OAuth2.0 access token (h-asahina)15:16
h-asahinathanks that's my topic15:16
h-asahinaI feel we have to confirm the way to bind a client certificate to an access token15:17
h-asahinaI think we have two options15:17
h-asahinaA) adding the information of cert (e.g., DN/thumbprint) to fernet/JWT token.15:18
h-asahinaB) adding a new DB table consisting of the information of cert and corresponding token that is bound to the certificate15:18
h-asahinaIMO, The straight forward way is A.15:19
knikolladoes the oauth mtls rfc require a bearer token be bound to a certificate?15:19
h-asahinaI think so. rfc8705 defines that case.15:20
h-asahinahttps://datatracker.ietf.org/doc/html/rfc870515:20
knikollaah, it's in the rfc title. "certificate-bound access tokens"15:21
h-asahinayeah15:22
h-asahinathat's why I consider this as a fundamental requiremnt.15:23
knikolla"15:23
knikollaMutual-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
knikollaThe rfc introduces both as separate mechanisms15:23
h-asahinathat menas the client authentication and binding token to certificate are separated process.15:24
h-asahinain any case, to follow the rfc, token should be bound to the client certificate15:26
knikollai understand15:26
h-asahinafor instance, during the token introspection, thumbprint of the certificate is used to confirm the authenticity of the client.15:27
knikollai'd definitely favor approach A15:27
h-asahinaso do I15:27
h-asahinabut to do so, we need to modify the token payload class15:27
h-asahinahttps://github.com/openstack/keystone/blob/master/keystone/token/token_formatters.py#L222-L22515:28
h-asahinaSpecifically, args of the token payload15:28
h-asahinabecause it is designed to only accept some predefined parameters.15:28
knikollayes15:29
h-asahinathere many places calling this class, so we have to change many parts, is that okey?15:29
d34dh0r53I'm not sure that it is required per "Other methods of associating a15:29
d34dh0r53   certificate with an access token are possible, per agreement by the15:30
d34dh0r53   authorization server and the protected resource, but are beyond the15:30
d34dh0r53   scope of this specification.15:30
knikollad34dh0r53: 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
knikollayou can choose to only*15:31
d34dh0r53ahh, good point15:31
h-asahinawhat knikolla: said is right. we need to implement it.15:32
d34dh0r53ok15:33
h-asahinaI think adding an additional parameters to token payload won't ruin the Keystone functionalities.15:33
h-asahinabut if you can't accept it or if you have any alternative ideas, please let me know15:34
knikollaI think I'm okay with it. But I'm not a cryptography expert. 15:34
d34dh0r53no, I think I'm ok, I just got hung up on the word required15:34
knikollad34dh0r53: 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:35
d34dh0r53knikolla: lol, sounds about right15:36
h-asahinathat's what's giving me a headache when writing specs.15:37
h-asahinanetheir i'm expert for crypto15:37
h-asahinabut, 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 payload15:38
knikollayeah, just need to be careful with not putting too much stuff in there due to increasing size. 15:39
h-asahinasure15:39
knikollai guess it's not a concern here, since a thumbprint would be pretty small15:39
h-asahinayes. that's right.15:40
h-asahinaokey. I'll go with the option A15:40
dmendiza[m]Sounds good15:41
h-asahinabtw, the dead line of spec is 14 July, right? can we make it?15:41
h-asahinahttps://releases.openstack.org/zed/schedule.html#z-215:42
dmendiza[m]I hope so. 🤞  We'll review the spec again on Friday for the Reviewathon15:42
knikollayeah, should be fine. worst case we may grant an exception/extensions. 15:43
h-asahinagreat. thanks a lot.15:43
dmendiza[m]OK, moving on15:43
dmendiza[m]#topic Secure RBAC15:43
dmendiza[m]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
dmendiza[m]#link https://governance.openstack.org/tc/goals/selected/consistent-and-secure-rbac.html#z-release-timeline15:44
dmendiza[m]We're still on the hook for:15:45
knikollamy understanding is that we're keeping "project admin is global admin" and holding off on any system scope things.15:45
dmendiza[m]> Keystone starts implementing support for manager across project, domain, and system scopes. 15:45
knikollaso we need to make sure our new policies work with project-admin for global admin operations15:45
dmendiza[m]gotcha15:45
dmendiza[m]I can work on that15:45
knikollaand for actual project level admin operations, support manager15:45
dmendiza[m]Yeah, I think the patch for the "manager" role was stalled on whether we're handling existing "manager" roles appropriately15:46
dmendiza[m]I'll add that to my TODO list15:46
knikollaI think a strongly worded release note and upgrade note should do the trick15:47
dmendiza[m]Hehe, yeah, that should be the minimum15:47
dmendiza[m]I was think maybe keystone-boostrap could throw an error if it finds an existing "manager" role?15:47
knikollaI'd look at what we did for the "reader" role15:48
knikollawhen we introduced it15:48
knikollaand just repeat the same 15:48
knikollainitially keystone didn't mandate any roles (except admin), and then we introduced member and reader15:48
knikollaso the process that we followed then, can be the same15:48
dmendiza[m]sounds good15:48
knikollai think throwing an error on the existence of a manager role is going to be hard, given that bootstrap is supposed to be idempotent15:50
knikollabut also, i'm not sure that "bootstrap" is something that we tell people to run after their initial setup15:51
dmendiza[m]Looks like we tell folks to `keystone-manage bootstrap` in the installation guides:15:53
dmendiza[m]#link https://docs.openstack.org/keystone/latest/install/index.html15:53
dmendiza[m]In any case, I'll do the needful to make sure we're on track for Keystone's SRBAC15:54
dmendiza[m]Not sure we have enough time to talk about any other specs15:55
dmendiza[m]So let's call it a meeting.15:55
dmendiza[m]Thanks for joining, y'all.15:56
dmendiza[m]#endmeeting15:56
opendevmeetMeeting ended Tue Jul  5 15:56:10 2022 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)15:56
opendevmeetMinutes:        https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-07-05-15.11.html15:56
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-07-05-15.11.txt15:56
opendevmeetLog:            https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-07-05-15.11.log.html15:56
*** dviroel|lunch is now known as dviroel16:22
*** dviroel is now known as dviroel|afk21:59
*** dasm is now known as dasm|off22:02
*** dviroel|afk is now known as dviroel23:27
*** dviroel is now known as dviroel|out23:50

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!