Try   HackMD

Generic OAuth 2.0 provider

CodiMD can integrate any OAuth 2.0 provider via generic oauth 2.0 provider.

Before setup OAuth 2.0 provider, you need to contact your OAuth 2.0 service to request some parameter described below.

  1. the authorization url for OAuth 2.0 service
    The first step of OAuth 2.0 is redirect user to OAuth 2.0 service, and the service will authenticate the user credential. If success, return access code to callback url (http://<your-codimd-server.example>/auth/oauth2/callback).

  2. the access token url for backend to request a access token for OAuth 2.0 service.
    The second step, CodiMD server use access code in step 1 to fetch access token for the login user.

  3. user profile api url
    After CodiMD server get access token, we need to known the username, email, display name. CodiMD server use access token with user profile api to get user profile data. In this step you can also specify scope to limit OAuth 2.0 service return what message CodiMD server can see. default scope is email

  4. CodiMD need a id for identify difference user in same auth provider, you need to provide a object path (user profile username attr) to retrive username/id in user profile data

Setting

Environment variable name description required? default value example
CMD_OAUTH2_PROVIDERNAME OAuth 2.0 service name true MyService
CMD_OAUTH2_BASEURL OAuth 2.0 service url false https://my-service.xyz/
CMD_OAUTH2_CLIENT_ID Client ID for OAuth 2.0 protocol true atc93jf9vasdfasdf
CMD_OAUTH2_CLIENT_SECRET Client Secret for OAuth 2.0 protocol true asdfasdfavvtv88v@
CMD_OAUTH2_SCOPE OAuth 2.0 scope (use space to seperate) false email basic email
CMD_OAUTH2_AUTHORIZATION_URL redirect to OAuth 2.0 url true https://my-service.xyz/oauth/authorize
CMD_OAUTH2_TOKEN_URL backend to fetch access token api endpoint true https://my-service.xyz/oauth/token
CMD_OAUTH2_USER_PROFILE_URL backend to fetch user profile api endpoint true https://my-service.xyz/oauth/user/profile
CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR Object path to fetch username in profile data false username user.username
CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR Object path to fetch display in profile data false displayName user.displayname
CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR Object path to fetch email in profile data false email user[0].email
tags: CodiMD Docs