Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ADR to select an authentication approach #57

Merged
merged 1 commit into from
Jul 12, 2024

Conversation

jazairi
Copy link
Contributor

@jazairi jazairi commented Jul 11, 2024

Why these changes are being introduced:

We will need authentication in TACOS for the staff UI.

Relevant ticket(s):

How this addresses that need:

This adds an ADR to select an authentication approach from among Devise, Clearance, Sorcery, AuthLogic, and a custom solution using built-in Rails security features.

Side effects of this change:

The decision we make will affect how we implement authentication.

@mitlib mitlib temporarily deployed to tacos-api-pipeline-pr-57 July 11, 2024 17:06 Inactive
@jazairi jazairi temporarily deployed to tacos-api-pipeline-pr-57 July 11, 2024 18:15 Inactive
@jazairi jazairi temporarily deployed to tacos-api-pipeline-pr-57 July 11, 2024 18:31 Inactive

We will need to authenticate users in TACOS to help manage access to the staff interface. The ideal authentication
approach would involve Omniauth integration, as IS&T recently implemented Okta, and
[a strategy already exists](https://github.com/omniauth/omniauth-okta) to authenticate in Okta using Omniauth.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should use that omniauth integration as it seems unsupported, https://github.com/omniauth/omniauth_openid_connect is more likely the path forward.


Ultimately, while all of these alternatives are appealing, there is a distinct advantage to choosing a gem that "just
works" and is widely adopted. Much like our
[decision to use CanCanCan for authorization](https://github.com/MITLibraries/tacos/blob/main/docs/architecture-decisions/0005-use-cancancan-for-authorization.md), I might not feel like Devise is the best authentication gem, but I have
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this will need an updated URL as that linked ADR is changing to 0006

Copy link
Member

@JPrevost JPrevost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solid write up, thanks!

I support the decision in this ADR as written 👍🏻

@jazairi jazairi temporarily deployed to tacos-api-pipeline-pr-57 July 12, 2024 12:26 Inactive
Copy link
Member

@matt-bernhardt matt-bernhardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this write-up. While I'm not separately familiar with the options for authentication gems, I agree with the framing you've provided, and support the decision you reach based on that framing.

While in general I like to build things ourselves, there are certain domains where it feels better to trust in the experience of others. Authentication is one of those domains.

:shipit:

Why these changes are being introduced:

We will need authentication in TACOS for the staff UI.

Relevant ticket(s):

* [TCO-28](https://mitlibraries.atlassian.net/browse/TCO-28)

How this addresses that need:

This adds an ADR to select an authentication approach from among
Devise, Clearance, Sorcery, AuthLogic, and a custom solution using
built-in Rails security features.

Side effects of this change:

We ended up with two ADRs with the same number. Those have been
renumbered for clarity.
@jazairi jazairi temporarily deployed to tacos-api-pipeline-pr-57 July 12, 2024 15:10 Inactive
@jazairi jazairi merged commit 536dc98 into main Jul 12, 2024
2 checks passed
@jazairi jazairi deleted the tco-28-authentication-adr branch July 12, 2024 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants