**---
title: Authorization
OAuth Providers
Authentication handled by external providers. You should set up OAuth2 for at least one of them to allow users to make comments. It is not mandatory to have all of them, but one should be correctly configured.
Apple
- Log in to the developer account.
- If you don't have an App ID yet, create one. Later on, you'll need TeamID, which is an "App ID Prefix" value.
- Enable the "Sign in with Apple" capability for your App ID in the Certificates, Identifiers & Profiles section.
- Create Service ID and bind with App ID from the previous step. Apple will display the description field value to end-users on sign-in. You'll need that service Identifier as a ClientID later on.
- Configure "Sign in with Apple" for created Service ID. Add domain where you will use that auth on to "Domains and subdomains" and its main page URL (like
https://example.com/
to "Return URLs". - Register a New Key (private key) for the "Sign in with Apple" feature and download it, you'll need to put it to
/srv/var/apple.p8
path inside container. Also write down the private Key ID. - Add your Remark42 domain name and sender email in the Certificates, Identifiers & Profiles >> More section as a new Email Source.
After completing the previous steps, you can proceed with configuring the Apple auth provider. You'll need to set the following environment variables:
AUTH_APPLE_CID
(required) - Client IDAUTH_APPLE_TID
(required) - Team IDAUTH_APPLE_KID
(required) - Private Key IDAUTH_APPLE_PRIVATE_KEY_FILEPATH
(default/srv/var/apple.p8
) - Private key file location
- Open the list of apps on the Facebook Developers Platform
- Create a new app with this manual or use an existing app
- Open your app and choose "Facebook Login" and then "Web"
- Set "Site URL" to your domain, e.g.,
https://remark42.mysite.com
- Under "Facebook login"/"Settings" fill "Valid OAuth redirect URIs" with your callback URL constructed as domain plus
/auth/facebook/callback
, e.ghttps://remark42.mysite.com/auth/facebook/callback
- Select "App Review" and turn the public flag on. This step may ask you to provide a link to your privacy policy
- Write down the client ID and secret as
AUTH_FACEBOOK_CID
andAUTH_FACEBOOK_CSEC
GitHub
- Create a new "OAuth App": https://github.com/settings/developers
- Fill "Application Name" and "Homepage URL" for your site
- Under "Authorization callback URL" enter the correct URL constructed as domain +
/auth/github/callback
, i.e.,https://remark42.mysite.com/auth/github/callback
- Take note of the Client ID (as
AUTH_GITHUB_CID
) and Client Secret (AUTH_GITHUB_CSEC
)
Create a new project: https://console.cloud.google.com/projectcreate
Choose the new project from the top right project dropdown (only if another project is selected)
In the project Dashboard center pane, choose "APIs & Services"
In the left Nav pane, choose "Credentials"
In the center pane, choose the "OAuth consent screen" tab. Fill in "Product name shown to users" and hit save
In the center pane, choose the "Credentials" tab
- Open the "Create credentials" drop-down
- Choose "OAuth client ID"
- Choose "Web application"
- Application name is freeform; choose something appropriate
- Authorized origins should be your domain, e.g.,
https://remark42.mysite.com
- Authorized redirect URIs is the location of OAuth2/callback constructed as domain +
/auth/google/callback
, e.g.,https://remark42.mysite.com/auth/google/callback
- Choose "Create"
Take note of the Client ID (
AUTH_GOOGLE_CID
) and Client Secret (AUTH_GOOGLE_CSEC
)
instructions for Google OAuth2 setup borrowed from oauth2_proxy
Microsoft
- Register a new application using the Azure portal
- Under "Authentication/Platform configurations/Web" enter the correct URL constructed as domain +
/auth/microsoft/callback
, i.e.,https://example.mysite.com/auth/microsoft/callback
- In "Overview" take note of the Application (client) ID (
AUTH_MICROSOFT_CID
) - Choose the new project from the top right project dropdown (only if another project is selected)
- Select "Certificates & secrets" and click on "+ New Client Secret" (
AUTH_MICROSOFT_CSEC
)
Important: Twitter developer accounts created after November 15th 2021 need "Elevated access" to use the Standard v1.1 API routes required to work properly. Apply for this access from within the Twitter developer portal.
- Create a new Twitter application https://developer.twitter.com/en/apps
- Fill App name, Description and URL of your site
- In the field Callback URLs enter the correct URL of your callback handler, e.g. domain +
/auth/twitter/callback
- Under Key and tokens take note of the Consumer API Key and Consumer API Secret key. Those will be used as
AUTH_TWITTER_CID
andAUTH_TWITTER_CSEC
Yandex
- Create a new "OAuth App": https://oauth.yandex.com/client/new
- Fill "App name" for your site
- Under Platforms select "Web services" and enter "Callback URI #1" constructed as domain +
/auth/yandex/callback
, i.e.,https://remark42.mysite.com/auth/yandex/callback
- Select Permissions. You need the following permissions only from the "Yandex.Passport API" section:
- Access to the user avatar
- Access to username, first name and surname, gender
- Fill out the rest of the fields if needed
- Take note of the ID (
AUTH_YANDEX_CID
) and Password (AUTH_YANDEX_CSEC
)
For more details refer to Yandex OAuth and Yandex.Passport API documentation.
Patreon
- Create a new Patreon client https://www.patreon.com/portal/registration/register-clients
- Fill App Name, Description
- In the field Redirect URIs enter the correct URI constructed as domain +
/auth/patreon/callback
, i.e.,https://example.mysite.com/auth/patreon/callback
- Expand client details and note the Client ID and Client Secret. Those will be used as
AUTH_PATREON_CID
andAUTH_PATREON_CSEC
Telegram
- Contact @BotFather and follow his instructions to create your bot (call it, for example, "My site auth bot")
- Write down the resulting token as
TELEGRAM_TOKEN
into remark42 config, and also setAUTH_TELEGRAM
totrue
to enable telegram auth for your users.
Anonymous
Optionally, anonymous access can be turned on. In this case, an extra anonymous
provider will allow logins without any social login with any name satisfying two conditions:
- the name should be at least three characters long
- the name has to start from the letter and contains letters, numbers, underscores and spaces only**