leifericf

leifericf

Authentication and authorisation via Azure Active Directory (Azure AD)

Continuing the discussion from Ueberauth, Ruby CAS and other SSO options for Elixir or Phoenix:

Has anyone successfully implemented client-side authentication and authorisation via Azure Active Directory (Azure AD)? I’ve been looking into the libraries shield, oidcc (Erlang library), oauth2, guardian and ueberauth today; trying to wrap my head around the essential differences between these libraries, and how to make use of them. Any advice and pointers would be greatly appreciated.

I’m finding it difficult to get a good understanding of how these libraries differ. It would be particularly useful if someone would be so kind as to highlight the important differences between the aforementioned libraries, to make it easier to understand their intended usages.

Edit: Below is a related thread, for future reference.

Marked As Solved

OvermindDL1

OvermindDL1

shield looks like an opinionated simple oauth2 and auth library only.

oidcc looks like an OpenID Connect client library (nothing else)

guardian is a token library (you really don’t need it in 99% of cases, don’t look at it unless JWT means something to you and you know the costs behind it)

ueberauth is an unopinionated authentication framework pluggable via a huge variety of strategies (and it’s easy to make your own), I’d use this one as the strategies means you can change and update auth far more easily.

Also Liked

whossname

whossname

I only just saw this thread. I’m in the process of publishing an Azure Active Directory authentication library for ueberauth right now! Still has a bit of work to go, mostly around testing and documentation.

https://github.com/whossname/ueberauth_azure_ad

Functionally the main thing missing is validation for the nonce and some error handling.

OvermindDL1

OvermindDL1

More direct control can be good (although I always end up writing my own strategies for ueberauth anyway, super easy to do and you get that control back), but it also means that if you need to support other things then you have a lot more work you end up having to do. Either is fine depending on your expected current and future work though.

leifericf

leifericf

Solid advice, thanks again.

I’ll probably go for ueberauth, looking at the existing strategies to get some ideas on how it’s done.

Where Next?

Popular in Questions Top

sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
nobody
How to bind a phoenix app to a specific ip address? could not find anything about that, nowhere, unfortunately, but for me this is quite...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> somethi...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
yawaramin
In the Dialyzer docs ( dialyzer — OTP 29.0.2 (dialyzer 6.0.1) ), there is a way to turn off a specific warning for a function: -dialyzer...
New
jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
New

Other popular topics Top

Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement