Hello Support,
This seems to be a common issue with Open On Demand but I haven’t come across a definitive solution.
I note however that i am using shibboleth authentication and have setup Open On Demand authentication following this guide to the letter, Shibboleth — Open OnDemand 2.0.5 documentation
I am able to authenticate to with my Shibboleth 3.4.7 Identity Provider, But i get an error,
Error – failed to map user (user@tld.tld.tld)
Kindly help with a workaround , because I haven’t found a solution from the recently posted identical issues.
You’re trying to map the user user@some-email.edu to just user. This is done through regular expressions and the user_map_cmd in versions 1.8 and below and user_map_match in versions 2.0 and above.
Hello Jeff,
I have reviewed the documentation and changed to user_map_match: '^([^@]+)@tld.ac.ug$'
I mapped user_env: null such that it obtains values from REMOTE_USER CGI variables.
However I am still getting the same error with user mapping and users dont get redirected to the OOD dashboard.
Are there any missing pieces of this in other parts of the documentation and in terms of user provisioning and roles mapping.
When I check the logs under /var/log/ondemand-nginx/ood/ both access and error log files are empty. Could you comment on logging setup or where the actual logs are being kept.
I have pasted all the configs I have in the file /etc/ood/config/ood_portal.yml
First, I’d get rid of user_env: null. If you’re using the default then just comment that out or don’t use it. Actually forcing it to null could be the issue.
If that’s not the issue, I’d still just get rid of it because it may lead to further confusion later on down the road.
The next thing I’d look at is the regular expression "^([^@]+)@tld.ac.ug$" and how it’s being formatted from yaml → the apache config. You’ve listed here the ood_portal.yml, what does it show up as in the ood-portal.conf? You may need to use single quotes here for safety - there’s a similar issue on this discourse about single and double quotes and how it affects yaml.
I quickly tested that regex using ood_auth_map.regex in 1.8 and in lua for 2.0 and they both work out OK. So it’s not the regex directly but maybe some formatting issue interpolating it from YAML into the commands.
Lastly you could set lua_log_level: 'debug' and you’ll start to see log messages like this in your apache logs (though they’ll likely indicate what we already know - you’re mapping user@email => user@email).
Hello Jeff,
Thanks for the replies and recommendations, ood-portal.yml (3.9 KB)
I got rid of user_env: null but that didnt solve the issue. I also enabled the lua logs but still didn’t see anything in the httpd logs that point to the root cause.
FYI, I am running version 2.0 of OnDemand.
For further troubleshooting I have attached a copy of the OOD configuration file, ood_portal.yml
Kindly look through to see if something is misconfigured.
Sorry - did you modify the file you uploaded? Your comments indicate it’s tld.ac.ug but the file has tld.tld.tld? It may be as simple as running the ood_portal_generator to update the ood-portal.conf file from the yaml input you’ve given.
# Authenticated-user to system-user mapping configuration
#
SetEnv OOD_USER_MAP_MATCH "^([^@]+)@tld.tld.tld$"
If I need to look at a different set of logs, you can also let me know.
I also upgraded to the latest version of OnDemand, v2.0.13 but the same error persists.
Yea I would grep for Mapped in that file. That directory is the right location, and any *error.log is the right place (you may have my_servername_error.log )
Hello Jeff,
I was able to succeed with the Shibboleth Authentication. I tore down everything and re-installed OOD version 2.0.13 and configured following the tips from this discourse. I am able to authenticate and view the dashboard. Thanks for your help.
However other users are unable to access the dashboard.
They get an error, Home directory not found
Is there a part in the documentation where level of authorization is configured. In that not everyone should be able to configure, add, modify or even delete the HPC clusters or hosts. (Still, I am using Shibboleth as the authentication type)
This is expected. Something out of bounds needs to create a HOM directory for these users. Here are docs on how to show a custom page for this error. If they, say, ssh somewhere will they get a HOME directory created? Or is there something else going on like you need to mount more home shares?
Most things in OOD are based of POSIX file permissions on the host. Documentation may take this for granted a bit. Cluster’s are viewable though /etc/ood/config/clusters.d files. Just make sure they’re readable by everyone and writeable only by root - and there’s your authorization. Same with apps /var/www/ood, or app config files in /etc/config/apps. Note we have some automation packages that’ll set file permissions accordingly.