Skip to content

Instantly share code, notes, and snippets.

@jgomer2001
Created February 8, 2019 13:21
Show Gist options
  • Save jgomer2001/34bf30fd1c127ef475c4c50c3d7bb394 to your computer and use it in GitHub Desktop.
Save jgomer2001/34bf30fd1c127ef475c4c50c3d7bb394 to your computer and use it in GitHub Desktop.
Describes the form fields applicable for several sample providers: names, data types, requiredness, etc...
[
{
"id": "openidconnect",
"attributes" : [
{
"name": "id",
"type": "string",
"hint": "Identifier for this OP",
"mandatory": true
},
{
"name": "displayName",
"type": "string",
"hint": "Human readable name for this OP",
"mandatory": true
},
{
"name": "type",
"type": "string",
"default": "openidconnect",
"mandatory": true,
"editable": false
},
{
"name": "passportStrategyId",
"type": "string",
"hint": "Passport.js module for this type of provider",
"default": "passport-openidconnect",
"mandatory": true,
"editable": false
},
{
"name": "mapping",
"type": "string",
"hint": "Node module implementing attribute mapping",
"default": "openidconnect-default",
"mandatory": true
},
{
"name" : "logo_img",
"type" : "string",
"hint" : "Absolute or relative location of logo",
"mandatory": false
},
{
"name" : "enabled",
"type" : "boolean",
"mandatory": true
}
],
"options": [
{
"name": "clientID",
"type": "string",
"hint": "ID of an already registered client at the OP",
"mandatory": true
},
{
"name": "clientSecret",
"type": "string",
"hint": "Secret of client already registered at the OP",
"mandatory": true
},
{
"name": "issuer",
"type": "string",
"hint": "OpenID provider location",
"default": "https://server.example.com",
"mandatory": true
},
{
"name": "authorizationURL",
"type": "string",
"hint": "Authorization Endpoint",
"default": "https://server.example.com/authorize",
"mandatory": true
},
{
"name": "tokenURL",
"type": "string",
"hint": "Token Endpoint",
"default": "https://server.example.com/token",
"mandatory": true
},
{
"name": "userInfoURL",
"type": "string",
"hint": "UserInfo Endpoint",
"default": "https://server.example.com/userinfo",
"mandatory": true
},
{
"name" : "acr_values",
"type" : "string",
"hint" : "Space-separated string of Authentication Context Class Reference values",
"mandatory": false
},
{
"name" : "scope",
"type" : "string",
"hint" : "Space-separated string of scopes",
"mandatory": false
}
]
},
{
"id": "saml",
"attributes" : [
{
"name": "id",
"type": "string",
"hint": "Identifier for this IDP",
"mandatory": true
},
{
"name": "displayName",
"type": "string",
"hint": "Human readable name for this IDP",
"mandatory": true
},
{
"name": "type",
"type": "string",
"default": "saml",
"mandatory": true,
"editable": false
},
{
"name": "passportStrategyId",
"type": "string",
"hint": "Passport.js module for this type of provider",
"default": "passport-saml",
"mandatory": true,
"editable": false
},
{
"name": "mapping",
"type": "string",
"hint": "Node module implementing attribute mapping",
"default": "saml-x500-default",
"mandatory": true
},
{
"name" : "logo_img",
"type" : "string",
"hint" : "Absolute or relative location of logo",
"mandatory": false
},
{
"name" : "enabled",
"type" : "boolean",
"mandatory": true
}
],
"options": [
{
"name": "entryPoint",
"type": "string",
"hint": "URL where SAML requests must be sent to",
"default": "https://idp1.example.com/idp/profile/SAML2/POST/SSO",
"mandatory": true
},
{
"name": "issuer",
"type": "string",
"hint": "Issuer/entity_id URI Passport will supply to IDP",
"mandatory": true
},
{
"name": "identifierFormat",
"type": "string",
"hint": "Identifier format to request from IDP",
"default": "urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
"mandatory": true
},
{
"name": "authnRequestBinding",
"type": "string",
"hint": "POST or Redirect Binding",
"default": "HTTP-POST",
"mandatory": true
},
{
"name": "cert",
"type": "string",
"hint": "IDP's public signing cert in a single line without intro/outro lines. Just the body.",
"mandatory": true
},
{
"name": "logo_img",
"type": "string",
"hint": "Absolute or relative location of logo",
"mandatory": false
},
{
"name": "audience",
"type": "string",
"mandatory": false
},
{
"name": "privateCert",
"type": "string",
"mandatory": false
},
{
"name": "decryptionPvk",
"type": "string",
"mandatory": false
},
{
"name": "signatureAlgorithm",
"type": "string",
"mandatory": false
},
{
"name": "additionalParams",
"type": "dictionary",
"hint": "Dictionary of additional query params to add to requests",
"default": {},
"mandatory": false
},
{
"name": "additionalAuthorizeParams",
"type": "dictionary",
"hint": "Dictionary of additional query params to add to authorize requests",
"default": {},
"mandatory": false
},
{
"name": "acceptedClockSkewMs",
"type": "integer",
"mandatory": false
},
{
"name": "attributeConsumingServiceIndex",
"type": "string",
"mandatory": false
},
{
"name": "disableRequestedAuthnContext",
"type": "boolean",
"mandatory": false
},
{
"name": "authnContext",
"type": "string",
"mandatory": false
},
{
"name": "forceAuthn",
"type": "boolean",
"mandatory": false
},
{
"name": "providerName",
"type": "string",
"mandatory": false
},
{
"name": "skipRequestCompression",
"type": "boolean",
"default": false,
"mandatory": false
},
{
"name" : "idpIssuer",
"type" : "string",
"mandatory": false
},
{
"name" : "logoutUrl",
"type" : "string",
"mandatory": false
},
{
"name" : "additionalLogoutParams",
"type" : "dictionary",
"mandatory": false
},
{
"name" : "logoutCallbackUrl",
"type" : "string",
"mandatory": false
}
]
},
{
"id" : "oauth-dropbox",
"attributes" : [
{
"name": "id",
"type": "string",
"hint": "Identifier for this provider",
"default": "dropbox",
"mandatory": true
},
{
"name": "displayName",
"type": "string",
"hint": "Human readable name for this provider",
"default": "Dropbox",
"mandatory": true
},
{
"name": "type",
"type": "string",
"default": "oauth-dropbox",
"mandatory": true,
"editable": false
},
{
"name": "passportStrategyId",
"type": "string",
"hint": "Passport.js module for this type of provider",
"default": "passport-dropbox-oauth2",
"mandatory": true,
"editable": false
},
{
"name": "mapping",
"type": "string",
"hint": "Node module implementing attribute mapping",
"default": "dropbox",
"mandatory": true
},
{
"name" : "logo_img",
"type" : "string",
"hint" : "Absolute or relative location of logo",
"mandatory": false
},
{
"name" : "enabled",
"type" : "boolean",
"mandatory": true
}
],
"options" : [
{
"name" : "clientID",
"type" : "string",
"hint" : "Client ID / Consumer key of your oauth application",
"mandatory": true
},
{
"name" : "clientSecret",
"type" : "string",
"hint" : "Client Secret / Consumer Secret of your oauth application",
"mandatory": true
},
{
"name" : "apiVersion",
"type" : "string",
"default" : "2",
"mandatory": true
},
{
"name" : "logo_img",
"type" : "string",
"hint" : "Absolute or relative location of logo",
"mandatory": false
}
]
},
{
"id" : "oauth-facebook",
"attributes" : [
{
"name": "id",
"type": "string",
"hint": "Identifier for this provider",
"default": "facebook",
"mandatory": true
},
{
"name": "displayName",
"type": "string",
"hint": "Human readable name for this provider",
"default": "Facebook",
"mandatory": true
},
{
"name": "type",
"type": "string",
"default": "oauth-facebook",
"mandatory": true,
"editable": false
},
{
"name": "passportStrategyId",
"type": "string",
"hint": "Passport.js module for this type of provider",
"default": "passport-facebook",
"mandatory": true,
"editable": false
},
{
"name": "passportAuthnParams",
"type": "dictionary",
"hint": "Dictionary of params for passport.authenticate() call",
"default": { "scope": ["email"] },
"mandatory": false
},
{
"name": "mapping",
"type": "string",
"hint": "Node module implementing attribute mapping",
"default": "facebook",
"mandatory": true
},
{
"name" : "logo_img",
"type" : "string",
"hint" : "Absolute or relative location of logo",
"mandatory": false
},
{
"name" : "enabled",
"type" : "boolean",
"mandatory": true
}
],
"options" : [
{
"name" : "clientID",
"type" : "string",
"hint" : "Client ID / Consumer key of your oauth application",
"mandatory": true
},
{
"name" : "clientSecret",
"type" : "string",
"hint" : "Client Secret / Consumer Secret of your oauth application",
"mandatory": true
},
{
"name" : "enableProof",
"type" : "boolean",
"default" : true,
"mandatory": false
},
{
"name" : "profileFields",
"type" : "list",
"default" : ["id", "username", "displayName", "name", "emails"],
"mandatory": false
},
{
"name" : "logo_img",
"type" : "string",
"hint" : "Absolute or relative location of logo",
"mandatory": false
}
]
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment