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}) 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.


Freeipa-devel mailing list

Reply via email to