Security Notice: If you use a version 0.16.X version, update immediately to 0.16.5+ or disable the change password command. 0.16.X fixed this security bug. Older versions of 0.16.X are not affected.
Description
A Sponge minecraft server plugin for second authentication. It has a built-in
TOTP support.
Do you want to let your players protect their account (from hackers/login stealers) and keep playing while the session server is down. You can use this little plugin. You can protect your account with a password you choose or with a time based password created from a secret key, generated just for you.
Github - Source Code Download
Please leave star on Github. Feel free to clone, fork or contribute to this repository.
This is a complete new project, so many features can be added.
Screenshots:
TOTP Key generation (/register)
Android App Google Authenticator (IOS App exists too)
You can see there a time generated code which can be used for the login process. (/login )
Additionally it display your user account name and the server ip.
It would be great if instead of using a mysql DB, there was an option for using an identify service, like OpenID connect. Then users could login with their google account (or whatever openid they have)
Yes. Just like I type it into my phone, and countless other apps that use google authentication. Users will be encouraged to set up an app password for this server. I imagine that there are other use cases, but mine would be for a private Minecraft EDU server using Google Classroom. The desire is to use the same authentication system for the server that we use for the google apps stuff, and other online tools/systems that also use OpenID Connect.
Iâm sure there are other ways to accomplish the same end (SSO for web, email, minecraft, forums, MOOC, etc).
Very helpful response. Thanks so much for taking the time.
My thought is that 2-step auth with Google allows you to create a password per application (so one per server). The intent here is not to allow users to use their google login to authenticate, but to allow the server admin to verify their identify.
I get what youâre snarkily alluding to, and recognize that it is less than ideal. Maybe you can offer a better idea or approach?
Moderator: As my initial question is being trolled, should I open a new topic elsewhere? I donât want to distract from the release of this nice plugin, or muddy this thread any further.
Your phone is controlled by you, and the password doesnât get past the Google-controlled authentication mechanisms. This idea results in passing your password to a third party.
[quote=âFrost_Fox_, post:10, topic:8872â]
Moderator: As my initial question is being trolled, should I open a new topic elsewhere? I donât want to distract from the release of this nice plugin, or muddy this thread any further.
[/quote]I donât see any trolling. No need for a new topic, either.
If any server forces me to create another google account just to pass their authsystem i will simply go away. Its like an article i read awhile ago. If you have a webshop, which requires user registration to buy your stock around 40% of all users will search for aleternativesâŚ
The problem isnât the idea with Google Authentication - itâs pretty cool sounding on the surface, actually. The problem is that this isnât a website, or an easy-to-manipulate application.
When you use Google Authentication on websites, youâre actually taken to the Google site to approve the applications access to your account. In Minecraft, however, youâd need to type your password in chat. That requires a lot of trust in the plugin and the plugin developer to not accidentally or maliciously release your password.
Not to mention the server owner, who could easily copy the source from such a plugin and simply have the password sent to their email, or saved in the logs, with the user none the wiser.
The UUID will be different if you change the online mode. In offline mode the server will create a fake UUID (UUID.nameUUIDFromBytes((âOfflinePlayer:â + playerName).getBytes(Charsets.UTF_8))). So for example you will loose your inventory or permission group.
(Planning)
This plugin holds then the original (premium) UUID if the user registered before. On every premium/online mode login the plugin updates the username, so if the server goes into offline mode we can look up the account by the username instead of the UUID. Through the authentication process of this plugin, another plugin can be sure itâs actual the same user and do the same.
####Google Authentication
I think, you shouldnât type your actual Google password into a minecraft server. One possibility would be to send the user a link (e.g. this) to open it in a browser and send the response with a token instead of the password to the server. But then the user have to open the browser on every login process. Although you donât have to type in your account credentials every time if you are already logged in into Google (and have already registered), itâs in my opinion a bad idea.
Yeah I know that, but I donât understand how you can prevent the server from kicking the player if the authentication fails. Unless sponge provides some kinda âPlayerAuthenticationEventâ.
There is a GameClientAuthEvent, however that is fired after authentication has been successful.
Note that it is also fired when the server is offline and authentication therefore automatically âsucceedsâ.
can it be setup and used without use of any DB servers? Iâm now testing it on my local compare and I doesnât have any DB system.
How can I set it to use it without the DB system?
Have you somewhere any Wiki or help for configuring the system?