Re: [rt-users] REST API for Assets

2016-12-04 Thread Bart Bunting
Josh,

I may be able to get our company to contribute something, although I'm
afraid it wouldn't be too much.

We are tossing up between updating owr own existing solution or using RT to 
manage assets.

Given the lack of an API it makes RT integration with our customer  portal
problematic.  This is likely to push us away from RT and to just write
our own specific implementation.

If there is a commitment from Bestpractical to get the API implemented
and funds were the only issue we would consider how we could help.


Kind regards

Bart

Josh Tackitt <tacki...@reed.edu> writes:

> Hi Bart,
>
> Unfortunately there is no REST API for Assets.  I've heard rumors that
> maybe they're working on it but pretty sure I've not seen anything official.
>
> Is anyone out there interested in combining funds to pay for the
> development of this much needed feature?  I'm sure we could convince
> BestPractical to roll it into 'core' so that everyone would benefit.
>
> Best,
> Josh
>
> On Wed, Nov 23, 2016 at 3:26 PM, Bart Bunting <bart.bunt...@ursys.com.au>
> wrote:
>
>> Hi,
>>
>> Is there a REST API for assets in RT?
>>
>> I can't find any documentation for it.
>>
>> Can anyone shed any light on if it exists or is in the works?
>>
>>
>> Kind regards
>> Bart
>> --
>>
>> Bart Bunting - URSYS
>> PH: 02 87452811
>> Mbl: 0409560005
>> -
>> RT 4.4 and RTIR training sessions, and a new workshop day!
>> https://bestpractical.com/training
>> * Los Angeles - January 9-11 2017
>>
>
>
>
> -- 
> Reed College
> Computer Hardware Services
> ETC 114
> 503-788-6661
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR training sessions, and a new workshop day! 
https://bestpractical.com/training
* Los Angeles - January 9-11 2017


[rt-users] REST API for Assets

2016-11-23 Thread Bart Bunting
Hi,

Is there a REST API for assets in RT?

I can't find any documentation for it.

Can anyone shed any light on if it exists or is in the works?


Kind regards
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR training sessions, and a new workshop day! 
https://bestpractical.com/training
* Los Angeles - January 9-11 2017


[rt-users] "Show results" link?

2016-06-20 Thread Bart Bunting
Hi again,

In our old version of RT we used to have a "Show results" link when
accessing tickets from searches. 

This appears to no longer exist and my helpdesk staff are sad :).

It does exist inside the menu structure but the complaint is that they
want a single click to be able to return to the search as in previous version.

Is there a way of reenabling this behaviour or should I simply write my
own customization to add this?

I've looked through the config options and can't see anything that
suggests it's configurable. 

Kind regards
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Los Angeles - September, 2016


Re: [rt-users] Error when initializing database with external auth enabled

2016-06-20 Thread Bart Bunting
Shawn,

Thanks for the fix.

I'll rework my configuration once the commit is merged, things in that
department are working ok at the moment and I'm still fighting other
small fires from the transition.

Much appreciate the update and fix though!


Kind regards

Bart

Shawn Moore <sh...@bestpractical.com> writes:

> On 2016年5月24日 at 20:27:02, Bart Bunting (bart.bunt...@ursys.com.au) wrote:
>> Hi there,
>
> Hi Bart,
>
>> I may be just missing something but this is failing miserably for me and
>> I am not sure what the correct way to fix it is:
>>  
>> Running rt 4.4.1 rc1 as of today.
>
> I’m glad to hear it. :)
>
>> When I have the external authentication configuration enabled in
>> RT_SiteConfig.pm the
>> initial database import breaks. I think this is because when it trys to
>> add the "root" user it attempts to canonicalize the name from ldap which
>> fails.
>
> You’re exactly right. It’s even trying to canonicalize the RT System and 
> Nobody users too.
>
>> I can work around this by having puppet install one version of 
>> RT_SiteConfig.pm without  
>> external authentication configured, run the database import and then
>> replace it with a version with external auth enabled.
>>  
>> This works, I've tested it.
>>  
>> It just feels terribly ugly and wrong.
>
> Indeed it is, but hey, it works.
>
>> Can anyone suggest what I might be doing wrong here or is this a genuine
>> issue?
>
> It’s a genuine issue. I’ve created an Issues ticket on your behalf:
>
> https://issues.bestpractical.com/Ticket/Display.html?id=32009
>
> I’ve also fixed the underlying issue with the following two commits (the 
> first for RT System and Nobody, the latter for the root user):
>
> https://github.com/bestpractical/rt/commit/86b45ac4e26
> https://github.com/bestpractical/rt/commit/a32c5813bdd
>
> These fixes will be included in RT 4.4.1rc2, but if you want to apply the 
> patches ahead of time, you can get rid of your double SiteConfig hack.
>
>> Kind regards
>> Bart
>
> Thank you for testing the RCs!
> Shawn
> -
> RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
> * Los Angeles - September, 2016
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Los Angeles - September, 2016


Re: [rt-users] Reproducible RT Configuration management

2016-06-17 Thread Bart Bunting
Hi,

Sorry for the slow reply.

That is more or less what I have using puppet scripts.

The question I am struggling with is that if we are to write scripts
every time a change is required, e.g. an admin cc is added to a queue
etc it is a time consuming process and I am questioning the effort
involved

I had hoped that rt-dump-metadata would be a useful tool to assist in
seeing which changes had been made by hand and then either used to
update the initialdata or create scripts to ensure the database was
consistent.

It appears that there are bugs in rt-dump-metadata.

When anything to do with a custom field is changed in the UI
rt-dump-metadata subsequently bombs out:

./sbin/rt-dump-metadata
[3047] [Sat Jun 18 01:34:29 2016] [critical]: RT::CustomField::AppliedTo 
Unimplemented in main. (./sbin/rt-dump-metadata line 187)  
(/opt/rt4/sbin/../lib/RT.pm:390)
RT::CustomField::AppliedTo Unimplemented in main. (./sbin/rt-dump-metadata line 
187) 
.   

I guess this is a question for the Bestpractical folks is
rt-dump-metadata going to be supported ongoing or is it something that
isn't really best practice to use any more?

The git log suggests it hasn't been worked on much recently but then
again it could just mean there haven't been any recent issues found.

Any advice most welcome.


Kind regards

Bart

"James A. Peltier" <jpelt...@sfu.ca> writes:

> We script the base install including the setup of the base PERL/CPAN stuff, 
> the installation of the base RT base system using the typical make + make 
> install and then we run scripts to populate the RT database using scripts.  
> We have chosen _not_ to alter the base initial data file because we don't 
> want to have to keep track of any changes that may happen from version to 
> version.
>
> Since the database is provided by our database group we initialize the 
> database in the following way
>
>/opt/rt4/sbin/rt-setup-database --dba-password=$RT_DB_PASS --action init 
> --skip-create
>
> This creates the database shell with just the default content to get a 
> functioning RT install.  We then enable full text searching using
>
>   /opt/rt4/sbin/rt-setup-fulltext-index --dba ${RT_DB_USER} --dba-password 
> ${RT_DB_PASS} --table=AttachmentsIndex --column=ContentIndex --index-type=GIN
>
> followed by installing any plugins that we need to install using a git 
> checkout + make + make install + make initdb (if required).  We version 
> control all the configuration files and drop them into place when needed.
>
> So far this has allowed us to get a fully reproducible base installation of 
> RT.  We then apply our scripts to add custom fields, populate their values, 
> make changes to initial data configurations such as default templates and 
> scrips, etc.
>
> This makes for an easy way to create the base RT with all our customizations. 
>  We only run this if we're running tests to ensure that starting from scratch 
> still works as expected, otherwise we make a backup of the database and just 
> restore that because it's _so much faster_.
>
> - Original Message -
> | 
> | Hi,
> | 
> | I've had a look through the list archives and seen a couple of mentions
> | of this but nothing recent and thought I'd ask again in case there is
> | something new out there.
> | 
> | What are people doing to manage reproducable deployments of RT other
> | than just dumping the database of a production machine and loading on a
> | development one.
> | 
> | I am using puppet currently to deploy RT.
> | 
> | Puppet does a good job of getting RT installed and running.
> | 
> | I am struggling with how to manage the RT configuration itself, the
> | stuff that is done from within the web interface or from initialdata
> | using rt-setup-database.
> | 
> | We use vagrant for the development environment and the ideal situation
> | is that running "vagrant up" will bring up a copy of RT running the
> | latest config.
> | 
> | I want all changes on the production machines done not by the web
> | interface but in some sort of reproducable way.
> | 
> | What I have so far is a hacked up solution using a custom script to call
> | rt_setup_database and using my own custom fragments to init the data.
> | 
> | The main issue here is I wanted it to be idempotent so if called from
> | puppet no harm is done if it has already made the change.
> | 
> | So far I'm doing ugly things like using the @Init section to check if a
> | particular change exists in the database already and not making it if it
> | does.  This also prevents adding multiple entries for things when the
> | code is run multiple times.
> | 
> | My solution is working although it feels clunky.
> | 
> | I guess one better option would be a full puppet implementation modeli

[rt-users] Reproducible RT Configuration management

2016-05-29 Thread Bart Bunting

Hi,

I've had a look through the list archives and seen a couple of mentions
of this but nothing recent and thought I'd ask again in case there is
something new out there.

What are people doing to manage reproducable deployments of RT other
than just dumping the database of a production machine and loading on a
development one.

I am using puppet currently to deploy RT.

Puppet does a good job of getting RT installed and running.

I am struggling with how to manage the RT configuration itself, the
stuff that is done from within the web interface or from initialdata
using rt-setup-database.

We use vagrant for the development environment and the ideal situation
is that running "vagrant up" will bring up a copy of RT running the
latest config.

I want all changes on the production machines done not by the web
interface but in some sort of reproducable way.

What I have so far is a hacked up solution using a custom script to call
rt_setup_database and using my own custom fragments to init the data.

The main issue here is I wanted it to be idempotent so if called from
puppet no harm is done if it has already made the change.

So far I'm doing ugly things like using the @Init section to check if a
particular change exists in the database already and not making it if it
does.  This also prevents adding multiple entries for things when the
code is run multiple times.

My solution is working although it feels clunky.

I guess one better option would be a full puppet implementation modeling all of
Rt's configuration.  That just felt like a job far too big to tackle :(.

Does anyone have any suggestions or stories of how they are managing
this situation?

Kind regards
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Los Angeles - September, 2016


Re: [rt-users] Error when initializing database with external auth enabled

2016-05-29 Thread Bart Bunting
Hi Jim,

Sorry for not posting the relevant details.  It is a totally new install
being built to replace our customized version of rt 3.6 :).   Probably
time for an upgrade :).

Here are the configuration details that are to do with authentication.

As previously mentioned I think the error is happening when RT is trying
to use the external ldap server to canonicalize the root user when it's
added from initialdata:

use utf8;
#* Authentication
# configure external authentication

#Set ($ExternalAuth, 1);
Set( $ExternalAuthPriority, ['URSYS_LDAP'] );
Set( $ExternalInfoPriority, ['URSYS_LDAP'] );

# Make users created from LDAP Privileged
Set( $UserAutocreateDefaultsOnLogin, { Privileged => 1 } );

# Users should still be autocreated by RT as internal users if they
# fail to exist in an external service; this is so requestors (who
# are not in LDAP) can still be created when they email in.
Set($AutoCreateNonExternalUsers, 1);

# LDAP configuration; see RT::Authen::ExternalAuth::LDAP for
# further details and examples
Set($ExternalSettings, {
'URSYS_LDAP'   =>  {
'type' =>  'ldap',
'server'   =>  'xxx',
'base' =>  'cn=users,cn=accounts,dc=xxx',
'user' => 'uid=system,cn=sysaccounts,cn=etc,dc=xxx',
'pass' => 'xxx',
'filter' => '(&(memberOf=cn=helpdesk-*))',
'attr_match_list'  => [
'Name',
],
'attr_map' => {
'Name' => 'uid',
'EmailAddress' => 'mail',
},
},
} );

#* Ldapimport Configuration

Set($LDAPBase,'cn=users,cn=accounts,dc=xxx');
Set($LDAPHost,'xxx');
Set($LDAPUser,'uid=system,cn=sysaccounts,cn=etc,dc=xxx');
Set($LDAPPassword,'xxx');
Set($LDAPFilter, '(&(memberOf=cn=helpdesk-*))');
Set($LDAPMapping, {Name => 'uid', # required
   EmailAddress => 'mail',
   RealName => 'cn',
   WorkPhone=> 'telephoneNumber',
   Organization => 'departmentName'});

# create users as privileged
Set($LDAPCreatePrivileged, 1);

# sync Groups from LDAP into RT
Set($LDAPGroupBase, 'cn=accounts,dc=xxx');
Set($LDAPGroupFilter, '(&(objectClass=groupofnames)(cn=helpdesk-*))');
Set($LDAPGroupMapping, {Name   => 'cn',
Description   => 'description',
Member_Attr=> 'member',
Member_Attr_Value  => 'dn',
});

#* Slack Notifier configuration
# All parameters with the exclusion of Proxy are directly passed to the 
WebService::Slack::IncomingWebHook object




Kind regards
Bart

Jim Brandt <jbra...@bestpractical.com> writes:

> To clarify the previous question, if you were using 
> RT::Authen::ExternalAuth in a previous version of RT (pre-4.4) and have 
> it pulled in as a Plugin, you need to remove it because it is now in 
> core. It's not clear to me if your RT_SiteConfig.pm is from an earlier 
> RT version. If so, you will need to make some updates due to the RT 
> version change:
>
> https://docs.bestpractical.com/rt/4.4.1/UPGRADING-4.4.html
>
> On 5/25/16 10:21 PM, Bart Bunting wrote:
>> Peter,
>>
>> Not sure, but this is a new install using rt 4.4.
>>
>>
>>
>> Kind regards
>> Peter Viskup <skupko...@gmail.com> writes:
>>
>>> Couldn't this be related to RT::Authen::ExternalAuth migration to RT
>>> core since 4.4 version?
>>>
>>> https://docs.bestpractical.com/rt/4.4.0/UPGRADING-4.4.html
>>>
>>> --
>>> Peter
>>>
>>> On Wed, May 25, 2016 at 2:26 AM, Bart Bunting <bart.bunt...@ursys.com.au> 
>>> wrote:
>>>>
>>>> Hi there,
>>>>
>>>> I may be just missing something but this is failing miserably for me and
>>>> I am not sure what the correct way to fix it is:
>>>>
>>>> Running rt 4.4.1 rc1 as of today.
>>>>
>>>> The situation is I have external authentication working fine using both
>>>> RT::Authen::ExternalAuth and RT::LDAPImport.
>>>>
>>>> I use puppet to provision the machine.
>>>>
>>>> When I have the external authentication configuration enabled in
>>>> RT_SiteConfig.pm the
>>>> initial database import breaks.  I think this is because when it trys to
>>>> add the "root" user it attempts to canonicalize the name from ldap which
>>>> fails.
>>>>
>>>> Here is an example of the run:
>>>>
>>>>   make initialize-database
>>>> /usr/bin/perl -I/opt/rt4/local/lib -I/opt/rt4/lib sbin/rt-setup-datab

Re: [rt-users] Error when initializing database with external auth enabled

2016-05-25 Thread Bart Bunting
Peter,

Not sure, but this is a new install using rt 4.4.



Kind regards
Peter Viskup <skupko...@gmail.com> writes:

> Couldn't this be related to RT::Authen::ExternalAuth migration to RT
> core since 4.4 version?
>
> https://docs.bestpractical.com/rt/4.4.0/UPGRADING-4.4.html
>
> -- 
> Peter
>
> On Wed, May 25, 2016 at 2:26 AM, Bart Bunting <bart.bunt...@ursys.com.au> 
> wrote:
>>
>> Hi there,
>>
>> I may be just missing something but this is failing miserably for me and
>> I am not sure what the correct way to fix it is:
>>
>> Running rt 4.4.1 rc1 as of today.
>>
>> The situation is I have external authentication working fine using both
>> RT::Authen::ExternalAuth and RT::LDAPImport.
>>
>> I use puppet to provision the machine.
>>
>> When I have the external authentication configuration enabled in
>> RT_SiteConfig.pm the
>> initial database import breaks.  I think this is because when it trys to
>> add the "root" user it attempts to canonicalize the name from ldap which
>> fails.
>>
>> Here is an example of the run:
>>
>>   make initialize-database
>> /usr/bin/perl -I/opt/rt4/local/lib -I/opt/rt4/lib sbin/rt-setup-database 
>> --action init --prompt-for-dba-password
>> In order to create or update your RT database, this script needs to connect 
>> to your  mysql instance on localhost (port '') as root
>> Please specify that user's database password below. If the user has no 
>> database
>> password, just press return.
>>
>> Password:
>> Working with:
>> Type:   mysql
>> Host:   localhost
>> Port:
>> Name:   rt4
>> User:   rt
>> DBA:root
>> Now creating a mysql database rt4 for RT.
>> Done.
>> Now populating database schema.
>> Done.
>> Now inserting database ACLs.
>> Done.
>> Now inserting RT core system objects.
>> [15076] [Wed May 25 00:15:29 2016] [critical]: Undefined subroutine 
>> ::Authen::ExternalAuth::LDAP::CanonicalizeUserInfo called at 
>> /opt/rt_source/sbin/../lib/RT/User.pm line 787. 
>> (/opt/rt_source/sbin/../lib/RT.pm:390)
>> Undefined subroutine ::Authen::ExternalAuth::LDAP::CanonicalizeUserInfo 
>> called at /opt/rt_source/sbin/../lib/RT/User.pm line 787.
>> Makefile:386: recipe for target 'initialize-database' failed
>> make: *** [initialize-database] Error 2
>> root@rt-dev:/opt/rt_source#
>>
>> I can work around this by having puppet install one version of 
>> RT_SiteConfig.pm without
>> external authentication configured, run the database import and then
>> replace it with a version with external auth enabled.
>>
>> This works, I've tested it.
>>
>> It just feels terribly ugly and wrong.
>>
>> Can anyone suggest what I might be doing wrong here or is this a genuine
>> issue?
>>
>>
>> Kind regards
>> Bart
>> --
>>
>> Bart Bunting - URSYS
>> PH: 02 87452811
>> Mbl: 0409560005
>> -
>> RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
>> * Los Angeles - September, 2016
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Los Angeles - September, 2016


[rt-users] Error when initializing database with external auth enabled

2016-05-24 Thread Bart Bunting

Hi there,

I may be just missing something but this is failing miserably for me and
I am not sure what the correct way to fix it is:

Running rt 4.4.1 rc1 as of today.

The situation is I have external authentication working fine using both
RT::Authen::ExternalAuth and RT::LDAPImport.

I use puppet to provision the machine.

When I have the external authentication configuration enabled in
RT_SiteConfig.pm the
initial database import breaks.  I think this is because when it trys to
add the "root" user it attempts to canonicalize the name from ldap which
fails.

Here is an example of the run:

  make initialize-database
/usr/bin/perl -I/opt/rt4/local/lib -I/opt/rt4/lib sbin/rt-setup-database 
--action init --prompt-for-dba-password
In order to create or update your RT database, this script needs to connect to 
your  mysql instance on localhost (port '') as root
Please specify that user's database password below. If the user has no database
password, just press return.

Password: 
Working with:
Type:   mysql
Host:   localhost
Port:   
Name:   rt4
User:   rt
DBA:root
Now creating a mysql database rt4 for RT.
Done.
Now populating database schema.
Done.
Now inserting database ACLs.
Done.
Now inserting RT core system objects.
[15076] [Wed May 25 00:15:29 2016] [critical]: Undefined subroutine 
::Authen::ExternalAuth::LDAP::CanonicalizeUserInfo called at 
/opt/rt_source/sbin/../lib/RT/User.pm line 787. 
(/opt/rt_source/sbin/../lib/RT.pm:390)
Undefined subroutine ::Authen::ExternalAuth::LDAP::CanonicalizeUserInfo 
called at /opt/rt_source/sbin/../lib/RT/User.pm line 787.
Makefile:386: recipe for target 'initialize-database' failed
make: *** [initialize-database] Error 2
root@rt-dev:/opt/rt_source# 

I can work around this by having puppet install one version of RT_SiteConfig.pm 
without
external authentication configured, run the database import and then
replace it with a version with external auth enabled.

This works, I've tested it.

It just feels terribly ugly and wrong.

Can anyone suggest what I might be doing wrong here or is this a genuine
issue?


Kind regards
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Los Angeles - September, 2016


Re: [rt-users] Problems with external auth and double prompting for authentication

2016-05-11 Thread Bart Bunting
Jim,

Found it.

There was a random apache process running that was causing the error.
Somehow it must have been started by hand.

Resulted in odd behaviour as sometimes it would work and sometimes not.

Thanks for your help!


Kind regards

Bart

Jim Brandt <jbra...@bestpractical.com> writes:

> Browser authentication is typically triggered by an Apache 
> configuration, so if your goal is to have just RT authentication, you 
> might compare your Apache configuration with the example in the docs:
>
> https://docs.bestpractical.com/rt/4.4.0/web_deployment.html
>
> On 5/11/16 3:50 AM, Bart Bunting wrote:
>>
>>
>> Hi everyone,
>>
>> I have been trying to get external authentication with ldapauth and
>> ldapimport working on a brand new rt 4.4 from the latest pull of
>> 4.4-trunk.
>>
>> I have the ldap authentication and rt-ldapimport working correctly
>> against our ldap server.
>>
>> The one issue I can not appear to resolve is that I am prompted first
>> by the browsers authentication prompt and then by the RT login screen.
>> So you need to enter your authentication credentials twice.
>>
>> I am hoping to just have the RT login screen, no browser authentication
>> prompt.
>>
>> I'm sure it's something simple but I'm pulling my hair out :).
>>
>> If someone could take a look at my config and tell me where the error is
>> I'd be eternally grateful:
>>
>> Here is the section of my rt config.
>>
>> The first few options are commented out as they are part of previous
>> attempts to make it work as expected.
>>
>> #* Authentication
>> # configure external authentication
>>
>> #Set($WebRemoteUserAuth, 1);
>> # check authentication on each request rather than just once
>> #Set($WebRemoteUserContinuous, 1);
>>
>> # fall back to rt login if external auth fails.
>> #Set($WebFallbackToRTLogin, 1);
>>
>> Set ($ExternalAuth, 1);
>> Set( $ExternalAuthPriority, ['URSYS_LDAP'] );
>> Set( $ExternalInfoPriority, ['URSYS_LDAP'] );
>>
>> # Make users created from LDAP Privileged
>> Set( $UserAutocreateDefaultsOnLogin, { Privileged => 1 } );
>>
>> # Users should still be autocreated by RT as internal users if they
>> # fail to exist in an external service; this is so requestors (who
>> # are not in LDAP) can still be created when they email in.
>> Set($AutoCreateNonExternalUsers, 1);
>>
>> # LDAP configuration; see RT::Authen::ExternalAuth::LDAP for
>> # further details and examples
>> Set($ExternalSettings, {
>> 'URSYS_LDAP'   =>  {
>>  'type' =>  'ldap',
>>  'server'   =>  'ldap.x,
>>  'base' =>  'cn=users,cn=accounts,dc=xx',
>>  'user' => 'uid=system,cn=sysaccounts,x',
>>  'pass' => 'xx',
>>  'filter' => '(&(memberOf=cn=helpdesk-*))',
>>  'attr_match_list'  => [
>>  'Name',
>>  ],
>>  'attr_map' => {
>>  'Name' => 'uid',
>>  'EmailAddress' => 'mail',
>>  },
>>  },
>> } );
>>
>> # * rt-ldapimport configuration
>> # enable plugin
>> Plugin( qw(RT::LDAPImport));
>>
>> Set($LDAPBase,'cn=users,cn=accounts,x');
>> Set($LDAPHost,'ldap.x');
>> Set($LDAPUser,'uid=system,cn=sysaccounts,xx');
>> Set($LDAPPassword,'');
>> Set($LDAPFilter, '(&(memberOf=cn=helpdesk-*))');
>> Set($LDAPMapping, {Name => 'uid', # required
>> EmailAddress => 'mail',
>> RealName => 'cn',
>> WorkPhone=> 'telephoneNumber',
>> Organization => 'departmentName'});
>> # create users as privileged
>>   Set($LDAPCreatePrivileged, 1);
>>
>> # sync Groups from LDAP into RT
>> Set($LDAPGroupBase, 'cn=accounts,x');
>> Set($LDAPGroupFilter, '(&(objectClass=groupofnames)(cn=helpdesk-*))');
>> Set($LDAPGroupMapping, {Name   => 'cn',
>>  Description   => 'description',
>>  Member_Attr=> 'member',
>>  Member_Attr_Value  => 'dn',
>> });
>>
>> As above all the ldap stuff appears to work apart from the double
>> request for authentication.
>>
>>
>>
>> Kind regards
>> Bart
>>
> -
> RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
> * Washington DC - May 23 & 24, 2016
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Washington DC - May 23 & 24, 2016


Re: [rt-users] Problems with external auth and double prompting for authentication

2016-05-11 Thread Bart Bunting
Hi Jim,

Thanks for the quick reply.

I should have included my apache virtualhost config:

Here it is for reference.  I did have ldap auth working at one point but
it is totally commented out in the  config.

Apache is apache2  2.4.18-2ubuntu3
amd64 debian Xenial LTS

# 
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# 


  ServerName helpdesk.in.urnet.com.au

  ## Vhost docroot
  DocumentRoot "/opt/rt4/share/html"
  ## Alias declarations for resources outside the DocumentRoot
  AliasMatch /NoAuth/images/ "/opt/rt4/share/html/NoAuth/images/"

  ## Directories, there should at least be a declaration for /opt/rt4/share/html
  
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
  

  ## Logging
  ErrorLog "/var/log/apache2/helpdesk.in.urnet.com.au_error.log"
  ServerSignature Off
  CustomLog "/var/log/apache2/helpdesk.in.urnet.com.au_access.log" combined 

  ## Custom fragment
  
AddDefaultCharset UTF-8
ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/

DocumentRoot "/opt/rt4/share/html"

# bart: disabled for now until we move towards SSO
#   AuthType Basic
#   AuthName "Ursys LDAP"
#   AuthBasicProvider ldap
#   AuthLDAPURL ldap://ldap.:389/cn=accounts,?uid?sub
#   AuthLDAPBindDN uid=system,cn=sysaccounts,xxx
#   AuthLDAPBindPassword x
#   Require ldap-group cn=noc,cn=groups,xx

Require all granted

Options +ExecCGI
AddHandler fcgid-script fcgi






Is there anything wrong with that, it pritty much mirrors the config
described in the documentation.

If there is a better way of doing things other than mod_fastcgi I'm open to 
trying that.


Kind regards

Bart






Jim Brandt <jbra...@bestpractical.com> writes:

> Browser authentication is typically triggered by an Apache 
> configuration, so if your goal is to have just RT authentication, you 
> might compare your Apache configuration with the example in the docs:
>
> https://docs.bestpractical.com/rt/4.4.0/web_deployment.html
>
> On 5/11/16 3:50 AM, Bart Bunting wrote:
>>
>>
>> Hi everyone,
>>
>> I have been trying to get external authentication with ldapauth and
>> ldapimport working on a brand new rt 4.4 from the latest pull of
>> 4.4-trunk.
>>
>> I have the ldap authentication and rt-ldapimport working correctly
>> against our ldap server.
>>
>> The one issue I can not appear to resolve is that I am prompted first
>> by the browsers authentication prompt and then by the RT login screen.
>> So you need to enter your authentication credentials twice.
>>
>> I am hoping to just have the RT login screen, no browser authentication
>> prompt.
>>
>> I'm sure it's something simple but I'm pulling my hair out :).
>>
>> If someone could take a look at my config and tell me where the error is
>> I'd be eternally grateful:
>>
>> Here is the section of my rt config.
>>
>> The first few options are commented out as they are part of previous
>> attempts to make it work as expected.
>>
>> #* Authentication
>> # configure external authentication
>>
>> #Set($WebRemoteUserAuth, 1);
>> # check authentication on each request rather than just once
>> #Set($WebRemoteUserContinuous, 1);
>>
>> # fall back to rt login if external auth fails.
>> #Set($WebFallbackToRTLogin, 1);
>>
>> Set ($ExternalAuth, 1);
>> Set( $ExternalAuthPriority, ['URSYS_LDAP'] );
>> Set( $ExternalInfoPriority, ['URSYS_LDAP'] );
>>
>> # Make users created from LDAP Privileged
>> Set( $UserAutocreateDefaultsOnLogin, { Privileged => 1 } );
>>
>> # Users should still be autocreated by RT as internal users if they
>> # fail to exist in an external service; this is so requestors (who
>> # are not in LDAP) can still be created when they email in.
>> Set($AutoCreateNonExternalUsers, 1);
>>
>> # LDAP configuration; see RT::Authen::ExternalAuth::LDAP for
>> # further details and examples
>> Set($ExternalSettings, {
>> 'URSYS_LDAP'   =>  {
>>  'type' =>  'ldap',
>>  'server'   =>  'ldap.x,
>>  'base' =>  'cn=users,cn=accounts,dc=xx',
>>  'user' => 'uid=system,cn=sysaccounts,x',
>>  'pass' => 'xx',
>>  'filter' => '(&(memberOf=cn=helpdesk-*))',
>>  'attr_match_list'  => [
>>  'Name

[rt-users] Problems with external auth and double prompting for authentication

2016-05-11 Thread Bart Bunting


Hi everyone,

I have been trying to get external authentication with ldapauth and
ldapimport working on a brand new rt 4.4 from the latest pull of
4.4-trunk.

I have the ldap authentication and rt-ldapimport working correctly
against our ldap server.

The one issue I can not appear to resolve is that I am prompted first
by the browsers authentication prompt and then by the RT login screen.
So you need to enter your authentication credentials twice.

I am hoping to just have the RT login screen, no browser authentication
prompt.

I'm sure it's something simple but I'm pulling my hair out :).

If someone could take a look at my config and tell me where the error is
I'd be eternally grateful:

Here is the section of my rt config.

The first few options are commented out as they are part of previous
attempts to make it work as expected.

#* Authentication
# configure external authentication

#Set($WebRemoteUserAuth, 1);
# check authentication on each request rather than just once
#Set($WebRemoteUserContinuous, 1);

# fall back to rt login if external auth fails.
#Set($WebFallbackToRTLogin, 1);

Set ($ExternalAuth, 1);
Set( $ExternalAuthPriority, ['URSYS_LDAP'] );
Set( $ExternalInfoPriority, ['URSYS_LDAP'] );

# Make users created from LDAP Privileged
Set( $UserAutocreateDefaultsOnLogin, { Privileged => 1 } );

# Users should still be autocreated by RT as internal users if they
# fail to exist in an external service; this is so requestors (who
# are not in LDAP) can still be created when they email in.
Set($AutoCreateNonExternalUsers, 1);

# LDAP configuration; see RT::Authen::ExternalAuth::LDAP for
# further details and examples
Set($ExternalSettings, {
'URSYS_LDAP'   =>  {
'type' =>  'ldap',
'server'   =>  'ldap.x,
'base' =>  'cn=users,cn=accounts,dc=xx',
'user' => 'uid=system,cn=sysaccounts,x',
'pass' => 'xx',
'filter' => '(&(memberOf=cn=helpdesk-*))',
'attr_match_list'  => [
'Name',
],
'attr_map' => {
'Name' => 'uid',
'EmailAddress' => 'mail',
},
},
} );

# * rt-ldapimport configuration
# enable plugin
Plugin( qw(RT::LDAPImport));

Set($LDAPBase,'cn=users,cn=accounts,x');
Set($LDAPHost,'ldap.x');
Set($LDAPUser,'uid=system,cn=sysaccounts,xx');
Set($LDAPPassword,'');
Set($LDAPFilter, '(&(memberOf=cn=helpdesk-*))');
Set($LDAPMapping, {Name => 'uid', # required
   EmailAddress => 'mail',
   RealName => 'cn',
   WorkPhone=> 'telephoneNumber',
   Organization => 'departmentName'});
# create users as privileged
  Set($LDAPCreatePrivileged, 1);

# sync Groups from LDAP into RT
Set($LDAPGroupBase, 'cn=accounts,x');
Set($LDAPGroupFilter, '(&(objectClass=groupofnames)(cn=helpdesk-*))');
Set($LDAPGroupMapping, {Name   => 'cn',
Description   => 'description',
Member_Attr=> 'member',
Member_Attr_Value  => 'dn',
});

As above all the ldap stuff appears to work apart from the double
request for authentication.



Kind regards
Bart
-- 

Bart Bunting - URSYS
PH: 02 87452811
Mbl: 0409560005
-
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Washington DC - May 23 & 24, 2016