Redmine as auth backend for another site - django

Everyone in our office has a redmine account and so I would like to know if it's possible to use Redmine as an authentication provider.
We create internal websites using django, and rather than having to set up usernames and passwords for each one, for each person, wouldn't it be nicer if I could just click "login using redmine". Just like how on stackoverflow I can click "login with google" which works with OpenID.
Is there any plugin or facility of redmine I can use to achieve this?

Consider Redmine OAuth provider plugin.
https://github.com/suer/redmine_oauth_provider

You could use the Redmine Rest API authentication. It allows you to use user/password to authenticate.

Related

Use Twitter as Identity Provider in AWS Cognito

I'm want to implement social-sign in with twitter in Cognito and test it using the build in UI page but I cannot find any relevant guidelines to do this.
My use case is to authenticate user with twitter credentials and obtain user information like firstname, lastname, email, country.
I've found this relatively old post: https://aws.amazon.com/blogs/mobile/announcing-twitter-and-digits-support-for-amazon-cognito/
But it seems that the native support for twitter was removed from Cognito? Because in Cognito under Identity Providers there is no twitter option.
Does anyone know what happened regarding this?
From what I've found in the twitter documentation regarding using twitter as a IdP it seems that it is not using OpenID Connect specification but some OAuth1 custom extension (I'm not sure if what I stated is correct): https://developer.twitter.com/en/docs/twitter-for-websites/log-in-with-twitter/guides/implementing-sign-in-with-twitter
But I did not find any OpenId Connect endpoints for twitter like the ones from Microsoft for example (https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration)
Is there any way that I can implement sign-in with twitter in cognito? And also to test this using the cognito build-in login UI?
As far as I know Twitter's current sign-in mechanism is based on OAuth 1.0 which is not OpenID Connect. So I would suggest you building some custom Auth Mechanism using OpenID (there might be already open source solutions), link it to Cognito and inside this custom auth app you authenticate with Twitter OAuth 1.0. So in other words, build a bridge between Cognito and Twitter via custom OpenID app.

Accesing internal webpage using google-map signed-in button

The main webpage of my django server is a google map and I would like to use the signed=true button to give access to some gmail accounts to certain internal webpages.
My idea was to show a button according to whom was logged in using the google-map's signed-in button.
Can somebody give me some insights about if this is possible or what's the best to go with this?
Thanks
I believe that the button you are talking about is part of the Google Maps Javascript API - see:
https://developers.google.com/maps/documentation/javascript/signedin
Essentially the google maps sign in does not appear to offer user authentication that can be used with python. The python version of google maps uses a server key that you set up for your app - see
https://github.com/googlemaps/google-maps-services-python
This is mainly for backend functions like reverse geoname loiokup.
That said, there is nothing to stop you retaining your no sign in google map but adding either google+ authentication or google openid authentication to your app.
Both of these authentications are available through the django-social-auth project. This involves installing the python-social-auth app, syncing the database, adding appropriate oauth server details and adding the social auth project to you AUTHENTICATION_BACKENDS setting.

Login using Google+ on a Django Site

Hi everyone I want to put a google+ login button on my website (coded in django) w/o using any 3rd party tool like Django-Social-Auth, etc.
So can anyone point me to some tutorial or help me how to do it. I want user to login via Google+ and then I can get their information at backend in django views. I will be then hosting it on Google App Engine so if some GAE API can help me then it will also be great.
I figured out the solution:
Got access_token using https://developers.google.com/+/web/signin/javascript-flow
Then send out the access_token to Server for getting User Details, considering these security measures (https://developers.google.com/+/web/signin/client-to-server-flow).
Use Django CSRF Token functionality to send token safely (https://docs.djangoproject.com/en/dev/ref/contrib/csrf/).

python/django - login with google/facebook in our website except using openID

I want to make a website which is enable to login with gmail or facebook. I am using python and django framwork. Can anybody give me some idea about how to design and implement.
You can take a look at django-social-auth, it allows you to use social authentications from many websites like facebook, twitter etc.
Update:
As #Rob Agar mentioned in the comments django-social-auth has been deprecated and python-social-auth should be used instead.

Django - SSO with multiple auth sources - LDAP?

I have an application running on Django and a bugtracker (redmine).
I'd like to have the same accounts for my users on both applications.
So I decided to install an LDAP on my server and plug my apps on.
In the mean time, in the future I'd like to give my users the ability to attach their accounts with OAuth, OpenID (like Google, Facebook, ...).
Is LDAP still a good idea for this purpose ?
Is it something usual and how easy ?
With a unique LDAP you get resolved the duplicated account problem but you dont get the SSO or SLO functionality. The Ldap plugin of Django and Redmine are easy to configure and are well documented. Same happens with the OpenLdap server.
If you are thinking in the future, I think a nice solution would be to set a SAML enviroment.
Use simplesamlphp to build a IdP and enable the authentication sources that you want: Facebook, Gmail, Ldap, etc
Use djangosaml2 to add SAML support to django and connect it with the IdP
Use this plugin to add SAML support to Redmine and connect it with the IdP
At the end you get a system based on SAML, a protocol that actually are using Google and other big companies.