Tuesday, 2021-11-30

lbragstadjust a heads up - i have a conflict during todays meeting14:53
redrobot#startmeeting keystone15:00
opendevmeetMeeting started Tue Nov 30 15:00:41 2021 UTC and is due to finish in 60 minutes.  The chair is redrobot. Information about MeetBot at http://wiki.debian.org/MeetBot.15:00
opendevmeetUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.15:00
opendevmeetThe meeting name has been set to 'keystone'15:00
redrobot#topic Roll Call15:01
redrobotCourtesy ping for ayoung, bbobrov, crisloma, d34dh0r53, dpar, dstanek, gagehugo, hrybacki, knikolla, lamt, lbragstad, lwanderley, kmalloc, rodrigods, samueldmq, spilla, ruan_he, wxy, sonuk, vishakha,Ajay, rafaelweingartner, xek15:01
knikollao/15:02
redrobotHi knikolla15:02
redrobot#topic Review Past Meeting Action Items15:03
redrobot#link https://meetings.opendev.org/meetings/keystone/2021/keystone.2021-11-16-15.04.html15:03
redrobotWe didn't have any15:03
redrobot#topic Liaison Updates15:04
redrobotknikolla any updates for today?15:04
gagehugoo/15:04
gagehugoI am double booked today15:04
knikollano updates on my side, i've not had a lot of time to do things keystone-side. 15:06
redrobotgotcha, thanks knikolla15:06
redrobotgagehugo no worries, lbragstad is double booked as well15:07
redrobot#topic OAuth 2.015:07
redrobot#link https://review.opendev.org/c/openstack/keystone-specs/+/81315215:07
h_asahinao/15:08
redrobotI need to do some more OAuth learnin'.  I got some good resources from lbragstad, but then  I went on PTO and haven't had a chance to review the spec15:08
redrobothi h_asahina15:08
redroboth_asahina do you want to give an update on the spec?15:09
h_asahinaYes. I just replied to knikolla's comments, I'd like to discuss about it if you don't mind.15:09
redroboth_asahina go ahead15:10
h_asahinaknikolla suggestted that using the application creadentials and wrap it with OAuth2.0 client credentials APIs15:10
h_asahinaI basically agree with that idea, but I think I have to confirm some points.15:11
h_asahinaFirst of all, If we use the application credentials as a back-end of the OAuth2.0 client credentials, these two features share the same tables.15:12
h_asahinaIs that ok for keystone?15:12
redrobotknikolla ^^^15:13
knikollayeah, i think so15:14
h_asahinaok. that's good.15:15
h_asahinaYou also mentioned that the client credentials is not a feature to delegate users' roles to client.15:16
h_asahinaI think you're right but the application credentials is also such a kind of feature. Which do you think a better way, following the standard or using application credentials as you suggested.15:17
knikollagood question15:20
knikollai think application credentials are a better fit because they allow restricting the access of that specific credential to either a specific role, or a specific API call15:20
knikollasorry for the delay, i'm trying to collect my thoughts so i can give a clear answer15:22
h_asahinaIt's ok.15:22
h_asahinaI think so too. And I guess the standard doesn't prohibit that.15:23
knikollato conform to the standard you only need to make sure that you're able to authenticate using client credentials, and creation of the client credentials is not covered by the standard, is that correct? 15:24
h_asahinaYes. I think so.15:24
h_asahinaSo, it depends on the implementation of the authorization server.15:25
knikollayes, and the oauth 2.0 standard is very relaxed on that. 15:25
h_asahinayeah, and it is easy for me to use the existing application credentials.15:27
redrobotSounds like you have a path forward h_asahina15:27
redrobot?15:27
h_asahinasorry, what do you mean?15:29
redroboth_asahina you have an answer to your question?15:30
knikollai'll also respond to your comments on the review in more details15:31
h_asahinaI got it. Yes. I have my answer, but I'd like to confirm it.15:31
knikollait does feel a bit like a workaround15:31
knikollabut that is because oauth allows for clients which are not users, whereas for us, these credentials would be mapped to a user15:32
knikollaso there isn't an exact parallel15:32
knikollathe exact parallel would be with OAuth 2.0 Resource Owner Password Credentials grant15:32
knikollawhich uses the user's credential to authenticate a client on behalf of the user15:33
h_asahinastrictly speaking, we need a new feature that makes clients as a resource owner.15:34
knikollathe way i have usually understood clients in oauth, is that their credentials don't effectively give any authorization, except maybe allowing them to receive a token after authentication of a user.15:34
knikollayes, but in keystone not even a user is a resource owner. a project is. 15:36
knikollaand in oauth, the way a client accesses a user's resources is through that user's access token. and to get that access token, is why a client needs their client credentials (for the authorization code flow, or to refresh the token)15:37
h_asahinaLike you said, in Openstack, a user is not a resource owner, which means it is also impossible for clients to be a resource owner.15:41
h_asahinaAnd, someone has to create client credentials even the client credentials grant.15:42
h_asahinaThat one must be a user. So, naturally, workaround you mentioned is the most realistic way. right?15:43
knikollayeah, and in keystone even services (like tacker, nova, neutron, etc) are users. rather than being clients. 15:43
knikollaso to me it makes sense. 15:43
h_asahinaThanks, I wanted to save the consensus. And, interpretation about OAuth2.0 you described matches my interpretation.15:44
h_asahinaI have one more question.15:45
knikollaAnd I really like the idea of allowing normal keystone tokens to be treated like OAuth 2.0 tokens and validated in a conforming API. 15:45
knikollaBecause it opens the door for other applications to possibly use keystone as an authorization server. 15:45
h_asahinaI also agree with that.15:46
h_asahinaSo, I'll remove sentences that mention the token type from the spec.15:47
h_asahinaAlthough you asked about the OAuth2.0 use case in Tacker, I also want to hear what use cases you envision. 15:49
h_asahinain keystone.15:49
h_asahinaI mean your comments on the spec.15:50
knikollaYou mean what use we could have for this work outside of the Tacker use case? 15:51
h_asahinayes15:51
h_asahinaI feel I need to understand what you want OAuth2.0 to be to answer your comments correctly.15:53
redrobot5 minute warning :)15:54
knikollaFor example, if we add support for keystone to validate token using a oauth 2.0 token endpoint conforming API, we could have other applications use keystone to protect their API. And we could have keystonemiddleware check for the authorization header, rather than x-auth-token header, so other oauth services could use keystone as well. but also keystonemiddleware could use something besides keystone. 15:55
knikollaso you could possibly have keystonemiddleware use keycloak to validate tokens. 15:55
knikollaof course we're not there yet. but to me it's important that the steps we take, don't prevent us from moving in that general direction of being more interoperable outside of openstack. 15:56
h_asahinaok, I'll keep that in mind. I'd like to talk more but we don't have time.15:58
knikollaplease feel free to ping me on irc whenever you want to chat or have questions. or send me an email. 15:58
h_asahinaThank you. also, thank you for taking your time. I'd really appreaciate that.15:59
knikollathank you for your work too. 15:59
redrobotThanks for the great discussion y'all.15:59
redrobotThat's all the time we have for today.15:59
redrobot#endmeeting15:59
opendevmeetMeeting ended Tue Nov 30 15:59:58 2021 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)15:59
opendevmeetMinutes:        https://meetings.opendev.org/meetings/keystone/2021/keystone.2021-11-30-15.00.html15:59
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/keystone/2021/keystone.2021-11-30-15.00.txt15:59
opendevmeetLog:            https://meetings.opendev.org/meetings/keystone/2021/keystone.2021-11-30-15.00.log.html15:59
*** whoami-rajat__ is now known as whoami-rajat16:20
*** xek_ is now known as xek16:48
gmannlbragstad: can you please check my reply on this https://review.opendev.org/c/openstack/keystone/+/818624/comment/5b9c40fe_7f0e7826/18:30
gmannlbragstad: these warning tests verified in tests are different for oslo.policy <3.10 and >=3.10 that is why i used assertIn18:30
gmannI can make those assert explicitly as you suggested but that need to bump oslo.policy version to 3.10 in keystone because of this tests only18:32
lbragstadgmann ack - right now we're using 3.718:33
lbragstadbumping to 3.10 shouldn't be an issue i don't think18:33
gmannlbragstad: ok. once 818624 merge and requirement patch (https://review.opendev.org/c/openstack/requirements/+/815820) merge then I will push in keystone18:34
lbragstadgmann excellent - thanks!18:36
opendevreviewGhanshyam proposed openstack/keystone master: Explicitly check policy name in policy warning tests  https://review.opendev.org/c/openstack/keystone/+/81991619:08
gmannlbragstad: done ^^. can you approve this now so that we cna merge the requriement patch https://review.opendev.org/c/openstack/keystone/+/81862419:10
lbragstadgmann done19:11
gmannlbragstad: thanks 19:18
opendevreviewMerged openstack/keystone master: Fix oslo policy warning assert in unit tests  https://review.opendev.org/c/openstack/keystone/+/81862420:34

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