Using a Kerberized application outside the Kerberos Realm - Kerberos
This is a discussion on Using a Kerberized application outside the Kerberos Realm - Kerberos ; Hello,
I am using the Windows 2003 Domaincontroller and the included KDC. I want to implement single-sign-on with an application that is a server programmed in Java. Let's call it Alice. A client software, also programmed in Java, will connect ...
-
Using a Kerberized application outside the Kerberos Realm
Hello,
I am using the Windows 2003 Domaincontroller and the included KDC. I want to implement single-sign-on with an application that is a server programmed in Java. Let's call it Alice. A client software, also programmed in Java, will connect to Alice. Let's call this client Bob. Now Alice is the service I have to add to the Domaincontroller in order to acquire service tickets later. Bob is the client, that should acquire a service ticket for Alice from the KDC and pass it on to Alice. I want Alice to ensure the service ticket's authenticity by decrypting it with the shared secret key that only Alice and the KDC possess. I already succeeded in obtaining a TGT from the KDC. My problem is that Alice is not in the domain in which the KDC is running. To be more precise, the KDC and the service Alice are set up in different network environments and thus do not know each other.
Is it possible to create a kerberized service that is not part of the Kerberos realm? If yes, what do I have to do?
I thought of sharing the symmetric service key between the KDC and Alice. To do so, I tried to create the service Alice with ktpass, give the so created encryption key to Alice and let Alice decrypt the service tickets, that will be delivered by Bobs later.
Is this procedure possibly in theory? Does anyone know how to obtain the service ticket by using JAAS? I only managed to get the TGT.
This is an extract of my code so far:
System.setProperty("java.security.krb5.realm", ((Element)tPropertiesCatalog.get("PROVIDER_REALM")).getAttributeValue("value"));
System.setProperty("java.security.krb5.kdc", ((Element)tPropertiesCatalog.get("PROVIDER_URL")).getAttributeValue("value"));
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
// Performing Kerberos login
LoginContext tLoginContext = new LoginContext("JaasLogin");
tLoginContext.login();
final Subject tSubject = tLoginContext.getSubject();
Subject.doAs(tSubject, new PrivilegedExceptionAction()
{
public Object run() throws Exception
{
Principal tPrincipal = (Principal)tSubject.getPrincipals().iterator().nex t();
KerberosTicket tTicket = (KerberosTicket) tSubject.getPrivateCredentials(KerberosTicket.clas s).iterator().next();
}
}
How can I get a service ticket now?
Thanks for any help in advance.
________________________________________________
Kerberos mailing list Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos
-
Re: Using a Kerberized application outside the Kerberos Realm
On Mon, 21 Aug 2006 18:40:28 +0200
"Florian Frankenberger" wrote:
> My problem is that Alice is not in the domain in which the KDC is running. To be more precise, the KDC and the service Alice are set up in different network environments and thus do not know each other.
> Is it possible to create a kerberized service that is not part of the Kerberos realm? If yes, what do I have to do?
Alice and Bob have to be in the same realm or in separate realms that
have a trust established between them. Otherwise the is no basis for
establishing trust between Alice and Bob. Kerberos is a "thrid party
authentication system" so there needs to be someone both principals trust.
> I thought of sharing the symmetric service key between the KDC and Alice. To do so, I tried to create the service Alice with ktpass, give the so created encryption key to Alice and let Alice decrypt the service tickets, that will be delivered by Bobs later.
>
> Is this procedure possibly in theory? Does anyone know how to obtain the service ticket by using JAAS? I only managed to get the TGT.
If Bob requests a ticket for ALICESVC/apps22.ai-ag.de@AI-AG.DE then
even if Bob is bob@AI-AG.US he should have no problem looking up the
KDC for AI-AG.DE using DNS and getting a ticket per usual. But a trust
relationship would be required between AI-AG.DE and AI-AG.US.
Mike
--
Michael B Allen
PHP Active Directory SSO
http://www.ioplex.com/
________________________________________________
Kerberos mailing list Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos
-
AW: Using a Kerberized application outside the Kerberos Realm
Thank you, Mike.
In my case, Alice isn't running in a domain at all. That's why I have to implement the check for authenticity on Alice's side in my own way. So what about the idea of having the service ticket encrypted with the symmetric key that only the KDC and Alice know? Doesn't this mean a kind of secure proof of authentcity to Alice if the ticket passed by Bob can be decrypted with the shared secret key?
Or is it simply impossible to get a service ticket for a service that doesn't exist in this or any other domain?
-----Ursprungliche Nachricht-----
Von: Michael B Allen [mailto:mba2000@ioplex.com]
Gesendet: Montag, 21. August 2006 20:49
An: Florian Frankenberger
Cc: kerberos@mit.edu
Betreff: Re: Using a Kerberized application outside the Kerberos Realm
On Mon, 21 Aug 2006 18:40:28 +0200
"Florian Frankenberger" wrote:
> My problem is that Alice is not in the domain in which the KDC is running. To be more precise, the KDC and the service Alice are set up in different network environments and thus do not know each other.
> Is it possible to create a kerberized service that is not part of the Kerberos realm? If yes, what do I have to do?
Alice and Bob have to be in the same realm or in separate realms that
have a trust established between them. Otherwise the is no basis for
establishing trust between Alice and Bob. Kerberos is a "thrid party
authentication system" so there needs to be someone both principals trust.
> I thought of sharing the symmetric service key between the KDC and Alice. To do so, I tried to create the service Alice with ktpass, give the so created encryption key to Alice and let Alice decrypt the service tickets, that will be delivered by Bobs later.
>
> Is this procedure possibly in theory? Does anyone know how to obtain the service ticket by using JAAS? I only managed to get the TGT.
If Bob requests a ticket for ALICESVC/apps22.ai-ag.de@AI-AG.DE then
even if Bob is bob@AI-AG.US he should have no problem looking up the
KDC for AI-AG.DE using DNS and getting a ticket per usual. But a trust
relationship would be required between AI-AG.DE and AI-AG.US.
Mike
--
Michael B Allen
PHP Active Directory SSO
http://www.ioplex.com/
________________________________________________
Kerberos mailing list Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos
-
Re: AW: Using a Kerberized application outside the Kerberos Realm
If Alice can share a key with the KDC then Alice can be issued a service
principal name and act as part of the realm.
Jeffrey Altman
Florian Frankenberger wrote:
> Thank you, Mike.
>
> In my case, Alice isn't running in a domain at all. That's why I have to implement the check for authenticity on Alice's side in my own way. So what about the idea of having the service ticket encrypted with the symmetric key that only the KDC and Alice know? Doesn't this mean a kind of secure proof of authentcity to Alice if the ticket passed by Bob can be decrypted with the shared secret key?
> Or is it simply impossible to get a service ticket for a service that doesn't exist in this or any other domain?
>
>
> -----Ursprungliche Nachricht-----
> Von: Michael B Allen [mailto:mba2000@ioplex.com]
> Gesendet: Montag, 21. August 2006 20:49
> An: Florian Frankenberger
> Cc: kerberos@mit.edu
> Betreff: Re: Using a Kerberized application outside the Kerberos Realm
>
>
> On Mon, 21 Aug 2006 18:40:28 +0200
> "Florian Frankenberger" wrote:
>
>> My problem is that Alice is not in the domain in which the KDC is running. To be more precise, the KDC and the service Alice are set up in different network environments and thus do not know each other.
>> Is it possible to create a kerberized service that is not part of the Kerberos realm? If yes, what do I have to do?
>
> Alice and Bob have to be in the same realm or in separate realms that
> have a trust established between them. Otherwise the is no basis for
> establishing trust between Alice and Bob. Kerberos is a "thrid party
> authentication system" so there needs to be someone both principals trust.
>
>> I thought of sharing the symmetric service key between the KDC and Alice. To do so, I tried to create the service Alice with ktpass, give the so created encryption key to Alice and let Alice decrypt the service tickets, that will be delivered by Bobs later.
>>
>> Is this procedure possibly in theory? Does anyone know how to obtain the service ticket by using JAAS? I only managed to get the TGT.
>
> If Bob requests a ticket for ALICESVC/apps22.ai-ag.de@AI-AG.DE then
> even if Bob is bob@AI-AG.US he should have no problem looking up the
> KDC for AI-AG.DE using DNS and getting a ticket per usual. But a trust
> relationship would be required between AI-AG.DE and AI-AG.US.
>
> Mike
>