Skip to content

Instantly share code, notes, and snippets.

View saltukalakus's full-sized avatar
💭

Saltuk Alakus saltukalakus

💭
View GitHub Profile
@saltukalakus
saltukalakus / Sample_user_profile.json
Last active June 5, 2021 08:11
Auth0 SAML IdP mapping attributes from within arrays
{
"id": "118028435727952686478",
"primaryEmail": "john@dough.com",
"name": "John Dough",
"isAdmin": false,
"isDelegatedAdmin": false,
"lastLoginTime": "2021-01-05T13:27:25.000Z",
"creationTime": "2016-10-03T15:55:40.000Z",
"addresses": [
{
@saltukalakus
saltukalakus / calculate-sha1-sha256.js
Created December 24, 2020 20:21
Calculate domain fingerprints
"use strict";
const openssl = require('openssl-nodejs');
const crypto = require('crypto');
function handler(domain)
{
return openssl(['s_client', '-connect', domain, '-showcerts'], function (err, buffer) {
const res = getCertificateFingerprintSha256(buffer.toString());
console.log("sha - 256", res);
@saltukalakus
saltukalakus / rules.js
Last active December 16, 2020 22:53
Insert intersectional permissions and additional ones
function (user, context, callback) {
var ManagementClient = require('auth0@2.17.0').ManagementClient;
var req = context.request;
var audience = req.query.audience;
var scopes = (req.query && req.query.scope) || (req.body && req.body.scope);
var permissionNames = [];
// Limit the rule execution for the realted API identifier
@saltukalakus
saltukalakus / test.py
Created December 16, 2020 18:23
Test script to prevent timeouts
#!/usr/bin/env python3
import time
import requests
import socket
from datetime import datetime
from functools import lru_cache
from urllib3.connection import HTTPConnection
class KeepaliveAdapter(requests.adapters.HTTPAdapter):
@saltukalakus
saltukalakus / login_template.html
Created December 7, 2020 22:06
Show a message after successful signup before attempting to login
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Sign In with Auth0</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<style>
@saltukalakus
saltukalakus / SAML.template
Last active February 27, 2023 18:46
How to insert AssertionConsumerServiceURL (ACS) in AuthN when Auth0 is the SAML service provider. (a.k.a. SAML enterprise connection)
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
@@AssertServiceURLAndDestination@@
AssertionConsumerServiceURL="https://demo-saml-sp.auth0.com/login/callback"
ID="@@ID@@"
IssueInstant="@@IssueInstant@@"
ProtocolBinding="@@ProtocolBinding@@" Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@@Issuer@@</saml:Issuer>
</samlp:AuthnRequest>
@saltukalakus
saltukalakus / .env
Last active April 3, 2022 09:08
A sample showing how to use role claim with Auth0 using express-openid-connect library
# conf
PORT=3000
ISSUER_BASE_URL=https://your-account.[region].auth0.com
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
BASE_URL=http://localhost:3000
SECRET=LONG_RANDOM_VALUE
@saltukalakus
saltukalakus / sample.html
Created November 13, 2020 23:57
Auth0 classic MFA widget sample
<!DOCTYPE html>
<html>
<head>
<title>2nd Factor Authentication</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<style type="text/css">
html, body { padding: 0; margin: 0; }
@saltukalakus
saltukalakus / handler.js
Created September 7, 2020 14:19 — forked from marc-barry/handler.js
Cloudflare Worker for Auth0 Self-Managed Certificates
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url)
url.hostname = 'SOME_HOSTNAME' // i.e. 'dev-w-47n-vy-cd-e88kLg26GFbLGgBI.edge.tenants.auth0.com'
request = new Request(request)
request.headers.set('cname-api-key', 'SOME_KEY') // i.e. 'd4f2f3ef5a3ee3af4846127281d3450628bdc16d63e802dea75878fe9a63a279'
async function getTokenFromRulesConfig(user, context, callback) {
const m2mClientID = configuration.m2mCID;
const m2mClientSecret = configuration.m2mCSecret;
let auth0Domain = '<<your_tenant>>.auth0.com';
const moment = require('moment-timezone');
let axios = require('axios');
const country = context.request.geoip.country_name;
const data = {
user_app_metadata: user.app_metadata,
email: user.email,