Configuração¶
O comportamento do pacote é controlado através do dicionário GOVBR_AUTH no arquivo settings.py do seu projeto Django.
Exemplo de Configuração Básica¶
# settings.py
INSTALLED_APPS = [
# ...
"django.contrib.auth",
"django_govbr_auth",
]
AUTHENTICATION_BACKENDS = [
"django_govbr_auth.backends.GovBrAuthBackend",
"django.contrib.auth.backends.ModelBackend",
]
GOVBR_AUTH = {
"CLIENT_ID": "seu-client-id-govbr",
"CLIENT_SECRET": "seu-client-secret-govbr",
"REDIRECT_URI": "https://sua-aplicacao.gov.br/auth/govbr/callback/",
"ENVIRONMENT": "staging", # "staging" ou "production"
}
LOGIN_URL = "/auth/govbr/login/"
LOGIN_REDIRECT_URL = "/dashboard/"
LOGOUT_REDIRECT_URL = "/"
Opções de Configuração¶
Parâmetros Obrigatórios¶
CLIENT_ID(str): ID do cliente fornecido pelo provedor Gov.br.CLIENT_SECRET(str): Chave secreta fornecida pelo provedor Gov.br.REDIRECT_URI(str): URI de redirecionamento autorizada cadastrada no Login Único.
Parâmetros Opcionais¶
ENVIRONMENT(str, padrão:"staging"):"staging": Utilizahttps://sso.staging.acesso.gov.br"production": Utilizahttps://sso.acesso.gov.brBASE_URL(str, padrão:None): URL base do provedor SSO Gov.br. Caso especificada, sobrescreve a URL derivada deENVIRONMENT.SCOPES(list, padrão:["openid", "email", "profile"]): Lista de escopos OIDC solicitados durante a autorização.USER_LOOKUP_FIELD(str, padrão:"username"): Campo do modeloUserutilizado para buscar e identificar unicamente o usuário localmente.USER_ATTR_MAP(dict, padrão:DEFAULT_USER_ATTR_MAP): Mapeamento de atributos retornado pelo/userinfopara o modeloUser.USER_INFO_FETCHERS(list, padrão:["django_govbr_auth.fetchers.DefaultEndpointsUserInfoFetcher"]): Lista de classes fetcher executadas na Cadeia de Responsabilidade.USER_INFO_ENDPOINTS(list, padrão:["/userinfo"]): Lista de endpoints OIDC/API a consultar e mesclar.USER_INFO_MAPPERS(list, padrão:["django_govbr_auth.mappers.DefaultAttrMapUserMapper"]): Lista de classes mapper executadas na Cadeia de Responsabilidade.USER_JSON_FIELD(str, padrão:None): CampoJSONFieldpara gravar a resposta bruta da API do Gov.br no modeloUser.CREATE_USER(bool, padrão:True): Se definido comoFalse, lançaGovBrUserNotAllowedErrorcaso o usuário ainda não possua conta local.USER_DEFAULTS(dict, padrão:{"is_active": True}): Atributos padrão aplicados na criação e sincronizados a cada login.FIRST_USER_DEFAULTS(dict, padrão:None): Atributos aplicados exclusivamente ao primeiro usuário criado no sistema (ex:{"is_superuser": True, "is_staff": True}).UPDATE_FIELDS_ON_CREATE(listouNone, padrão:None): Lista de campos a serem preenchidos na criação do usuário (Nonerepresenta todos).UPDATE_FIELDS_ON_LOGIN(listouNone, padrão:None): Lista de campos atualizados a cada login do usuário (Nonerepresenta todos).DIRECT_REDIRECT(bool, padrão:True): SeTrue, o usuário é redirecionado imediatamente ao Gov.br. SeFalse, renderiza a página intermediáriadjango_govbr_auth/login.html.POST_LOGOUT_REDIRECT_URI(str, padrão:None): URI de retorno após realizar o logout federado OIDC.BACKEND(str, padrão:"django_govbr_auth.backends.GovBrAuthBackend"): Caminho da classe backend de autenticação.