15:02:06 #startmeeting keystone 15:02:06 Meeting started Tue Aug 9 15:02:06 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:02:06 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:02:06 The meeting name has been set to 'keystone' 15:02:12 #topic Roll Call 15:02:33 o/ 15:02:41 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:02:49 Hi Grzegorz Grasza ! 15:02:56 o/ 15:03:27 o/ 15:03:30 o/ 15:04:14 HI everyone! 15:04:21 OK, let's get started ... 15:04:27 #topic Review Past Meeting Action Items 15:04:53 #link https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-08-02-15.00.html 15:04:56 We didn't havea ny 15:04:59 *have any 15:05:15 Moving on ... 15:05:19 #topic Liaison Updates 15:05:34 No updates I can think of right now ... 🤔 15:05:52 #topic OAuth 2.0 15:05:56 HI h_asahina ! 15:06:00 hi 15:06:08 Any updates for this week? 15:06:37 i'd like to discuss about mapping between DN and Keystone user's attributes 15:06:45 https://review.opendev.org/c/openstack/keystone-specs/+/843765 15:07:37 I replied your comment 15:08:39 you suggested mapping UID and DC to Keystone username and domain_name 15:08:49 and enforce that rule to CA 15:09:31 but I think we can't always enfoce that rule to CA 15:09:55 maybe CA want to use these fields for another purpose 15:10:28 the border of tenant might be not domain_name, but project_id 15:11:17 so, if we try to map DN fields to Keystone users' attributes, we have to add configuration for such mapping 15:11:19 Yeah, User IDs are unique 15:13:48 I suppose we could make that configurable ... 15:14:52 but adding such configuration makes it a little bit complicated 15:15:09 We could tie this up to federation mappings, I guess. 15:15:25 This way the operator decides which attributes to use for what. 15:16:01 x509 seems to do the same https://docs.openstack.org/keystone/latest/admin/configure_tokenless_x509.html#create-a-map 15:16:01 that makes sense, but to be honest I feel storing entire DN to credentials API is much simpler. 15:20:21 do you think it's possible to use https://docs.openstack.org/keystone/latest/admin/configure_tokenless_x509.html#create-a-map directly for this purpose? knikolla: 15:20:31 Simpler, but you have to add each users DN to credentials API, which seems like an unnecessary step. 15:20:58 I think it shouldn't be hard to extend the same code used for that to look more like OAuth 15:21:50 if we don't use credentials API, we still have to add a user. 15:22:37 Yes 15:23:08 But with that you can also support the use case where presenting the certificate to keystone is what registers the user 15:23:19 like with federation. though i don't think that's a requirement or desirable for you. 15:25:43 I mean from the user's view, making a user and making a credential is not different. 15:27:57 maybe I don't understand motivation behind using User API 15:28:14 the user can't make the credential, he has to request one from the CA 15:30:46 could please elaborate on that? 15:31:05 I understand it's like federation 15:31:24 so if we say `credential` that should be managed by CA 15:31:57 but what user have to do actually is to register its DN (or part of DN) to Keystone 15:32:00 For a user to authenticate to keystone using mtls (using the proposed credentials api) these are the required steps. 1) operator registers user 2) user gets a certificate from CA that operator sets up (PKI) 3) user uploads credential received from CA 4) user authenticates 15:32:43 step 3 runs into a chicken and egg issue with the user not having registered a trusted cert yet, therefore being unable to authenticate (especially if the entire of keystone is protected from mTLS) 15:33:15 so it makes sense to not require step 3, since the certificate is already coming from a trusted CA 15:34:25 does this make sense so far? 15:35:14 I see. user who register credential itself has to be authenticated by CA, but if we use credentials api it's not possible. 15:35:43 or I should say it's contradicted 15:36:56 if we use User API, that means all user will be authenticated by CA, so such contradiction won't occur. 15:37:00 am I correct? 15:38:53 yes, there are multiple way to not require uploading a credential for each user 15:39:14 they involve some mechanism to map a cert's attributes to a user 15:39:27 This is already done for all federation mechanisms via federation mappings 15:41:18 It might also be of interest to see how LDAP maps into a user 15:41:30 (which is a different method from federation) 15:41:34 let me confirm. I think we can authenticate users with their id/password even if we use mutual TLS. 15:42:06 I mean user can authenticate without registering their cert in advance. 15:42:30 and then register the cert corresponding to the OAuth2.0 client to credentials API 15:43:02 What would happen if another user registers the same thumbprint? 15:43:04 I think it's possible to ignore a chiken and egg issue you mentioned by the above step. but meaningless 15:43:06 right? 15:45:50 You'd need to provide a mechanism for verifying that the user is in possession of the private part to prevent DN squatting 15:46:03 So it's not exactly as easy as just registering the public part 15:47:08 yes. in the above step untrusted user can register thumbprint 15:47:33 that makes checking DN itself meaningless 15:49:47 from my point of view, the mapping mechanism with federation mappings makes for sense and is already used by other cert/assertion/saml authentication methods 15:50:12 okey. we'll try to transplant the mapping of federation to our case. 15:50:15 we also have an API now for pre-creating federated users https://specs.openstack.org/openstack/keystone-specs/specs/keystone/ussuri/support-federated-attr.html 15:51:50 is this something like feature that we can reuse existing users for federation? 15:52:04 yes 15:52:46 you can patch an already existing user to be a federated user 15:53:12 I see. i'm not sure it suitable for our use case now, but will check it. thanks. 15:54:53 Getting close to time, y'all. 15:55:10 okey. I'll update spec based on today's discussion. thanks. 15:55:20 Thank you h_asahina 15:55:25 #topic Open Discussion 15:55:40 any < 5 min topic y'all would like to talk about? 15:57:46 if there's no topic, i'd like to remind keystonemiddleware Zuul error I reported before. there're some patches this erros appear. 15:57:54 https://review.opendev.org/c/openstack/keystonemiddleware/+/851319 15:58:01 https://review.opendev.org/c/openstack/keystonemiddleware/+/830737 15:58:13 the erros: 15:58:15 File "/home/zuul/src/opendev.org/openstack/keystonemiddleware/keystonemiddleware/tests/unit/audit/test_logging_notifier.py", line 36, in test_api_request_no_messaging 15:58:16 call_args = log.call_args_list[0][0] 15:58:18 IndexError: list index out of range 15:58:36 yep, will quickly +2 once I see CI happy. 15:58:41 Thanks! 15:58:58 got it. thanks 16:00:35 I'll keep an eye out for those too. 16:00:40 And that's all the time we have for the meeting. 16:00:50 Thanks for joining, y'all 16:00:51 #endmeeting