On Wed, 2013-03-06 at 14:49 +0100, Martin Kosek wrote:
> On 03/06/2013 10:41 AM, Sumit Bose wrote:
> > On Tue, Mar 05, 2013 at 05:13:58PM +0100, Martin Kosek wrote:
> >> On 03/04/2013 04:22 PM, Sumit Bose wrote:
> >>> On Fri, Mar 01, 2013 at 08:58:34AM -0500, Simo Sorce wrote:
> >>>> On Fri, 2013-03-01 at 10:08 +0100, Martin Kosek wrote:
> >>>>> On 03/01/2013 09:20 AM, Sumit Bose wrote:
> >>>>>> On Fri, Mar 01, 2013 at 08:33:51AM +0100, Martin Kosek wrote:
> >>>>>>> On 02/28/2013 03:28 PM, Simo Sorce wrote:
> >>>>>>>> On Thu, 2013-02-28 at 13:02 +0100, Martin Kosek wrote:
> >>>>>>>>> On 02/28/2013 12:42 PM, Sumit Bose wrote:
> >>>>>>>>>> On Thu, Feb 28, 2013 at 08:44:35AM +0100, Martin Kosek wrote:
> >>>>>>>>>>> On 02/27/2013 06:48 PM, Sumit Bose wrote:
> >>>>>>>>
> >>>>>>>>>>> Hi Sumit,
> >>>>>>>>>>>
> >>>>>>>>>>> This looks like a good idea and would prevent the magic default 
> >>>>>>>>>>> PAC type, yes.
> >>>>>>>>>>> Though I would not add this service-specific setting to global 
> >>>>>>>>>>> IPA config object.
> >>>>>>>>>>>
> >>>>>>>>>>> I would rather like to see that in the service tree, for example 
> >>>>>>>>>>> as a
> >>>>>>>>>>> configuration option of the service root which could be 
> >>>>>>>>>>> controlled with
> >>>>>>>>>>> serviceconfig-* commands (we already have dnsconfig, 
> >>>>>>>>>>> trustconfig), e.g:
> >>>>>>>>>>>
> >>>>>>>>>>> # ipa serviceconfig-add-pacmap --service=nfs --pac-type=NONE
> >>>>>>>>>>> # ipa serviceconfig-add-pacmap --service=cifs --pac-type=PAD
> >>>>>>>>>>> # ipa serviceconfig-show
> >>>>>>>>>>>   Default PAC Map: nfs:NONE, cifs:PAD
> >>>>>>>>>>
> >>>>>>>>>> Are you thinking of having this in addition to the for-all-services
> >>>>>>>>>> default values in cn=ipaConfig,cn=etc or shall those be dropped? I 
> >>>>>>>>>> don't
> >>>>>>>>>> like the first case because then three different objects needs to 
> >>>>>>>>>> be
> >>>>>>>>>> consulted to find out which is the right type. This wouldn't be an 
> >>>>>>>>>> issue
> >>>>>>>>>> for the plugin, but I think it is hard for the user/admin to 
> >>>>>>>>>> follow.
> >>>>>>>>>
> >>>>>>>>> Hm, you are right.
> >>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> If the current defaults shall be dropped I think this is a major 
> >>>>>>>>>> change
> >>>>>>>>>> because it will require changes in the current CLI and WebUI which 
> >>>>>>>>>> will
> >>>>>>>>>> be visible to the users. I'm not against this change, I'm just 
> >>>>>>>>>> wondering
> >>>>>>>>>> if it is worth the effort for the next release?
> >>>>>>>>>>
> >>>>>>>>>> Maybe an argument to keep this is in global default is that the 
> >>>>>>>>>> settings
> >>>>>>>>>> are used for the host/*.* services as well which are in a different
> >>>>>>>>>> sub-tree of the cn=accounts container. Additionally in future we 
> >>>>>>>>>> might
> >>>>>>>>>> want apply those setting to the user TGTs as well?
> >>>>>>>>>
> >>>>>>>>> Yeah, that was actually my point. That we are mixing 
> >>>>>>>>> service-specific PAC
> >>>>>>>>> "rules" to the global setting. Which may be shared with host/*.* 
> >>>>>>>>> principals and
> >>>>>>>>> user principals. This automatic PAC rules may require some 
> >>>>>>>>> designing so that is
> >>>>>>>>> is generally usable.
> >>>>>>>>
> >>>>>>>> I think putting everything in the general config is more 
> >>>>>>>> understandable
> >>>>>>>> and discoverable. These per-service defaults are basically 
> >>>>>>>> exceptions to
> >>>>>>>> the general rule so it make sense to keep everything together.
> >>>>>>>>
> >>>>>>>> Simo.
> >>>>>>>>
> >>>>>>>
> >>>>>>> Ok, if these are really just an exceptions to the general rule (and 
> >>>>>>> there will
> >>>>>>> not be too many of them), I think we can leave it in config entry. 
> >>>>>>> But if we
> >>>>>>> expect to have exceptions for other types of entries (hosts, users), 
> >>>>>>> I think we
> >>>>>>> should rather use something like "service:nfs:NONE" do distinguish 
> >>>>>>> this exception.
> >>>>>>>
> >>>>>>> Question is, do we want to implement the interface and processing for 
> >>>>>>> that in
> >>>>>>> current Sumit's patches or do we use that is they are?
> >>>>>>
> >>>>>> I would like to update the patches so that they can handle the
> >>>>>> service:TYPE style entry and replace the current update code with just
> >>>>>> adding nfs:NONE to the global options. I will update the design page
> >>>>>> accordingly, too.
> >>>>>
> >>>>> Ok. If the update procedure shrinks just to adding service:nfs:NONE 
> >>>>> then it'd
> >>>>> be great.
> >>>>
> >>>> If we need to distinguish between service principals and user principals
> >>>> I would prefer rather use a special keyword for upns
> >>>>
> >>>> service: is redundant and I do not want here to be able to say
> >>>> upn:martin:NONE because per principal options are available on the
> >>>> principal object.
> >>>>
> >>>> I actually really do not see the need for changing the default just for
> >>>> user principals. If we are worried that one day we might want to really
> >>>> have upn:NONE, then let's use nfs/:NONE, host/:NONE etc... so one day we
> >>>> might add upn:NONE and the lack of / will tell us this is not a service
> >>>> named upn/foo.bar.baz but rather it means user principal names.
> >>>>
> >>>> However I do not see us ever really needing upn:NONE
> >>>>
> >>>>>> I would prefer if the enhancements needed for the CLI and WebUI can be
> >>>>>> covered by other/new tickets, but I'm happy to add the needed
> >>>>>> information to the design page too.
> >>>>>>
> >>>>>> bye,
> >>>>>> Sumit
> >>>>>
> >>>>> I am OK with adding the interface for this special exception later. In 
> >>>>> that
> >>>>> case, a ticket + note in the design as you mentioned would be enough.
> >>>>
> >>>> Ack.
> >>>>
> >>>> Simo.
> >>>>
> >>>
> >>> Please find attached a new version of the patches. 0095 i(updating) is
> >>> renamed and much simpler now. I opened
> >>> https://fedorahosted.org/freeipa/ticket/3484 to added the needed change
> >>> for 'service:TYPE' to CLI and WebUI. For the time being I've added
> >>> patch 0108 which simply allows 'nfs:NONE' as a type to make sure that it
> >>> is not deleted accidentally when e.g. using the WebUI. If you do not
> >>> like it it can simply be dropped, everything is working fine without it.
> >>>
> >>> bye,
> >>> Sumit
> >>>
> >>
> >> Patch 0098:
> >>
> >> If this part does not match (and it will not for all non-nfs service 
> >> principals):
> >>
> >> +            if (service_type->length == (sep - authz_data_list[c]) &&
> >> +                strncmp(authz_data_list[c], service_type->data,
> >> +                        service_type->length) == 0) {
> >> +                authz_data_type = sep + 1;
> >> +            }
> >>
> >> krb5kdc.log will contain an error:
> >>
> >> Mar 05 10:48:50 ipa.linux.ad.test krb5kdc[26703](Error): Ignoring 
> >> unsupported
> >> authorization data type [nfs:NONE].
> >> Mar 05 10:48:50 ipa.linux.ad.test krb5kdc[26703](info): TGS_REQ (4 etypes 
> >> {18
> >> 17 16 23}) 10.16.78.33: ISSUE: authtime 1362482261, etypes {rep=18 tkt=18
> >> ses=18}, HTTP/ipa.linux.ad.t...@linux.ad.test for
> >> ldap/ipa.linux.ad.t...@linux.ad.test
> >>
> >> I think we should just "continue" in this case.
> > 
> > good catch, fixed
> 
> Ok, thanks.
> 
> > 
> >>
> >> Otherwise, this looks and works fine.
> > 
> > Thank you for the review, new version attached.
> > 
> > I have an additional question about processing the service specific
> > defaults. Using 'service:NONE' is unambiguous because NONE trumps all.
> > But what do we expect if e.g. the defaults are MS-PAC and ldap:PAD for a
> > LDAP service ticket. Shall it contain PAC and PAD or only a PAD? I think
> > the first one where all defaults which apply to a service are added up
> > is more clear, and this is also the way the current code works. But I
> > wouldn't mind to change the logic if you think it makes more sense the
> > other way round, i.e. if there is a service specific default matching
> > the requested service only the service specific default are accounted.
> 
> Hmm, that's a good question. I understand service:PACTYPE as an exclusion to
> the general setting, so for me it would make sense to override the global
> config - i.e. tje second case.
> 
> Thus, if global config is MS-PAC, ldap:PAD, I think that ldap should have just
> PAD. If one also want MS-PAC, it should be set like "MS-PAC, ldap:PAD,
> ldap:MS-PAC". Otherwise you would not be able to configure that you want 
> MS-PAC
> for all services and _only_ PAD for ldap...
> 
> Does it make sense? We should also make sure that we update the RFE page to
> whatever we decide to do.

+1 to Martin's choice.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to