Re: [kitten] Token Preauth for Kerberos

"Zheng, Kai" <kai.zheng@intel.com> Tue, 17 June 2014 05:35 UTC

Return-Path: <kai.zheng@intel.com>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 47C101A0271 for <kitten@ietfa.amsl.com>; Mon, 16 Jun 2014 22:35:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.552
X-Spam-Level:
X-Spam-Status: No, score=-7.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.651, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ohn6k2pn0nxL for <kitten@ietfa.amsl.com>; Mon, 16 Jun 2014 22:35:26 -0700 (PDT)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ietfa.amsl.com (Postfix) with ESMTP id 09DC51A0266 for <kitten@ietf.org>; Mon, 16 Jun 2014 22:35:26 -0700 (PDT)
Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 16 Jun 2014 22:35:25 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.01,492,1400050800"; d="scan'208";a="556597356"
Received: from fmsmsx106.amr.corp.intel.com ([10.19.9.37]) by fmsmga002.fm.intel.com with ESMTP; 16 Jun 2014 22:35:25 -0700
Received: from fmsmsx101.amr.corp.intel.com (10.19.9.52) by FMSMSX106.amr.corp.intel.com (10.19.9.37) with Microsoft SMTP Server (TLS) id 14.3.123.3; Mon, 16 Jun 2014 22:35:25 -0700
Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX101.amr.corp.intel.com (10.19.9.52) with Microsoft SMTP Server (TLS) id 14.3.123.3; Mon, 16 Jun 2014 22:35:24 -0700
Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.210]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.209]) with mapi id 14.03.0123.003; Tue, 17 Jun 2014 13:35:24 +0800
From: "Zheng, Kai" <kai.zheng@intel.com>
To: Simo Sorce <simo@redhat.com>
Thread-Topic: [kitten] Token Preauth for Kerberos
Thread-Index: Ac95oBHY/v5P0th/QSGCBpa/sVINTQMo1vwAABRlhDAACyy6gADKjG2g
Date: Tue, 17 Jun 2014 05:35:23 +0000
Message-ID: <8D5F7E3237B3ED47B84CF187BB17B666118F09D8@SHSMSX103.ccr.corp.intel.com>
References: <8D5F7E3237B3ED47B84CF187BB17B666118D870F@SHSMSX103.ccr.corp.intel.com> <1402609038.22737.57.camel@willson.usersys.redhat.com> <8D5F7E3237B3ED47B84CF187BB17B666118ED023@SHSMSX103.ccr.corp.intel.com> <1402663277.22737.60.camel@willson.usersys.redhat.com>
In-Reply-To: <1402663277.22737.60.camel@willson.usersys.redhat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.239.127.40]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/kitten/o9td7tclABXBUYX8fbKuY26AqkY
Cc: "kitten@ietf.org" <kitten@ietf.org>, "krbdev@mit.edu" <krbdev@mit.edu>
Subject: Re: [kitten] Token Preauth for Kerberos
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Jun 2014 05:35:27 -0000

>> You need to modify something anyway, constrained delegation sound like a better way than trying to devise a whole new pre-auth plugin.
As far as I know s4u2self & s4u2proxy plus contrained delegation are from MS and I'm not sure we could modify it as we need. A new token-preauth based on existing Kerberos and framework is more preferred for us since the plugin is easy to deploy, also we believe the mechanism using JWT token will open the door to integrate Kerberos with OAuth.

>>However you should only transmit the authorization data, not the whole token, otherwise you destroy every single security property of Kerberos.
>>I can't see any krb admin as accepting something like that.
Yes I agree. As discussed with Greg and also said here in my previous email, we will not pass the token itself to service, instead token attributes or the derivation that can't be used to authenticate with KDC. 

Thanks for your feedback.

Regards,
Kai

-----Original Message-----
From: Simo Sorce [mailto:simo@redhat.com] 
Sent: Friday, June 13, 2014 8:41 PM
To: Zheng, Kai
Cc: kitten@ietf.org; krbdev@mit.edu
Subject: Re: [kitten] Token Preauth for Kerberos

On Fri, 2014-06-13 at 07:16 +0000, Zheng, Kai wrote:
> Hi Simo,
> 
> >> have you considered protocol transition (s4u2self) + constrained
> delegation (s4u2proxy) to get tickets at an authentication gateway 
> instead of a new pre auth mechanism ?
> 
> Yes we proposed for the Hadoop community a centralized Authn & Authz 
> Server (HAS) that might be like the gateway as you mentioned. It's 
> widely discussed and confirmed that it would be great the server 
> allows plugin of authentication module/provider but all mechanisms 
> output token. Sure I guess it's possible to use token to go thru 
> s4u2self and s4u2proxy in the Kerberos facility across the ecosystem 
> but as far as I know JRE just starts to support it from JDK8. Anyhow I 
> would check this and make sure it's a doable option not in so long 
> future.

You need to modify something anyway, constrained delegation sound like a better way than trying to devise a whole new pre-auth plugin.

> A question regarding this:
> Is it possible to contain the token in service ticket resulted from 
> s4u2self and s4u2proxy as authorization data so that services can get 
> it as proposed in token-preauth? Note in our wanted solution, token 
> not just serves for authentication, but also is meant to be passed (or 
> the token attributes) to service side for fine-grained authorization.

Well, theorethically it should be possible to ad AD data in the ticket before the s4u2proxy call and the KDC should just preserve it.
However you should only transmit the authorization data, not the whole token, otherwise you destroy every single security property of Kerberos.
I can't see any krb admin as accepting something like that.

Simo.

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