15:00:58 #startmeeting keystone 15:00:58 Meeting started Tue Aug 2 15:00:58 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:00:58 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:00:58 The meeting name has been set to 'keystone' 15:01:11 #topic Roll Call 15:01:18 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:01:27 as usual the agenda is over here: 15:01:30 #link https://etherpad.opendev.org/p/keystone-weekly-meeting 15:03:12 o/ 15:03:23 o/ 15:04:12 OK, let's get started 15:04:13 #topic Review Past Meeting Action Items 15:04:22 #link https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-07-26-15.00.html 15:04:27 We didn't have any... 15:04:37 #topic Liaison Updates 15:04:42 I don't have any updates this week... 15:04:54 #topic Secure RBAC 15:05:08 I tried to join the pop-up meeting today, but I don't think it actually happened. 15:06:02 No updates on the "manager" role or the "service" role specs ... 15:06:37 #topic OAuth 2.0 15:06:42 h_asahina: any updates this week? 15:06:53 I've updated spec. 15:07:04 https://review.opendev.org/c/openstack/keystone-specs/+/843765 15:07:41 please kindly review it again. 15:08:06 ah, xek has already replied. 15:08:15 thanks 15:08:55 Also, I'd like to ask that can Yoga OAuth2.0 patch be mereged in Zed? 15:09:23 o/ 15:09:28 Hi knikolla 15:10:05 h_asahina: we did review the spec last Friday, but I don't think knikolla has had a chance to leave feedback. 15:10:19 One thing that was not clear was how much of the mTLS is going to be done by the web server 15:10:38 Keystone is typically deployed behind Apache 15:10:43 so the mTLS heavy-lifting could be done by Apache 15:11:08 In my understanding, verification of trust chain is done by apache. 15:11:08 Apache can be configured to provide the cert in a header 15:12:10 what we have to do is just checking whether cert matches to one that stored in DB and binding the cert to a issued OAuth2.0 token. 15:12:30 OK, cool, I think we're all on the same page then 15:13:24 that's good. knikolla: if you have additional comments I can further revise the spec. 15:13:26 h_asahina: maybe it would be good to update the spec to clarify that cert chain validation will be done by the web server 15:13:45 that makes sense. I'll do that. 15:14:47 > can Yoga OAuth2.0 patch be mereged in Zed? 15:14:55 I'm not sure what patch you're talking about? 15:15:33 https://review.opendev.org/c/openstack/keystoneauth/+/830734 15:15:39 https://review.opendev.org/c/openstack/keystonemiddleware/+/830737 15:15:46 https://review.opendev.org/c/openstack/keystone/+/830739 15:16:06 The last one already has +1. 15:16:12 sorry, didn't have time to leave the feedback that we discussed on Friday 15:16:42 it basically boils down to: if we are leaving the verification to be done by Apache, and the CA is trusted, we don't need to use the credentials API at all. 15:16:54 We can get this to work similarly to how federation works 15:17:21 If apache lets the user in to a specific endpoint, then the user is issued a token 15:17:36 All we have to do is make that endpoint look and work like OAuth 15:18:13 The token that that endpoint issues can be bound to the thumbprint of the cert used to issue it 15:18:39 but apache can't confirm that the cert has DN that registered to Keystone in advance. 15:18:55 if you control the CA you control what certs it issues. 15:19:26 You can have apache limit it to a specific group of DNs, I think. 15:20:06 I see. we can limit who can get certs via CA and also apache is capable to limit it with DN. 15:20:17 that you meant? 15:20:19 yes 15:21:04 to be honest, we don't know that apache's feature. but if it's possible that's much easier to implement. 15:21:12 This makes it significantly easier to implement, yes 15:21:36 we'll check apache's option 15:21:49 and if we can confirm it works, i'll revise the spec. 15:21:50 Take a look at how federation works 15:22:05 okey. thank you. 15:22:18 thanks for the info. 15:22:38 The user has to get through apache and go to a specific endpoint. In that endpoint, keystone loads up the environment variables that apache adds and maps the user to a user. 15:22:53 And issues a token. 15:23:18 the endpoin you mentioned is token issuing endpoin? 15:23:21 doesn't the RFE have a requirement to register the DN or other identifier first? 15:23:32 I don't have it on hand 15:23:43 no, it's the federation endpoint 15:23:50 under OS-FEDERATION 15:24:55 https://docs.openstack.org/keystone/latest/admin/federation/introduction.html 15:25:08 xek: good question. 15:25:32 but I don't think the API specifices the mechanism to register the DNs 15:25:33 https://www.rfc-editor.org/rfc/rfc8705.html#section-2.1.2 15:26:07 it references the OAuth 2.0 Dynamic Client Registration Protocol which I'm not familiar with 15:28:05 in section 2.1 15:28:07 maybe it's only for the self-signed certs 15:28:09 The PKI (public key infrastructure) method of mutual-TLS OAuth client 15:28:11 authentication adheres to the way in which X.509 certificates are 15:28:13 traditionally used for authentication. It relies on a validated 15:28:15 certificate chain [RFC5280] and a single subject distinguished name 15:28:17 (DN) or a single subject alternative name (SAN) to authenticate the 15:28:19 client.Y 15:28:50 h_asahina: is conformance to the dynamic client registration RFC a requirement for ETSI NFV? 15:29:08 no 15:29:33 but the above is rfc8705 15:30:56 ok, so as I understand it, the registration would be only required for self signed certs 15:31:16 I think the spec requires that the DN of the cert be "expected" and match to only 1 client. 15:31:33 We can make those guarantees. 15:32:00 by apache? 15:32:40 "The client is successfully authenticated if the subject information in the certificate matches the single expected subject configured or registered for that particular client" 15:33:12 I think it means that one client can only have one subject name and no others 15:33:43 Would it make sense to require the DN or SAN to match the username in Keystone? 🤔 15:34:06 I think that's how we make that guarantee, yes. 15:34:13 The presence of the user signifies "registration" 15:35:20 in that case, an OAuth2.0 client means a openstack user, right? 15:36:15 yes 15:36:25 need to confirm that maches to our usecase 15:36:43 maybe we need to separate users and `OAuth clients` 15:37:03 I'm really hesitant to do that 15:37:16 Nothing else in OpenStack will ever use OAuth clients 15:37:25 and we will be introducing an entire API just for this use case 15:37:50 yeah, I remember what you said before 15:38:05 OpenStack doesn't have features to manage clients, but uses. 15:38:13 /uses/users/ 15:38:22 yeah 15:39:00 I'll see what we can do. 15:39:26 I feel your suggestion will work for our usecase. 15:39:48 intuitively 15:40:14 Great, let me know. 15:40:36 got it. I'll reply on spec or next meeting. 15:40:46 I'm just trying to fulfill your use case in the path that creates the least amount of maintenance and work for the team. 15:41:03 In a lot of cases, we already have similar mechanisms that can be adapted, like here. 15:41:28 When that is no longer the case, we can start considering bigger changes 15:41:41 I see. thank you for you suggestion. 15:42:07 okey. I'd like to confirm Yoga patches. 15:42:12 can I do that? 15:43:08 I mean Yoga patches status. 15:43:40 h_asahina: I was confused because they're not "yoga" patches. They're patches for the "master" branch, not "stable/yoga" 15:43:54 I'll add them to the reivews on Friday 15:43:57 for the Reviewathon 15:44:20 when they merge they will merge to "master" branch, which is currently Zed 15:44:38 you're right. sorry. 15:45:49 thank you for considering add them to reviewathon 15:46:13 at least, we want to merge them within Zed cycle 15:46:33 even if merging mTLS OAuth2.0 is not possible. 15:47:17 sorry for taking a lot of time, but I'd like to confirm one more thing quickly. 15:47:33 regarding mTLS patches, keystonemiddleware will depend on keystoneauth1, i.e., mTLS keystonemiddleware will not work properly if it is merged before keystoneauth1 is merged. 15:47:50 In other words, it will have Cross repository dependencies 15:48:20 and we're planing to use `Depends-On:` to handle it 15:48:40 Do you have any other options? 15:49:19 Depends-On seems fine in this case 15:49:50 that what you want to hear. thanks. 15:50:19 that's all from my side. thank you for valuable adivce and discussion. 15:51:44 Thanks, h_asahina 15:51:48 Ok, we've only got a few minutes left 15:51:53 #topic Open Discussion 15:51:59 Anything else y'all want to talk about? 15:53:43 I was kind of wondering on proggress about the bug https://bugs.launchpad.net/keystone/+bug/1959674 Did anybody had a chance to dig into why application_Credentials do such weird things or this can be jsut safely dropped? 15:54:51 noonedeadpunk: I don't think anyone has looked into it 15:55:12 jsut fix is super trivial from the first sight 15:55:38 but I'm really afraid about just doing it as I can imagine some intention behind 15:55:39 We'd be happy to review a patch if you want to make one 15:56:48 ok, gotcha then will push it soon 15:57:17 Thanks, noonedeadpunk 15:57:41 Cool, that's about all the time we have for today 15:57:46 thanks for joining, eveyrone! 15:57:52 #endmeeting