Tuesday, 2022-04-26

*** dviroel|rover|afk is now known as dviroel|out00:16
*** dviroel|out is now known as dviroel|rover11:09
*** dasm|off is now known as dasm12:04
nitesh1Hi All, I've a query on Openstack keyston LDAP intergration. Can some one help me on this ?12:44
nitesh1I've a installed Openstack and LDAP1 on server1. I've LDAP2 on server2. Can i integrate both LDAP1 and LDAP2 for the Openstack keystone backend12:45
nitesh1Hi All, I've a query on Openstack LDAP intergration. Can some one help me on this ?  I've a installed Openstack and LDAP1 on server1. I've LDAP2 on server2. Can i integrate both LDAP1 and LDAP2 for the Openstack keystone backend ?13:18
admiyokey14:57
admiyokey14:57
admiyokey14:57
admiyoKEYSTONE!14:57
dmendiza[m]#startmeeting keystone15:02
opendevmeetMeeting started Tue Apr 26 15:02:15 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
opendevmeetUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.15:02
opendevmeetThe meeting name has been set to 'keystone'15:02
knikollao/15:02
admiyoO/15:02
h-asahinao/15:02
dmendiza[m]#topic Roll Call15:02
dmendiza[m]Hi everyone!15:03
knikollalong time no see admiyo :) 15:03
dmendiza[m]Doing double duty right now, as I am listening in on the poicy popup meeting15:03
admiyopoicy!15:03
admiyoHeyo.  Just popped in to see whazzup15:03
knikollathere's a policy popup meeting? 15:04
dmendiza[m]yeah15:04
dmendiza[m]#link https://meetpad.opendev.org/secure-rbac15:04
dmendiza[m]started at 1430 UTC15:04
dmendiza[m]Courtesy ping for https://meetpad.opendev.org/secure-rbac15:04
dmendiza[m]oops15:04
dmendiza[m]Courtesy ping for admiyo, bbobrov, crisloma, d34dh0r53, dpar, dstanek, hrybacki, knikolla, lbragstad, lwanderley, kmalloc, rodrigods, samueldmq, ruan_he, wxy, sonuk, vishakha, Ajay, rafaelwe15:05
admiyoA topic near and dear to my heart15:05
*** lbragstad8 is now known as lbragstad15:05
admiyowould be better if I could hear in the secure RBAC meeting...15:05
dmendiza[m]We can listenin in and postpone this until the policy meeting wraps up.15:07
admiyoI can't hear anything there.  15:09
dmendiza[m]admiyo: Firefox?15:09
knikollai don't think there has been one time using meetpad/jitsi that everyone could hear everyone15:10
dmendiza[m]Yeah, I've had issues with Firefox and Jitsi quite a bit15:12
alistarleHi, is there any Keystone meeting currently in progress ?15:15
admiyoderailed atm15:15
dmendiza[m]yeah, we're listening in on the Policy meeting in Meetpad15:16
dmendiza[m]We'll resume the keystone meeting shortly15:17
dmendiza[m]OK, resuming15:21
admiyoAll done there15:21
dmendiza[m]#topic Review Past Meeting Action Items15:21
dmendiza[m]> dmendiza[m] to look into updating the keystone-stable-maint group15:21
dmendiza[m]I did not do this yet, but I will do it this week for sure15:21
dmendiza[m]I'll remove anyone who has not reviewed anything in the last 90 days.15:21
dmendiza[m]Then notify the ML15:21
dmendiza[m]oh oops15:22
dmendiza[m]I meant that for this:15:22
dmendiza[m]> dmendiza[m] to clean up core reviewers group, notify ML15:22
dmendiza[m]but I also am not on the maintenance team yet15:22
dmendiza[m]so I need to sort that hout15:22
dmendiza[m]*that out15:22
dmendiza[m]> dmendiza[m] to set up a doodle poll to review OAuth 2.0 patches15:22
dmendiza[m]and lastly, h_asahina helped out with this15:23
*** xek_ is now known as xek15:23
admiyoso...I have not, and it is because the only things I've been notified about are already broken.  Is there really so little activity these days?15:23
knikollapretty much15:23
dmendiza[m]Yeah, pretty low activity so far15:23
admiyook15:23
dmendiza[m]We definitely need help with bugsquashing though15:23
admiyoI mean, I'm not a core reviewer anymore, so no risk to me15:24
dmendiza[m]We definitely want your input on reviews15:25
admiyowould help if you could build keystone...but we'll get to that in the agenda15:25
dmendiza[m]#link https://doodle.com/meeting/participate/id/b68Yl49e/vote15:26
dmendiza[m]^^^ this is the doodle that h_asahina set up for us15:26
dmendiza[m]looking like Thursday might be the best day for me15:26
dmendiza[m]knikolla you probably haven't had a chance to find it in your email15:27
dmendiza[m]but it would be good if we could get together on Thursday... if not we may need to kick to next week15:27
h-asahinaYes. If you all not are not avalable this week, I'll create the doodle pool again.15:28
knikollafilled out the doodle, thanks! 15:28
dmendiza[m]admiyo: how's your OAuth chops?15:28
h-asahinathanks! knikolla:15:28
admiyoNot bad15:28
admiyoAre we looking to replace Keystone tokens with OAuth2?15:29
knikollawe sort of already have, keystone supports jwt tokens15:29
knikollabut not the oauth 2.0 api to emit and validate them15:29
admiyoSo we can get reid of keystone altogether15:29
admiyo:)15:30
dmendiza[m]Doodle is for reviewing https://review.opendev.org/q/topic:bp%252Foauth2-client-credentials-ext15:30
knikollaget rid of keystone???? i want it to be the center of the world and support all oauth 2.0 and openid connect clients, mwhahahaha15:30
admiyokeystonemiddleware suports jwt?15:30
knikollahttps://specs.openstack.org/openstack/keystone-specs/specs/keystone/stein/json-web-tokens.html15:31
admiyoIf keystonemiddleware can handle JWT, can we have it talk to a source otherthan keystone?15:33
admiyoI realize there is all the service catalog implied in the token validation call, ignore that for a moment15:33
admiyoif a company already has oauth2.0 set up, could they use that to validate when talking to openstack services?15:34
knikollathe latter, the nfv clients depend on oauth 2.015:34
knikollaso we're enabling that, and allowing oauth 2.0 clients to talk to openstack services. 15:35
knikollagetting openstack services to use a different authorization servers is a very far stretch goal that isn't an immediate priority. 15:36
dmendiza[m]OK, I've responded to the doodle as well15:37
dmendiza[m]OK, let's keep it moving since we're on a crunch today15:38
h-asahinathanks, dmendiza: looks Thu 9:00 am would be better.15:38
dmendiza[m]#topic Security RBAC15:38
admiyoI am trying to understand what the actual priority is here; I assume  keystonemiddleware based servers still need to call to Keystone for JWT validation15:38
h-asahinaBTW, we submitted BP for keystonemidleware to communicate with an external authorization server: https://blueprints.launchpad.net/keystone/+spec/enhance-oauth2-interoperability15:39
knikollaadmiyo: https://specs.openstack.org/openstack/keystone-specs/specs/keystone/yoga/oauth2-client-credentials-ext.html15:39
h-asahinafor admiyo:15:39
admiyoCool. I'll read up15:39
dmendiza[m]Awesome ... hopefully you can join on Thursday admiyo 15:40
dmendiza[m]OK, moving on15:40
dmendiza[m]For SRBAC we did just meet for the Policy Pop-up15:40
dmendiza[m]looks like the next one will be next week15:40
dmendiza[m]at 1400 UTC, so hopefully it won't bleed into our meeting again.15:40
dmendiza[m]Hopefully we'll get to a decision re: Heat, but also about the "service" role15:41
admiyodmendiza[m], did my little speech there at the end make any sense?  I can try to summarize15:41
dmendiza[m]Sure, go ahead15:41
admiyoOK....lets assume for a second that we  have no clue about what goes on in our customer organizations15:41
dmendiza[m]that's not hard15:42
admiyoinstead of trying to force roles on them, lets assume that, at a start, they already have something15:42
admiyowhat we need to do it to map workflows to roles15:42
admiyoa workflow is a set of API calls15:42
admiyoand, possible more granular than that, but lets not quibble just yet15:42
admiyoso there is a 3 tier architecture:  role->workflow->resource15:43
admiyoif you lock role->resource, you cannot let end users modify things properly15:43
admiyoso, we take every API and give it its own role...(stick with me here)15:43
knikollahttps://specs.openstack.org/openstack/keystone-specs/specs/keystone/train/capabilities-app-creds.html15:43
admiyoand use the role assignement inference rules 15:44
knikollawe already support restricting access to a set of api calls for a client15:44
admiyoyeah, but not of breaking the API apart15:44
admiyothats only for app creds, not for end users15:45
admiyocan app creds be re-delegated?15:46
admiyoand re-broken down into finer grained things?15:46
knikollano15:46
admiyook, so that capaiblity should move up the stack15:46
admiyowe had a spec long ago about unified delegation, uising the sdame mechnism for role assignm,ents, trusts, an app-creds15:46
admiyoif each "access-rule" in app creds are treated like a role, we can build them up to workflows, etc15:47
admiyowe have most of the pieces we need already15:47
admiyodo app-creds have wildcards?15:47
admiyothey do, right?15:48
knikollayeah15:48
admiyoso an app cred is kinda the abstraction we need.  Trust do this, too, but app-creds gets down to the URL, which is really what we need15:48
admiyoso...if we can unify the concept of access rule and role, we have a very flexible RBAC structure15:49
admiyoso,  then we use inference rules (already implemented) to go admin->reader->{15:49
admiyo                "path": "/v2.0/metrics",15:49
admiyo                "method": "GET"15:49
admiyo            },15:49
admiyowhere -> means "implies"15:50
admiyothe issue, of course, is that RBAC is enforced at the end service side.15:50
admiyoSo they check "role == admin"  as opposed to "token allows GET '/v2.0/metrics' "15:51
admiyoknikolla, am I giving you PTSD flashbacks yet?  We presented on this together, right?15:51
admiyohttps://www.openstack.org/videos/summits/boston-2017/per-api-role-based-access-control15:52
dmendiza[m]Running low on time, y'all (and I gotta run at the top of the hour)15:52
admiyoOK, one last issue, not related15:52
admiyoI tired to build and run Keystone last night15:52
admiyoERROR: could not install deps [.[bandit], -chttps://releases.openstack.org/constraints/upper/master, -r/opt/openstack/keystone/test-requirements.txt, .[ldap,memcache,mongodb]]; v = InvocationError("/opt/openstack/keystone/.tox/pep8/bin/python -m pip install '.[bandit]' -chttps://releases.openstack.org/constraints/upper/master -r/opt/openstack/keystone/test-requirements.txt '.[ldap,memcache,mongodb]'", 1)15:52
admiyobrand new clone, Ubuntu 21 and Fedora 35.  Same issue15:53
dmendiza[m]via tox or ?15:53
admiyothat was tox pep8 run15:53
admiyosame thing for tox -e py...15:53
knikollaadmiyo: yeah, i was looking for the spec15:53
dmendiza[m]gotcha... I can look into it but probably not until Friday15:53
admiyoI think it might be a upper constraint mechanism thing?15:54
admiyono bandit in https://releases.openstack.org/constraints/upper/master15:54
admiyoCan anyone build/run?  This seems like breakage across the board15:55
dmendiza[m]trying tox -e pep815:56
dmendiza[m]Well, deps installed for me, but I got an actual pep8 failure15:57
dmendiza[m]looks like it might be a python 3.10 issue on my end15:58
dmendiza[m]admiyo: maybe you're missing some bindeps?15:58
dmendiza[m]All out of time for today....  I'll pin the rest of the topics for next week.15:59
dmendiza[m]Thanks for joining, y'all.15:59
dmendiza[m]#endmeeting15:59
opendevmeetMeeting ended Tue Apr 26 15:59:55 2022 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)15:59
opendevmeetMinutes:        https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-04-26-15.02.html15:59
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-04-26-15.02.txt15:59
opendevmeetLog:            https://meetings.opendev.org/meetings/keystone/2022/keystone.2022-04-26-15.02.log.html15:59
alistarleHey folks, I waited the open discussion to ask a question, is it still possible ?16:00
admiyofire away16:01
admiyowon't be on the log, but people can answer16:01
alistarleIt appear that the mapping configuration in federation only setup project in the same domain as the user, but why not giving the ability to give role to project in another domain, like the default one (it is possible for group assignment by example), following this doc: https://docs.openstack.org/keystone/latest/admin/federation/mapping_combinations.html16:01
admiyoalistarle, 2 difference domains16:02
alistarleI can make a patch for that, but I just want to be sure there is no blocker anywhere :)16:02
admiyouser domain is the domain around the username16:02
admiyoproject domain is the one you care about here16:02
admiyouse the mapping to put the user into a group 16:02
alistarleExactly16:02
alistarleYep, in fact a user can be mapped to a group in the default domain, but not on a project in the default domain16:02
admiyouse a group based role assignment 16:03
alistarleYes but group need operator to handle the role assignment by itself, not by the mapping engine16:03
admiyo?16:03
alistarleOperator will need to give role to the group outside of the federation process16:04
admiyotrue16:04
alistarleAs if I map a user to a project, I can, directly in the mapping, assign a role to the project16:04
alistarleIt is very convenient, but only work if the project is in the same domain as the user16:04
admiyoshould not be the case16:05
admiyo"local": [16:05
admiyo        {16:05
admiyo            "user": {#first#}16:05
admiyo        },16:05
admiyo        {16:05
admiyo            "projects": [...]16:05
admiyo        },16:05
alistarleWhat about allowing to specify the domain of the project, like we do for the domain of the group, directly in the mapping ?16:05
admiyoso project can be by ide, or should accept the domain qualifier16:06
alistarleFor group the json is                {16:06
alistarle                    "group": {16:06
alistarle                        "name": "Finance",16:06
alistarle                        "domain": {16:06
alistarle                            "id": "6fe767"16:06
alistarle                        }16:06
alistarle                    }16:06
alistarle                }16:06
alistarleYep, I think project should allow the domain qualifer, like the group16:06
alistarleAccording to this doc at least : https://docs.openstack.org/keystone/latest/admin/federation/mapping_combinations.html16:08
*** dviroel|rover is now known as dviroel|rover|lunch16:11
admiyoalistarle, https://opendev.org/openstack/keystone/src/branch/master/keystone/federation/utils.py#L5816:11
admiyoI think that is what we have to work with16:11
admiyodoes not have a domain qualified on it, and I think I know why16:12
admiyothe mapping really should not be doing role assignments16:12
admiyoits really an adapter for identity providers, which know nothing about roles.  Only users and groups of users.  Of course, roles really are groups of users (see my earlies implementation LDAP for bugs)16:13
admiyoalistarle, sorry.  I'm assuming you are not looking to implement project_domain_name qualifiers in the mapping engine16:14
alistarleOh I see, but the doc is really oriented about role assignment, and I think it is still a cool feature, to map directly user attributes to roles in openstack16:14
admiyohow are you manaing the mapping files?16:15
admiyomanaging16:15
alistarleIt can be automated by the Keystone operator I think, and the IDP operator is able to automatically assign role in openstack16:16
alistarleWith having to perform more API call16:16
alistarle*Without16:16
alistarleYou think it will be a bad idea if a develop a patch to just allow specifying a project_domain_name in the mapping schema ?16:17
alistarleIts only look like an improvement of an already existing feature16:17
admiyoDo you have multiple Idps?  "Projects will be created within the domain associated with the Identity Provider."16:18
admiyoyou could make the IdP domain the default domain16:18
admiyodo you use multiple domains inside Keystone?16:18
alistarleYes we provide IDP as a service as a public cloud provider16:20
admiyoSo you might not want to make it possible for an IdP provider to map their useres into any an all projects in the Keystone server....16:21
admiyohence the limitation to the domain of the IdP16:22
admiyodmendiza[m],  sudo apt install `awk '/dpkg/ {print $1}'  bindep.txt `16:22
alistarleYes but it should work also in a transitionning state, when old project are still present in default domain16:23
admiyouse groups only for those16:23
*** blarnath is now known as d34dh0r5316:23
alistarlethat's why allowing mapping to give roles on project in default domain make the ability to keep existing local users and federated users to have access to same resources16:23
admiyodefault domain should not really be used in multi-domain setups16:25
alistarleHmm, group is still a lot of orchestration to develop by the operator16:25
alistarleBut I see your point16:25
admiyocrossing domain boundaries needs to be managed by RBAC.  THere is no RBAC enforcement on the mapping API.  So it would be very dangerous16:26
alistarleMaybe I can check what is the size of the patch to support that, and in a worth case support it locally16:26
admiyoI mean, there is at the top level, "can you update the mapping?"  but not on the product of the rules16:26
alistarleYes I agree mapping can be very powerful and dangerous, but it is already the case by giving the admin role even in the same domain16:26
admiyoour goal is to make things less dangerous, not more so16:27
admiyoknikolla, how do I do basic things again?  Ubuntu 21 defautls to pytho3.9, but tox does 3.7 and I get ERROR: InterpreterNotFound: python3.716:28
admiyoalistarle, I would focus on migrating the projects out of the Default domain.  That is something you can do without code changes16:29
alistarleYeah indeed we achieve that by update the field in the database16:29
alistarleLet's do that then, thank you for your help :)16:30
admiyoOr, conversely, automate the creation of the groups and group role assignments16:30
admiyothat last one would be the least impact for your end users.  If you want to say IdP X can always assign to default domain projects, create one group per project (or 2 if you want to distinguish admin from owner) and then mapping goes to those groups 16:31
admiyotox -epy39   "what's the worst that can happen..."16:38
admiyo tox -epy39 ran fine17:01
*** dviroel|rover|lunch is now known as dviroel|rover17:02
gmanndmendiza[m]: need your +1 on this governance patch, https://review.opendev.org/c/openstack/governance/+/83894017:26
dmendiza[m]gmann: ack, looking17:27
gmannthanks 17:30
gmannAdded details about next RBAC call on tuesday 3rd May:  https://wiki.openstack.org/wiki/Consistent_and_Secure_Default_Policies_Popup_Team#Meeting19:01
*** dasm is now known as dasm|off21:40
*** dviroel|rover is now known as dviroel|rover|out22:56

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