-
Notifications
You must be signed in to change notification settings - Fork 8
Tech Question: Do we even Need an AUTH_API_KEY? π π€·ββοΈ Β #277
Copy link
Copy link
Open
Labels
T1hTime Estimate 1 HourTime Estimate 1 Hourchorea tedious but necessary task often paying technical debta tedious but necessary task often paying technical debtdiscussShare your constructive thoughts on how to make progress with this issueShare your constructive thoughts on how to make progress with this issueelixirPull requests that update Elixir codePull requests that update Elixir codehelp wantedIf you can help make progress with this issue, please comment!If you can help make progress with this issue, please comment!priority-1Highest priority issue. This is costing us money every minute that passes.Highest priority issue. This is costing us money every minute that passes.questionA question needs to be answered before progress can be made on this issueA question needs to be answered before progress can be made on this issuetech-debtA feature/requirement implemented in a sub-optimal way & must be re-writtenA feature/requirement implemented in a sub-optimal way & must be re-writtentechnicalA technical issue that requires understanding of the code, infrastructure or dependenciesA technical issue that requires understanding of the code, infrastructure or dependencies
Metadata
Metadata
Assignees
Labels
T1hTime Estimate 1 HourTime Estimate 1 Hourchorea tedious but necessary task often paying technical debta tedious but necessary task often paying technical debtdiscussShare your constructive thoughts on how to make progress with this issueShare your constructive thoughts on how to make progress with this issueelixirPull requests that update Elixir codePull requests that update Elixir codehelp wantedIf you can help make progress with this issue, please comment!If you can help make progress with this issue, please comment!priority-1Highest priority issue. This is costing us money every minute that passes.Highest priority issue. This is costing us money every minute that passes.questionA question needs to be answered before progress can be made on this issueA question needs to be answered before progress can be made on this issuetech-debtA feature/requirement implemented in a sub-optimal way & must be re-writtenA feature/requirement implemented in a sub-optimal way & must be re-writtentechnicalA technical issue that requires understanding of the code, infrastructure or dependenciesA technical issue that requires understanding of the code, infrastructure or dependencies
Continuing on from our discussion in: #268
and with the benefit of our knowledge from
FlutterandJS-land ...Trying to think about
authfrom first principals ...How are we going to enable
authin ourFlutterapp with the least code possibleand without the need for keeping "secrets" ... π
Why do we have an
AUTH_API_KEYin the first place?We (I) created an
AUTH_API_KEYbecause I thought that it was needed for identifying/verifying whichAppis usingauthfor authenticating the person. But when I think about it with my beginner's mind I'm forced to think "Why...?" π€·ββοΈIf someone is running a
PhoenixApp onlocalhostthen we know they are in "Dev" mode, right? π©βπ»So why do they need to have an
AUTH_API_KEYto identify them? π€The
AUTH_API_KEYdoesn't provide thepersonusing theappany additional securityit's just an extra step for the Dev/Engineer to setup ...
Does
authneed anAPI_KEYor can we just do domain-based verification? πCan we just create an "Allowed List" for urls that are allowed to use
authand reject any other URL?We currently require the
URLto be defined for anapp, e.g: https://auth.dwyl.com/apps/45If we are doing a domain-based verification, then do we need an
AUTH_API_KEY? πWhat real additional security is the
AUTH_API_KEYgiving us?Is it just perceived security because we've been trained to think that
API Keysare the "right" way to do this? π€How will an attacker exploit a system that only has domain-based verification?
Hypothetically, if we were to completely remove the
AUTH_API_KEY,how would a malicious person ("attacker") attempt to use our
authsystemto get people to login with their Google/GitHub/etc account and steal their data? π
If the attacker can intercept a request or create a fake page that looks like our
App,and use our own
authendpoint to authenticate apersonand then replaythe successful
JWTback to theAppthey can read theperson'sdata ...How can we do domain-based verification on a Distributed App?
If our
Flutter Appis web-based or deployed to theApp/Play Store,will there be a "domain" for it? π
And if there is no domain associated with the "Native" App, how do we verify it? π€·ββοΈ
Is there a unique string associated with the
iOSorAndroidbuild that cannot be spoofed?These are the questions that are on my mind right now as I'm thinking about
authin generaland specifically gearing up to re-write
authfrom first principals to be an order of magnitude simpler.