18:01:30 #startmeeting keystone 18:01:31 Meeting started Tue Mar 11 18:01:30 2014 UTC and is due to finish in 60 minutes. The chair is dolphm. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:01:32 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:01:33 dolphm: hi 18:01:34 The meeting name has been set to 'keystone' 18:01:36 hi 18:01:44 #topic Feature freeze 18:02:07 and string freeze 18:02:09 \o 18:02:12 so, overview of how feature freeze works for those that are new or just haven't been impacted in the past... 18:02:18 bknudson: ++ and string freeze! 18:02:19 \o/ 18:02:42 what's that string freeze? 18:02:45 feature-y changes (especially those tracked against blueprints or wishlist bugs) get -2'd until the master branch is re-opened for juno development 18:03:32 and the master branch stays frozen until the list of release-blocking bugs is fully Fix Committed: https://launchpad.net/keystone/+milestone/icehouse-rc1 18:03:49 So everyone swtich from Server work to client work 18:03:49 string freeze: https://wiki.openstack.org/wiki/StringFreeze 18:04:02 dolphm: thanks. 18:04:11 switch. 18:04:16 no freeze on the client code? 18:04:28 ayoung: ideally, everyone is focused on fixing bugs in the service so we have a stable release 18:04:39 string freeze basically gives the translation folks some time to catch up with string translations as they will appear in a stable/* release 18:04:40 Hehe 18:05:06 dolphm: OK 18:05:49 #topic Review blocked feature-y changes 18:06:09 so there are inevitably bug fixes that appear feature-y for whatever reason 18:06:16 i have two on the agenda i wanted to review 18:07:12 if it says LDAP in the review, it is almost certainly a Bug fix. If you see one with out a bugID, -2 it with "file a bug" 18:07:18 if we deem these changes to be incredibly safe, and we have a generally overwhelming desire to land them in icehouse, we can do so 18:07:31 first up... 18:07:31 #link https://review.openstack.org/#/c/76568/ 18:07:34 dstanek, afaik you can play with client all you want, but try to fix server side bugs 18:08:13 this one is implementing previously NotImplemented methods in the assignment ldap driver 18:08:32 the unimplemented methods in the ldap backend are scary to me. 18:08:32 hmmm 18:08:41 actually i think that's a lie -- but it's introducing substantial functionality to the ldap assignment driver 18:09:16 this one doesn't look safe to me at first glance, but i wanted to raise it here in case anyone wanted to strongly advocate for it 18:09:29 I'd think https://review.openstack.org/#/c/76568/2/keystone/tests/test_backend_ldap.py would remove a bunch of skipped tests. 18:09:33 i definitely haven't done a thorough review so i can't speak to it 18:10:10 "_get_global_roles_for_group", nice :) 18:10:18 yeah... 18:10:22 I did't know global roles are supported 18:10:26 Any LDAP review that does not list me as a reviewer will get -2ed out of sheer spite 18:10:35 that, or the method name is misleading 18:10:49 Nah, old stuff, needs top go away 18:10:52 so I was Ok with this patch when it was just adding in group roles….the "global roles" bit confuses me 18:11:03 LDAP needs domain scoping. Juno 18:11:36 henrynash: ++ i inquired in one of the bugs about the precedence it claims to be following -- i haven't gotten a response yet 18:12:22 doesn't sound like anyone is immediately comfortable with this one, so let's continue to hold it until juno 18:12:30 #link https://review.openstack.org/#/c/78521/ 18:12:47 this one introduced a new config option, but it's a clean simple patch otherwise 18:12:52 that one is a new config option 18:12:55 if it lands, it should land ASAP (ideally last week) 18:12:57 dolphm: I think https://review.openstack.org/#/c/78521/ would be safe. 18:13:03 bknudson: ++ 18:13:06 and also pretty desirable. 18:13:22 i'd like to advocate for this one on the basis that i'm aware of several deployments carrying custom patches to solve this problem :( 18:13:25 I can drop the -2 if you are all comfortable 18:14:08 should we /vote? 18:14:23 I'm for it 18:14:31 * ayoung has not gotten to use the vote option in a meeting yet 18:14:56 ayoung: ideally hold your -2 until there's overwhelming +2's on the review 18:15:05 ayoung: your -2 is completely appropriate given the config impact 18:15:10 hopefully the submitter will update it.. 18:15:19 dolphm, lets use the vote option! 18:15:25 http://ci.openstack.org/meetbot.html#voting 18:15:29 (or if others agree with my suggestions I could make the updates) 18:15:34 ayoung: gerrit already has voting, and that's where it counts 18:15:37 bknudson: would you update it for them? 18:15:38 bknudson: ++ 18:16:03 bknudson: so if it's not None, then set the config option in python-ldap? 18:16:12 dolphm: right 18:16:16 bknudson: in other words, no one is impacted by this change at all, which is perfect 18:16:41 cjellick_: is the owner 18:17:14 lbragstad: awesome 18:17:37 cjellick_: if you're around, can you work with bknudson to make the above change? or he'll make it for you so we can land https://review.openstack.org/#/c/78521/ ASAP :) 18:18:08 it doesn't look too bad, at first glance 18:18:34 are there any other blocked reviews that anyone wants to consider? (that's the end of my list on the agenda) 18:18:46 if not, we'll just do open discussion until our time is up 18:19:20 dstanek: IIRC, you called me out on something i blocked last week? 18:19:35 dolphm: did i? 18:19:36 dolphm, https://review.openstack.org/#/c/76476/ 18:19:44 https://review.openstack.org/#/c/78068/ 18:19:46 don't recall 18:19:56 dstanek: you asked why i blocked something, and my answer was that i didn't think about it too hard 18:20:00 dolphm, I'd consider gyee 's review there a bugfix 18:20:31 ec2 middleware should really be in keystoneclient 18:20:34 same rules as the LDAP one: would not affect anyone 18:20:41 gyee's i would be ok with 18:20:47 gyee: that's a good one 18:20:51 mine i kind of think should be -2 18:20:53 dolphm: that's possible; i doubt it was anything i cared about; more likely that i'm trying to see the boundries of the process 18:21:04 welll...actually, no. That one will break 18:21:05 gyee: ec2 runs on keystone, so i don't think that's true 18:21:14 dolphm, but that's middleware 18:21:15 dstanek: ack 18:21:23 gyee: middleware that runs on top of keystone, yes 18:21:44 dolphm, I don't think that one runs on top of keystone 18:21:55 gyee: oh i think you're right 18:22:00 would be nice if there were some unit tests covering ec2_token. 18:22:01 gyee: i wasn't looking at the file 18:22:23 gyee, only should be moved to keystoneclient if other services are going to pull that middleware in, too 18:22:45 looks like ec2_token doesn't use identity_api or anything? 18:23:00 bknudson: correct, it's like auth_token 18:23:04 ayoung, not sure, I am getting conflicting messages about ec2 support in general 18:23:05 gyee, how about submitting a client review 18:23:16 so moving to keystoneclient makes sense to me 18:23:18 you could easily put https://review.openstack.org/#/c/76476/6/keystone/middleware/ec2_token.py into the client 18:23:51 question is whether other services besides keystone are going to use it 18:23:53 at one point I was told OpenStack no longer supports s3 and ec2 18:24:04 but others continue to use them 18:24:06 I know Heat would love it if everyone did 18:24:10 the change in https://review.openstack.org/#/c/76476/6/keystone/middleware/ec2_token.py looks pretty straightforward to me 18:24:13 and it improves security 18:24:23 s3 has to be used in conjunction with the s3 emulator, which no longer part of Swift 18:24:30 bknudson, and will break existing deployments because of that 18:24:45 we need to make the defaults the insecure ones for Icehouse 18:24:48 i'm happy with that change to go into icehouse 18:24:52 and crank it to secure for Juno 18:25:03 ayoung: I'm good with that plan. 18:25:18 gyee, no good deed goes unpunished 18:25:26 heh 18:25:31 ayoung: we haven't done that for other things, when doing certs in auth_token we just did it 18:25:40 this will have far less impact than that 18:25:49 jamielennox, yeah, but not during feature freeze 18:25:59 true 18:26:05 all the puppetization etc need to catch up with it 18:26:38 ayoung, we can't pull the rug under ppl during feature freeze?!!! :) 18:26:45 there's no feature freeze for auth_token since it's in the client. 18:27:03 gyee, do you agree? We let the change in but with the defaults such that an existing config would work, and then switch the defaults in juno? 18:27:22 ayoung, no argument here 18:27:25 can we get someone to validate that the defaults work? 18:27:38 sorry, that an existing config will work? 18:27:50 the way 'verify' is determined in that patch is really confusing 18:28:02 it has a default in two places, and then it gets overridden... 18:28:06 I'm worried because there are no tests. 18:28:50 ++ 18:28:58 dolphm: that's kind of how the verify works, either it's true/false or it's the CA certs 18:29:31 bknudson: ++ - i've no idea how to test it either 18:29:57 (what's correct to test) 18:32:02 bknudson: seems like the defaults would be breaking 18:32:54 bknudson: for better or worse... keystone_ec2_insecure defaults to False (contrary to the existing behavior), so requests attempts verification against system CA without a cert/key ? 18:33:23 dolphm: it's not looking at the _url anymore to see if using ssl 18:33:30 dolphm, yes, it will look for the system CA certs 18:33:57 yes, we would want to set insecure=True to be compatible with current options 18:34:07 jamielennox: i'm not opposed to breaking deployments in the name of better security though... 18:34:08 or is SSL/not SSL handled by requests.post? 18:34:27 jamielennox: as long as it's a matter of setting _insecure = True to opt back into the old behavior 18:34:28 bknudson, yes, it it handled by requests 18:34:36 gyee:++ 18:34:41 looking at the URL is not very reliable 18:34:55 as start-TLS, for example, starts with http 18:35:06 then switch over to TLS 18:35:10 looking at the URL in the original doesn't do anything i think, it's just whether to use the http or https handler 18:35:32 i don't *think* there is any actual extra security imposed by the HTTPSConnection 18:35:41 the verify=verify and cert=cert parameters are ignored if the url is http (and not https)? 18:36:51 that's would be unawesome 18:36:59 marekd, bring it up here once the current conversation is done 18:37:05 why is this a Partial-Bug? 18:37:08 https tunnel via http proxy won't work 18:37:22 dolphm: I think because it affects multiple projects. 18:38:27 bknudson: yes they should be 18:39:11 so marekd has an issue with SAML. Can it be brought up here? 18:39:38 ayoung, i think so, not much has happened in a few minutes 18:39:48 https://review.openstack.org/79284 18:39:51 dolphm: is https://review.openstack.org/#/c/78068/ not -2ed because we want it to land in icehouse? 18:39:58 dolphm: since the arguments are ignored with http:// I think the behavior will not change. 18:40:01 I think this is a mistake, but don't want to break things for others 18:40:13 the SAML approach assumes that all of the identity Data is external to keystone 18:40:22 looking for groups in Keystone makes no sense to me 18:40:59 what's the reasoning that the group has to exist? 18:41:03 to catch invalid config? 18:41:14 ayoung: i thought the whole idea was to map SAML stuff into Keystone groups 18:41:20 marekd, what is your assumption: that users will be defined in SAML but groups will be in Keystone? 18:41:28 bknudson: yes 18:41:29 bknudson: the default will change because it will default to verify=True for https connections and so will do CA verification 18:41:32 dstanek, but I don't think that makes sense 18:41:43 dstanek, groups are per domain 18:41:44 ayoung: you're getting ahead of the current approach 18:41:50 ayoung: yes, groups should be configured/created prior to federation configuration... 18:42:08 ayoung: and not regular users...ephemeral-like users. 18:42:28 jamielennox: what if you do http:// + verify=True ? 18:42:35 dolphm: no change 18:42:52 dolphm: it should be ignored 18:43:10 jamielennox: cool 18:43:38 marekd, and "ephemeral users" is a mistake....ugh. Not sure we want to reinforce this. I'm afraid we'll be stuck with something broken we have to live with. But I guess the existing SAML approach is already there. 18:44:01 ayoung: it in the master. 18:44:33 But yeah...and I was sorely tempted to -2 it for this very reason. But I am not he-who-should-not-be-named-in-irc 18:44:46 ayoung: i said ephemeral-like users...something, a set of roles that can access some domains/projects as long as the token is valid and later disappears. 18:44:46 We need to fix in J1 18:44:54 * dolphm unblocked the ec2_token patch and targeted bug at RC1 18:45:09 i'd +2 except for the commit message thing 18:45:25 ayoung: you wanted to -2 what? federation patches/ 18:45:27 ? 18:45:44 marekd, yeah....I wanted to redo the token creation pipeline first 18:46:01 but couldn't get to it in time. 18:46:11 ayoung, marekd, the questions is if users are managed outside of Keystone, what's the use of shadowing them in Keystone? 18:46:14 ayoung: btw, please don't reimplement paste - just take advantage of wsgi 18:46:20 for metering & billing, tracking? 18:46:37 gyee: you dont shadow any user information... 18:46:46 dolphm, for the token pipeline? 18:46:50 ayoung: yes 18:46:56 ayoung: i think you filed a wishlist bug to that effect 18:47:01 if I am reading ayoung correctly, he wants to shadow them in Keystone 18:47:09 gyee: i haven't gotten a great answer to that question either 18:47:13 gyee: he wants to remove identity :D 18:47:24 marekd: me too, but not today! 18:47:30 haha 18:47:56 dolphm, I think I alluded to "something like paste if paste can't suit our needs" or something appropriatlley vague. I suspect one of the more pythonic members of our community will have the right solution, not I. 18:48:10 gyee: we don't shadow any user information...the only 'shadowing' if we can call it that way is groups/roles configuration 18:48:19 ayoung: paste is the answer you're looking for ;) 18:48:37 ayoung: more specifically wsgi in general, but paste makes wsgi sufficiently easy 18:48:56 gyee: basically RuleProcessor, courtesy of stevemar, maps SAML2 assertion into set of group id 18:48:59 ids 18:49:04 marekd, that's how it is usually done 18:49:15 Keystone manage the "personas" 18:49:26 dolphm, It may well be. I think can see how it will solve the token-pipeline configuration 18:49:32 personas are pre-determined 18:50:09 #topic open discussion 18:50:12 gyee: agreed. So in this use-case, there is not new User record 18:50:20 gyee: a group may be. 18:50:21 gyee, that sounds a lot like "define the users in SAML and the groups in Keystone" to me 18:50:27 dolphm: https://review.openstack.org/#/c/78068/ ? 18:50:43 ayoung, right, defining groups in kesytone 18:51:00 gyee: but even if we skip groups, and map directly from saml2 to role we still sometimes need create roles dedicated for federated users... 18:51:05 jamielennox: are you asking for a review or with regard to blocking until juno? 18:51:09 gyee: to me it again smells like 'shadowing' 18:51:12 gyee, we can do that now with the mapping layer, but we could make a persona or group a first class entity in that layer 18:51:25 dolphm: regarding whether it's blocked, you did a review the other day without a -2 18:51:35 jamielennox: intentional :) 18:51:44 dolphm: if it's blocked i'll probably abandon and do it with pecan when that happens 18:51:47 marekd, you don't want to directly assign user roles, just ask your auditing ppl 18:52:07 dolphm: it got bigger and uglier than i though it would 18:52:11 saml2->roles was ayoung's idea 18:52:19 jamielennox: i haven't given it a thorough review, but don't see a reason for it to be blocked 18:52:23 it will be a nightmare to do auditing/forensics 18:52:23 jamielennox: so the links in all the elements are broken? 18:52:54 bknudson: it means that if you don't put admin_host_url in config you get links that are like http://localhost/blah 18:53:05 gyee, not if we keep the userid mapping clean. 18:53:08 jamielennox: i'm just not sure how to triage the bug, or if it should be targeted at RC1 18:53:43 ayoung, you don't really need user id 18:53:45 bknudson: the patch defaults that to using whatever host you connected to it with so if you requests.get('http://keystone/v3/users') links will be relative to http://keystone/v3 18:53:56 jamielennox: after all, you just have to provide configuration for it work as expected, right? 18:53:57 gyee, all the other projects need userid 18:54:02 so, yes we do 18:54:11 ayoung: ++ 18:54:13 in SAML land, a user is unique identified by a collection of attributes 18:54:24 dtroyer and i have discussed in the past that it's unset by default in real deployments and no one notices because it's only ued by links and discovery 18:54:25 gyee, and a userid is the shortcut 18:54:30 gyee: but in the keystone world by unique string... 18:54:34 jamielennox: what do you mean? a relative link? 18:54:46 like /v3/users ? 18:54:48 gyee, even in SAML, each user has a unique identifier 18:54:59 lets not quibble, I have no patience for it today 18:55:03 bknudson: sorry shouldn't have used relative 18:55:13 jamielennox: i thought you were getting the host url out of the wsgi env, not using relative urls? 18:55:19 gyee: actually in SAML user are identified by an ID, gnerally the EPTID or EPPN 18:55:27 seems to me there are two approaches - expect the IDP to send roles which are defined by keystone, or the IDP will send user roles over and keystone will interpret them and map them into its own role concept. 18:55:31 ayoung: anything else regarding federation you wanted to discuss now? 18:55:31 if you connect to url 'http://keystone:5000/v3/users' then request.host_url is http://keystone:5000 18:55:47 marekd, nope..it can all wait to Atlanta 18:55:50 dwaite: \o/ long time no see 18:55:57 hi dolphm! 18:56:02 bknudson: so i want to default the public and admin urls to the request.host_url 18:56:16 jamielennox: that sounds like the right way to do it. 18:56:21 rather than http://localhost:%(public_port) which it is now 18:56:35 jamielennox: but you can override with http://localhost:%(public_port) ? 18:56:40 so it shouldn't change anything for deployments 18:56:40 jamielennox: which could be something like "http://hostname:port/path" -- correct? 18:56:41 bknudson: ++ 18:56:46 jamielennox: that's great. 18:56:59 more federation fun in Atlanta I guess 18:57:02 dolphm: right it you have a /path you will still need to set the config option 18:57:03 ayoung, just a question, do you have a plan to provide token after federate authentication as post to an external service? 18:57:05 jamielennox: IMO this is fixing a bug. 18:57:07 gyee, for sure 18:57:08 gyee: of course! 18:57:17 I think we really need to get that user_id question straighten out 18:57:23 what is it used for? 18:57:28 jamielennox: oh - i assumed /path would be included 18:57:31 dolphm: i don't know how to fix that without some bigger rearchitecting 18:57:35 gyee, auditing mostly 18:57:37 jamielennox: fair enough 18:57:38 jamielennox: why can't we get the path? 18:57:54 bknudson: you can't do it as a drop in replacement at least 18:58:12 all the link rendering is done based on the config option 18:58:32 ayoung: allrighty, i am headong home. should be online again soon. 18:58:37 heading* 18:58:48 if we put some effort in in Juno we can get the whole request url but everything build up there own path relative to a base 18:59:23 dolphm, are you accepting design session proposals now? 18:59:36 gyee: since friday http://summit.openstack.org/ 18:59:37 rephrase: all the controllers currently builds the URLs assuming the base up 18:59:53 * dolphm < 1 min 18:59:55 dolphm: until? 18:59:56 we would have to change all that 19:00:08 marekd|away: ... late april 19:00:13 dolphm: ok! 19:00:24 marekd|away: april 19? april 29? i should have written the date down, but i'll give a heads up when we get close 19:00:31 #endmeeting