kokolegorille

kokolegorille

Hello everyone,

Has anyone implemented Single Sign On SPNEGO with Phoenix?

I am trying to authenticate windows users without login. In fact, using IE, they should be able to connect, and be authentified via their windows credentials without the need to fill a login form.

I have seen I will need to play with Kerberos, or NTLM2, and I guess I need to do this with plugs.

I have looked at uWSGI, but it’s outdated…

Does anyone has already done similar authentication?

Thanks for taking time and for any clues.

Showing Posts 1 to 7

tschnibo

tschnibo

Hey Kokolegorille,

I am just considering phoenix (not written any code yet), and this is one major requirement for me to easily deploy in our corporate environment. Have you made any progress on this?

I just looked at the flask-kerberos package:
https://github.com/mkomitee/flask-kerberos/blob/master/flask_kerberos.py

to send a 401 response seems easy with:
https://hexdocs.pm/plug/Plug.Conn.html#send_resp/3
, but of course this is just the “beginning” of the whole process (https://www.ietf.org/rfc/rfc4559.txt)

As stated above I have no clue yet, but would be interested in discussing possible solutions.

Maybe at first just use a python-kerberos package in combination with Guardian and custom responses via plugs? Or just make custom calls to the MIT-Kerberos package?

Best Regards

kokolegorille

kokolegorille OP

I did find some available packages, but did not test them yet. I need to communicate with ADFS 3.0 serving as Idp.

Project was postponed, because of covid-19, but I will soon need to make it work :slight_smile:

tschnibo

tschnibo

Thank you for these packages.

I’ll have to read into the different implementations of SSO, I know that we use Kerberos with key_tab - but you see my knowledge is limited. Maybe I can put together some snippets from these packages.

I just added:

conn
|> put_resp_header("WWW-Authenticate", "Negotiate")
|> send_resp(401,"some body stuff")

to the tutorials sample code in the controller. The first of many problems is solved :rofl:, i now have to enter my password.

But that does certainly not helping you too much. Wishing you good luck! I’ll let you know if I find the golden bullet :wink:

kokolegorille

kokolegorille OP

BTW It’s kind of funny, we are from the same country :slight_smile:

tschnibo

tschnibo

Ah I didn’t see that… it seems that we are a friendlier crowd than one would think :wink: - Good to know that Elixir is “landing” here :wink:

al2o3cr

al2o3cr

We’re working on a a Samly → ADFS connection at work; seems to be going well apart from some oddities with RelayState not being sent. There’s a fix for that merged but not released; for now we’re working around it with a plug that ensures the parameter is present.

tschnibo

tschnibo

Just a follow up, I ended up putting ngnix in front for the kerberos part. Works quite niceish till now. At our place ADFS is just available from outside but not from the internal network. I hope you found a way too.

— All posts loaded —

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews