-
Notifications
You must be signed in to change notification settings - Fork 264
[bigtent] Add Mailstrom like email provider detection #2932
Comments
Also note: jaredhanson/passport-openid#11 |
I'm interested to work on this issue, but I'm a new contributor, so I don't really know where to start. Do you have some more infos please ? |
@ozten, @callahad, or @seanmonstar - can you guys fill @quack1 in with some context? It's always awesome to have contributors! |
If I understand correctly, this is to support Google Apps for your Domain address. Such that, if I use [email protected], it will detect that I use Google Apps, and defer to BigTent to use the Google Identity Bridge. Sound right? |
@seanmonstar That's correct. I'm still not sure if implicitly supporting Google Apps is a good thing, but I've generally been ignoring this can of worms until we get Gmail and Hotmail out the door. |
Yea, I couldn't recommend a place to start in our code, because our code for Gmail is in big flux. Maybe in a week or 2... |
@quack1 Maybe the best answer, for now, is to keep a close eye on the Gmail-related code :-) Failing that, we currently have 431 other bugs, perhaps one of those is enticing? |
Thanks for your answers. I had choosen this one because it was marked as 'good-first-bug', but now I'll look at another simple one! |
@quack1 I can mentor you on this bug, as I filed it and I do think it is a good first bug. I'll coordinate with @seanmonstar and @callahad to make sure it works with what they are planning. Warning - This code wouldn't be used right away. It also might never get used, if it turns out that we can't do Identity Bridging on Google Apps for your Domain, for whatever reason. If you're still game... This library can be built independently of current work. I'd recommend a new file [or a stand-alone node module...] The interface would look like this:
This is assuming you own quackrules.org and it's setup to be a Google Apps for your domain website. You'll need one of those two test this, or atleast find someone else with an email address that is backed by Google Apps for your domain. So the one function in the module takes an email address and a callback function. The callback will be called with an error as well as a boolean. The boolean indicates if the domain name is backed by Google Apps. This bug is a dependency for supporting people's personal domain names via Gmail OpenID. There are other pieces that need to be tested and figured out, but this portion is pretty independent of those others. |
@ozten Thank you for mentoring me on this bug! I'm working on a script to automate the setup of an environment developement on ubuntu, and I'll look at this bug much closer just after that and I'll come back to you for more informations! |
Hi @ozten, I've just finished my work on the script, so I will start working on this bug, and I contact you when I have a "plan" to see with you if I go in the right direction! |
That sounds great! |
@ozten Hi! I look at this a little and I would like to clarify everything! :) We need to create a simple function, which can said if a given email address if backed by Google Apps or not. This function will do the previous steps @ozten mentionned in the first post of this thread:
Finally, a callback function is returned with :
Am I correct with this ? I setup a fake email on Google Apps with the free month offer to test this, I will purchase some month pass if I need more time to work on! FIY, I have a 2h1/2 train travel tomorrow night, so I think I'll work on this during the trip! |
Howdy @quack1, yes I think you've got it. I think you'll want to look at using DNS as well as how the SMTP protocol works. It's possible that you don't have to send an email, but instead start the SMTP transmission and get far enough to see if it is a recognized email address. I'd recommend starting with Steps 1 and 2, before tackling Step 3, which might be harder. Happy hacking! |
Here's an example SMTP session that can be used for step 3:
You'll have to sign in with and send a valid Google email address in the MAIL FROM. The response to the RCPT is the key: you'll probably see a 250 or a 550. |
OK, that's great! Yes, I've test directly from the cli to |
Read these to see how awesome this feature can be: |
Thanks, Austin! What I've failed to mention in the blog post, but is obvious when you use our sign in, is that we support not just Google sign-in, but Hotmail and Yahoo with MX detection, and Facebook and Twitter sign-in as fallback. I want to add support for loads more providers, too, including Persona! The one thing that's critical for me is that I as the web site developer control the whole UX and UI for sign-in. I can't / won't rely on something like BigTent unless it's strictly providing back-end support for my sign-in flow. Likewise Persona; if I know that my user is already familiar with Persona and has an account setup there, I can send them through the Persona flow – if not, I'll use something they are familiar with. Getting the UI / UX right is absolutely the most important thing in all this. :-) |
@ozten I have a (dummy) question. I have write some code to do the first two steps, but how can I test it locally ? I mean, without hacking all the code to make it use my function to know which server contact. I would like to only start "this" function... I wrote a sample test file but it doesn't look like it works well either.. (BTW, I'm quite a noob with Node.js). lib/google_apps_discovery.js --> https://gist.github.com/quack1/5817334 |
Option 2 is something that I have already proposed as well. However, some people think that Google Apps for your Domain users should rather run their own IdP instead of using BigTent. Option 3 is a very bad thing to do. It allows Google to usurp any random email address they want and steal accounts. Another reason why 3 is bad is that there are several domains in Google's database which Google thinks to belong to Google when in fact, they have been moved to a different mail service. I also don't see which use cases should be covered by 3. Either an email address belongs to Google - then we should be able to tell that by DNS lookup. Or the email address doesn't live on Google's servers, then we can tell that by DNS as well. |
Hi! To help us better focus, I'm "closing" all issues that have been open for more than six months. These have been tagged "cleanup-2014" so that we can go back and review them in the future. For more information, check out this thread: http://thread.gmane.org/gmane.comp.mozilla.identity.devel/7394 If you believe this bug is still a major issue for you, please comment, submit a pull request, or discuss it on our mailing list: https://lists.mozilla.org/listinfo/dev-identity Sorry for GitHub notification spam! |
https://mailstrom.co/ is quite clever about being able to detect if a domain name is backed by gmail.com.
Dave Troy, one of the Mailstrom wizards, was kind enough to share their dark magick:
Currently we do #1 to hand off to BigTent, but we should implement 2 and 3 to extend the % of email addresses which can be delegated to BigTent for authentication.
Potential issues:
The text was updated successfully, but these errors were encountered: