Your customers expect SSO when they hit your login screen. You know that isn’t always a simple ask.

Our brokered API takes care of the SAML, OAuth or Open ID connectors so you can focus on what you do best.

Built secure

Built secure

Globally trusted & proven

Globally trusted & proven

Increase engagement

Increase engagement

Free for most users

Free for most users

Options - not obstacles

Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs
Logon Labs

Just add Google. Easy, right?

Your App or site has a local DB & login screen that you support

Your App or site has a local DB & login screen that you support

Your customers trust different IDP's each with their own protocols, compliance levels & codebases to maintain

Your customers trust different IDP's each with their own protocols, compliance levels & codebases to maintain

It's more complicated than you think

We support all major identity providers & single sign on protocols

It's more complicated than you think We support all major identity providers & single sign on protocols

IPD's implement the protocols differently
Just because you support OIDC for facebook doesn't mean you now support everything

IPD's implement the protocols differently Just because you support OIDC for facebook
doesn't mean you now support everything

Does your team have the resources & time to implement all the different configurations your customers need?

Does your team have the resources & time to implement all the different configurations your customers need?

A workflow that works for you.

A workflow that works for you.

One implementation supports all your customer configurations

One implementation supports all your customer configurations

Low touch, no changes to your current workflow
Get up & running instantly

Low touch, no changes to your current workflow
Get up & running instantly

PROVISIONING
Login settings can be managed via our admin interface or our simple provisioning APIs

PROVISIONING Login settings can be managed via our admin interface or our simple provisioning APIs

DELEGATION
Configuration can be easily delegated to your customers so you don't have to worry about it

DELEGATION Configuration can be easily delegated to your customers so you don't have to worry about it

Provide Audit & control to your customers.

Provide Audit & control to your customers.

Audit See who logged in, including when, where, & with what device

Control Decide who can access your system & when

Export Easily export detailed audit data for all logins to your system

Deploy anywhere.

Cloud & Private Cloud deployment on AWS, Azure & Google. Local deployments are available via Docker image.

Stay compliant.

Let us show you how easy it is.

We did the hard work so you
can take the credit.

So simple a typical customer can implement within the same day. No need to migrate your user database.

Once your account is set up it just takes two snippets of code.

Existing users do not have to re-register.

Add this to your front end
JavaScript
Swift
<!DOCTYPE html>
<html>
<head>
 <title>LogonLabs Sample</title>
 <style> .logonlabs { width: 300px; } </style>
 <script>
   window.logonAsync = function() {
     LogonClient.configure({
       app_id: '{APP_ID}'
     });
     LogonClient.ui.button('logonlabs-buttons');
     LogonClient.ui.button('logonlabs-icons', {
       theme: 'icon'
     });
   };
 </script>
 <script async defer src="https://cdn.logonlabs.com/dist/logonlabs.min.js"/>
</head>
<body>
 <h2>LogonLabs Sample</h2>
 <div id="logonlabs-buttons" class="logonlabs"></div>
 <div id="logonlabs-icons" class="logonlabs"></div>
</body>
</html>

                     
import LogonLabs;


var body: some View {
 VStack {
     Button(action: {
         let logonClient = LogonClient(
             baseUri: "https://api.logonlabs.com",
             appId: "{APP_ID}");

         logonClient.startLogin(
             identity_provider: "google",
             destinationUrl: "{APP_URL_SCHEME}") {error in
             if(error != nil) {
                 print(error.description!)
               }
             }
     }) {
       Text("Start SSO Workflow")
     }
 }
}

                     
Add this to your back end
PHP
.NET
JAVA
PYTHON
NODE.JS
<?php
require(__DIR__ . '/vendor/autoload.php');

use LogonLabs\IdPx\API\LogonClient as LogonClient;
use LogonLabs\IdentityProviders as IdentityProviders;

$logonClient = new LogonClient(array(
 'app_id' => '{APP_ID}',
 'app_secret' => '{APP_SECRET}',
 'app_path' => 'https://api.logonlabs.com'
 
));

$token = $_REQUEST['token'];

$loginData = $logonClient->validateLogin($token);

if ($loginData['body']['event_success']) {
 // authentication and validation succeeded.
 // proceed with post-auth workflows for your system.
}

                     
var logonClient = new LogonLabs.IdPx.API.LogonClient(
"{APP_ID}", 
"https://api.logonlabs.com", 
"{APP_SECRET}"
);

var token = this.Request.Query[Constants.QueryString.token];

var loginData = logonClient.ValidateLogin(token);

if (loginData.event_success)
{
// authentication and validation succeeded.
// proceed with post-auth workflows for your system.
}

             
import com.logonlabs.LogonClient;
import com.logonlabs.dtos.ValidateLoginResponse;
import com.logonlabs.dtos.SsoValidationDetails;

LogonClient client = new LogonClient(
"{APP_ID}",
"{APP_SECRET}",
"https://api.logonlabs.com");

String queryToken = client.parseToken(callbackUrl);

ValidateLoginResponse response = client.validateLogin(queryToken);

if(response.isEventSuccess()) {
//authentication and validation succeeded. 
//proceed with post-auth workflows for your system.
}

from logonlabs.client import Logonlabs

logonClient = Logonlabs(
'{APP_ID}',
'{APP_SECRET}',
'https://api.logonlabs.com'
)

request_headers = self.headers
token = request_headers["token"]
response = logonClient.validateLogin(token)
data = response.json()
if data['event_success']:
# authentication and validation succeeded.
# proceed with post-auth workflows for your system.


                     
const client = require('logonlabs-nodejs');
     ('{APP_ID}',
     '{APP_SECRET}',
     'https://api.logonlabs.com'
);

let token = client.parseToken(callback_url);

let response = client.validateLogin(token);

if(response.isEventSuccess()) {
// authentication and validation succeeded.
// proceed with post-auth workflows for your system.

}