Pular para o conteúdo principal

OAuth Personalizado

nota

O Casdoor suporta provedores personalizados. No entanto, os provedores personalizados devem seguir o processo padrão do OAuth de 3 pernas, e os valores de retorno de Token URL e UserInfo URL devem estar de acordo com o formato especificado pelo Casdoor.

Para criar um novo provedor personalizado, navegue até a página do provedor do Casdoor e selecione “Custom” no campo Tipo. Você então precisará preencher Client ID, Client Secret, Auth URL, Scope,Token URL, UserInfo URL e Favicon.

image-20220418100744005

  • Auth URL é o endereço da página de login OAuth do provedor personalizado.

    Se você preencher https://door.casdoor.com/login/oauth/authorize como o Auth URL, então, quando um usuário fizer login com este provedor personalizado, o navegador primeiro redirecionará para

    https://door.casdoor.com/login/oauth/authorize?client_id={ClientID}&redirect_uri=https://{your-casdoor-hostname}/callback&state={State_generated_by_Casdoor}&response_type=code&scope={Scope}` 

    Após a autorização ser concluída, o provedor personalizado deve redirecionar para

    https://{your-casdoor-hostname}/callback?code={code}

    Após esta etapa, o Casdoor reconhecerá o parâmetro de código na URL.

  • Scope é o parâmetro de escopo carregado ao acessar o Auth URL, e você deve preenchê-lo conforme os requisitos do provedor personalizado.

  • Token URL é o ponto de extremidade da API para obter o accessToken.

    Uma vez que você obtenha o código na etapa anterior, o Casdoor deve usá-lo para obter o accessToken.

    Se você preencher https://door.casdoor.com/api/login/oauth/access_token como o Token URL, então o Casdoor acessará usando o seguinte comando

    curl -X POST -u "{ClientID}:{ClientSecret}" --data-binary "code={code}&grant_type=authorization_code&redirect_uri=https://{your-casdoor-hostname}/callback" https://door.casdoor.com/api/login/oauth/access_token

    O provedor personalizado deve retornar pelo menos as seguintes informações:

    {
    "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ixxxxxxxxxxxxxx",
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6xxxxxxxxxxxxxx",
    "token_type": "Bearer",
    "expires_in": 10080,
    "scope": "openid profile email"
    }
  • UserInfo URL é o ponto de extremidade da API para obter informações do usuário via accessToken.

    Se você preencher https://door.casdoor.com/api/userinfo como o UserInfo URL, então o Casdoor acessará usando o seguinte comando

    curl -X GET -H "Authorization: Bearer {accessToken}" https://door.casdoor.com/api/userinfo

    O provedor personalizado deve retornar pelo menos as seguintes informações:

    {
    "name": "admin",
    "preferred_username": "Admin",
    "email": "admin@example.com",
    "picture": "https://casbin.org/img/casbin.svg"
    }
  • Favicon é a URL do logotipo de um provedor personalizado.

    Este logotipo será exibido na página de login do Casdoor junto com outros provedores de login de terceiros.