cs:spravce:pripojovani:radius:radiator:search_hook.pl

Table of Contents

Script search_hook.pl

Skript search_hook.pl zajištuje aby uživatelé mohli jako vnější anonymní identitu použít pouze anonymous@cesnet.cz. Použití skriptu je ukázáno v sekci ověřování identity a oprávnění uživatele.

Pro vaše použití musíte upravit řetězec @cesnet.cz na Váš realm.

sub {
  my $authByLDAP = shift;
  my $username = shift;
  my $requestPacket = shift;
  my $userObject = shift;
 
  my $EAPIdentity = $requestPacket->{EAPIdentity};
  my $outerIdentity = $requestPacket->{outerRequest}->{OriginalUserName};

V případě, že uživatel nepoužívá EAP, není EAPidentity definována a proto je dodefinována.

  if (!defined($EAPIdentity) or ($EAPIdentity eq '')) {
    $EAPIdentity = $username.'@cesnet.cz';
  };
 
  if ( (defined($EAPIdentity) and defined($outerIdentity)) and
       ($EAPIdentity ne $outerIdentity) and
       ($outerIdentity ne 'anonymous@cesnet.cz')) {
    &main::log($main::LOG_DEBUG, "User $EAPIdentity/$outerIdentity is trying ".
      "cheat accounting. I disabled her/him. ;)");

Jestliže se vnější a vnitřní identita neshodují, případně vnější není anonymous@cesnet.cz, tak se změní heslo, které Radiator získal z LDAPu. Uživatel je poději odmítnut s tím, že heslo nebo uživatelské jméno je špatně. Tato konstrukce je nutná protože SearchHook nemůže uživatele přímo zamítnout.

    $userObject->{Check}->change_attr('User-Password',
      join('', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]));
    return 0;
  };
};

Příloha

Skript ke stažení: search_hook.pl.

Jan Tomášek 15.09.2006 12:18 dokument převeden z www.eduroam.cz

Last modified:: 2006/11/07 15:24