Access
Connect cross-platform accounts & identity management
AccelByte Cloud provides 3rd-party login integration and single sign-on (SSO) to enable players to log into your game or platform with a credential from a 3rd-party. To use 3rd-party credentials to sign into your game or platform for the first time, a player must first create an AccelByte account. If they don't have an AccelByte account, the system will create a headless account (an account without an email address) for them. You can offer the player the option to upgrade their headless account to a full account in your game or on your platform. Players need to provide an email address and date of birth to create a full account.
After players create a full account, they can then link their accounts from other 3rd-party platforms to it. This enables cross-progression, or the ability for players to access their game data and continue play from different platforms.
Here’s a table showing the platforms we support and the features they offer:
Device ID*
Device ID can refer to a computer’s serial number, the IMEI of a mobile device, or some other unique identifier. Device ID can be used both for testing and as an easy way for players to log into mobile games without an account.
Microsoft Azure**
3rd-party login using Microsoft Azure credentials is for the Admin Portal only. It’s intended to give teams that already have Microsoft accounts a quick way to access the Admin Portal without having to first have an account created for them.
Before implementing 3rd-party logins, make sure you’ve done the following:
Permissions (opens new window) are used to grant access to specific resources within our services. Make sure your account has the following permissions before you attempt to integrate 3rd-party login in the Admin Portal. For a full list of permissions that impact identity access management, see the IAM tab of the permissions reference (opens new window).
Usage | Permission Tag | Action |
Add SSO Platform Credential | ADMIN:NAMESPACE:{namespace}:PLATFORM:{platformId}:SSO | Create |
Add 3rd-Party Platform Credential | ADMIN:NAMESPACE:{namespace}:PLATFORM:{platformId}:CLIENT | Create |
Permissions work slightly differently depending on whether they are assigned to IAM Clients or Roles assigned to users. For more information, read the Authentication and Authorization documentation.
Enabling 3rd-party login methods consists of configuring the login from your chosen platform in the Admin Portal, using our SDK to retrieve the authentication token for that platform, then logging players in with their 3rd-party credentials.
3rd-party login methods can either be configured in a game namespace, or in the publisher namespace. When you configure the login from a 3rd-party platform within a game namespace, only that game will be accessible using the credentials from the configured platform.
Follow the steps below to set up the 3rd-party configuration in the Admin Portal:
Go to the namespace you want to configure.
Go to the User Management section of the main menu and select Login Methods.
On the Login Methods page, click the Add New button.
The Login Platform Configuration page displays the available login platforms.
Choose the login platform you want to configure.
The Create Configuration form for the login platform you selected will appear.
In the Redirect URI field, input the URI that the user will be directed to once the account authorization is successful. The default URI is http://127.0.0.1
.
In the Redirect URI field, input the URI that the user will be directed to once the account authorization is successful. The default URI is http://127.0.0.1
.
IMPORTANT
Currently we only support 3rd-party login integration for your Apple Developer Portal website or web platform using these credentials. In-game login is not yet supported.
Complete the fields using the settings from the Apple Developer Portal for your game.
Complete the fields as follows:
Complete the fields as follows:
http://127.0.0.1](http://127.0.0.1)
. in the Redirect URI field.Complete the fields as follows:
http://127.0.0.1
.IMPORTANT
Currently we only support 3rd-party login integration for your website or web platform using these credentials. In-game login is not yet supported.
Complete the fields as follows:
{baseURL}/iam/v3/platforms/facebook/authenticate
.NOTE
To complete the setup, you’ll also have to configure the Redirect URI in the Facebook Developer Portal.
IMPORTANT
Currently we only support 3rd-party login integration for your website or web platform using these credentials. In-game login is not yet supported.
Complete the fields as follows:
You can enable 3rd-party login using Microsoft Azure credentials for the Admin Portal. This gives teams that use Microsoft accounts an easy way to access the Admin Portal without having to have an account created for them.
IMPORTANT
In addition to the steps below, there are some tasks that must be performed in the Azure Portal to enable 3rd-party login using Microsoft Azure. Please contact AccelByte if you need assistance.
Complete the fields as follows:
Complete the fields as follows:
Select your environment type in the Environment field. You can choose from the following options:
Environment | Purpose |
Production | Development |
Live Production | QA |
Upload .pem files for the Root Certificate, Public Certificate, and Encrypted Private Key.
NOTE
You can download the mTLS certificate on the mTLS tab in your Netflix Partner Account Manager (opens new window).
Input the Application ID for your application in the App ID field. You can find your Application ID in your product information in the Nintendo Developer Portal.
Fill the Platform Identity Provider form with the following information:
NOTE
The way in which you obtain your Client ID will differ across providers. Please check your provider's documentation for more information.
When you’re finished, click Next.
Fill the Token Claims Mapping form with the following information:
TIP
For more information on token claims, see OpenID’s documentation (opens new window).
When you’re finished, click Create.
Complete the fields as follows:
Input the Client ID for your game in the PlayStation App Server in the Client ID field.
Input the Client Secret for your game in the PlayStation App Server in the Client Secret field.
Select your environment type in the Environment field. You can choose from the following options:
Environment | Purpose |
sp-int | Development |
prod-qa | QA |
np | Live Environment |
Input the URI that the user will be directed to once the account authorization is successful in the Redirect URI field. For PS4, the default URI is orbis://games
.
Complete the fields as follows:
Input the Client ID for your game in the PlayStation App Server in the Client ID field.
Input the Client Secret for your game in the PlayStation App Server in the Client Secret field.
Select your environment type in the Environment field. You can choose from the following options:
Environment | Purpose |
sp-int | Development |
prod-qa | QA |
np | Live Environment |
Input the URI that the user will be directed to once the account authorization is successful in the Redirect URI field. For PS4, the default URI is orbis://games
.
Complete the fields as follows:
Input the Client ID for your game in the PlayStation App Server in the Client ID field.
Input the Client Secret for your game in the PlayStation App Server in the Client Secret field.
Select your environment type in the Environment field. You can choose from the following options:
Environment | Purpose |
sp-int | Development |
prod-qa | QA |
np | Live Environment |
Input the URI that the user will be directed to once the account authorization is successful in the Redirect URI field. For PS5, the default URI is orbis://games
.
Complete the fields as follows:
Complete the fields as follows:
Complete the fields as follows:
http://127.0.0.1
.Complete the fields as follows:
http://127.0.0.1
.Complete the fields as follows:
http://127.0.0.1
.Complete the fields as follows:
Upload the Relying Party Private Key for your game in .pem format in the Relying Party Private Key field.
Complete the fields as follows:
http://127.0.0.1
.These functions allow your players to log into your game using a verified account linked to a 3rd-party account. See our two-factor authentication (opens new window) documentation for more information about setting up authenticators.
Before a player can log in, you will need to enable two-factor authentication with your 3rd-party authentication app.
Before a player can log in, you will need to enable two-factor authentication with the Backup Code method and save this backup code.
Single Sign-On (SSO) enables players to log in with a single credential to access several independent services. To enable SSO we use Discourse, which is an open-source discussion platform that can be used as a mailing list.
Go to the Admin Portal, and click on the SSO Configurations menu.
Click the Configure Now button to add a new configuration.
The Add Discourse Configuration will appear.
When you’re finished, click Submit.
After creating the configuration, it will be accessible from the Discourse SSO Configuration panel on the SSO Configurations page.
To enable SSO with Google credentials in the Admin Portal, you must first register the Google domain name that members of your organization will use to access the Admin Portal. You can also associate roles (opens new window) and IAM clients (opens new window) with a domain, allowing you to control what users under that domain can access. Multiple domains can be registered and configured independently.
NOTE
You must be in the publisher namespace to register a Google domain.
In the publisher namespace of the Admin Portal, click Login Methods.
On the Login Platform Configuration page, find the Google configuration and click View under the Action column.
On the Login Platform Configuration page, scroll to the Domain section.
Click the Register Domain button.
The Register Domain form appears. Fill in the fields with the following information:
When you’re finished, click Save.
For a player to log into your game or platform with 3rd-party credentials, the game needs to pass the Auth token from the 3rd-party platform whose credentials the player is using to the publisher platform.
The Device ID Auth token is whatever is retrieved by either Unity or Unreal Engine. To retrieve the Device ID Auth token, use the following function:
For Unity, you can get the Auth token by using the AWS SDK for .NET. For Unreal Engine you can use the AWS C++ SDK. Here is an example of how to get an AWS Cognito Auth token:
You can also get an Auth token by making a HTTP Request, as seen in the example below.
For more details about setting up platform authentication, refer to the AWS documentation.
For Unity, you can get the Auth token for EOS by using the EOS SDK. For Unreal Engine you can use the EOS C# SDK. Here are the functions to retrieve the EOS Auth token:
Before setting up Google in-game logins, make sure to:
The Online Subsystem Google currently provided by Unreal Engine requires some changes before it can work.
Engine\Plugins\Online\OnlineSubsystemGoogle\Source\ThirdParty\Android\Java\
. Make the following changes:public boolean init(String inClientId, String inServerClientId)
and scroll down to uncomment .requestServerAuthCode(serverClientId)
.// Configure sign-in to request the user's ID, email address, and basic
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(serverClientId)
.requestProfile()
.requestServerAuthCode(serverClientId)
.requestEmail()
.build();
// Build a GoogleSignInClient with the options specified by gso.
mGoogleSignInClient = GoogleSignIn.getClient(activity. gso);
private String getAuthTokenJsonStr(GoogleSignInAccount acct)
. Change access_token
from "androidInternal"
to acct.getServerAuthCode()
.private String getAuthTokenJsonStr(GoogleSignInAccount acct)
{
if (acct != null)
{
return "{\access_token\":\"" + acct.getServerAuthCode() + "\"," +
"\"refresh_token\":\"androidInternal\"," +
"\"id_token\":\""+ acct.getIdToken() + "\"}";
}
return "";
}
Engine\Plugins\Online\OnlineSubsystemGoogle\Source\
and find OnlineSubsystemGoogle.Build.cs
. Make the following changes:bool bUsesRestfulImpl = false;
.using ...
public access OnlineSubsystemGoogle : ModuleRules
{
public OnlineSubsystemGoogle(ReadOnlyTargetRules Target) : base(Target)
{
bool bUsesRestfulImpl = false;
PrivateDefinitions.Add(item: "ONLINESUBSYSTEMGOOGLE_PACKAGE=1");
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PrivateIncludePaths.Add(Item: "Private");
The example below utilizes blueprints to implement all the Login functionalities. To create a widget for Google login, use the following steps in Unreal Editor to create a login flow.
TIP
If you have already connected your Android device with your PC/laptop, you can simply run Install_AccelByteUe4SdkDemo-Android-Shipping-arm64.bat (for x64)/Install_AccelByteUe4SdkDemo-Android-Shipping-armv7.bat (for x86). This file will automatically run the installation on your device.
You can enable login with Nintendo credentials using the Unreal Engine OSS by following the steps below.
Use the following function to retrieve the Netflix GamerAccessToken:
IMPORTANT
This configuration can only be used for PS4 games, not PS4 Cross-Gen games. For PS4 Cross-Gen games, use PS5 as the platform.
For Unity, you can get the Auth code by using NpToolkit. For Unreal Engine, you can use OnlineSubsystemPS4 which is already included in Unreal Engine.
For PS5, you can get the Auth code by using the function below. For now, only Unreal Engine is supported.
When Snapchat Auth is complete, the page will be redirected to <redirec_uri>?code=<logincode>. If the URL value contains BaseUrl, the login code should be available. Check every URL to ensure they have changed correctly.
For Stadia, you can get the Auth code by requesting a user's JWT token, or you can use the Stadia Platform Support package. For now, only Unity is supported.
To get the Steam Auth ticket in Unity, use the tickets obtained from Steamworks.NET. For Unreal Engine, use the ticket obtained from Steamworks.
For Twitch, you can get the Authentication token by using the function below:
For Xbox, you can get the Auth token by using the function below:
Players can upgrade a headless account by linking the headless account to their email address and creating a password.
Use this function to initiate an account upgrade:
Verifying the player after they upgrade their account is done in two steps. First, the game will send the verification code to the player’s email. Then the verification code will be sent back to the IAM service for verification.
Use this function to send the verification code to a player’s email address.
Use this function to send the verification code from the player’s email back to the IAM Service.