Ik ben voor het eerst bezig met perl scripten (ja dat moest er altijd nog een keer van komen) maar nu heb ik een doel voor ogen 
Ik heb een mailserver draaien met uiteraard enige beveiliging ingebouwd en deze beveiliging gaat via Kerberos V (MIT implementatie). Nou is het zo dat ik bezig ben met server side filtering van mijn mail. Alleen om te kunnen inloggen heb ik squirrelmail nodig. Squirrelmail maakt goed connectie met de imap server en inloggen en alles gaat ook goed.
Maar als ik nu serverside scripting ga doen dan heeft hij een ticket nodig van mijn Kerberos server. En dat ticket probeer ik aan te vragen met perl.
Er is een CPAN module voor en ik heb al de nodige documentatie opgezocht.
Dit is het beetje code dat ik al gemaakt heb:
Nou is het zo dat Auth::Krb5::parse_name('USER'); een Authen::Krb5::Principal moet teruggeven zie hier:
Ik heb een mailserver draaien met uiteraard enige beveiliging ingebouwd en deze beveiliging gaat via Kerberos V (MIT implementatie). Nou is het zo dat ik bezig ben met server side filtering van mijn mail. Alleen om te kunnen inloggen heb ik squirrelmail nodig. Squirrelmail maakt goed connectie met de imap server en inloggen en alles gaat ook goed.
Maar als ik nu serverside scripting ga doen dan heeft hij een ticket nodig van mijn Kerberos server. En dat ticket probeer ik aan te vragen met perl.
Er is een CPAN module voor en ik heb al de nodige documentatie opgezocht.
Dit is het beetje code dat ik al gemaakt heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #!/usr/bin/perl -w
#
# Proberen van het krijgen van kerberos credentials
#
# Gebruik Krb5
use Authen::Krb5;
#Authen::Krb5::init_context();
Authen::Krb5::init_ets();
#$ac = new Authen::Krb5::AuthContext;
$cc = Authen::Krb5::cc_default();
$client = Authen::Krb5::parse_name('USER');
$server = Authen::Krb5::parse_name('krbtgt/ACTIVE2.HOMELINUX.ORG');
Authen::Krb5::get_in_tkt_with_password($client, $server, 'secret_password', $cc) or die Authen::Krb5::error(); |
Nou is het zo dat Auth::Krb5::parse_name('USER'); een Authen::Krb5::Principal moet teruggeven zie hier:
En volgens de documentatie moet de functie Authen::Krb5::get_in_tkt_with_password 3 objecten en een password mee krijgen. De eerste 2 parameters zijn Authen::Krb5::Principal objecten en password lijkt me duidelijk en als laatste een Authen::Krb5::Ccacheparse_name(name)
--
Converts a string representation of a principal to a principal object. You can use this to create a principal from your username.
Dit is de foutmelding:get_in_tkt_with_password(client,server,password,cc)
--
Attempt to get an initial ticket for the client. 'client' is a principal object for which you want an initial ticket. 'server' is a principal object for the service (usually krbtgt/REALM@REALM). 'password' is the password for the client, and 'cc' is a Authen::Krb5::Ccache object representing the current credentials cache. Returns a Kerberos error code.
Nu heb ik het idee dat ik wat fout doe maar ik kan niet achterhalen wat.server:~/perl_bins# ./test.pl
client is not of type Authen::Krb5::Principal at ./test.pl line 19.
server:~/perl_bins#
Google, Het mirakel van de 21e eeuw!!!!