Observação:

Excluir Usuários Inativos dos Domínios de Identidade do OCI IAM com Base em UserStatus e LastSuccessfulLoginDate Usando o Python

Introdução

A Oracle Cloud Infrastructure (OCI) é uma plataforma de nuvem capaz de fornecer uma variedade de serviços de nuvem, incluindo armazenamento, rede e infraestrutura. O Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) é um serviço que permite gerenciar o acesso aos recursos do OCI. Ele fornece autenticação e autorização para usuários e grupos.

A exclusão de usuários inativos com base em sua última data de log-in bem-sucedida nos Domínios de Identidade do OCI IAM pode ser particularmente útil no contexto do modelo de preços por usuário do OCI por vários motivos:

Para implementar esse processo de forma eficaz, o trecho de código abaixo do python pode ser usado para automatizar a identificação e a exclusão de usuários inativos com base na última data de login bem-sucedida e no status ativo/inativo. Ao executar regularmente esses scripts, você pode manter um ambiente IAM enxuto e seguro enquanto otimiza seus custos no OCI.

Público-alvo

Profissionais e administradores de IAM.

Objetivo

Exclua usuários com base no status do usuário e lastSuccessfulLoginDate dos Domínios de Identidade do OCI IAM usando a API REST com Python.

Pré-requisitos

Tarefa 1: Criar um aplicativo confidencial nos Domínios de Identidade do OCI IAM

Siga o Oracle Identity Cloud Service: Primeira Chamada de API REST para criar um aplicativo confidencial e recuperar o ID do cliente e o segredo do cliente, que podem ser usados para executar uma chamada de API REST para o OCI IAM para recuperar o Token de Acesso e pontos finais de API subsequentes.

Tarefa 2: Configurar o arquivo config.json

Configure o arquivo de configuração em sua máquina local. O arquivo config.json tem informações sobre o URL do Domínio de Identidades, o ID do Cliente e o Segredo do Cliente que é usado para gerar o Token de Acesso.

{
"iamurl"         : "https://idcs-###########.identity.oraclecloud.com",
"client_id"      : "#######################",
"client_secret"  : "#######################"
}

Tarefa 3: Obter o Token de Acesso

Depois que o arquivo config.json estiver em vigor, a primeira coisa que você precisa fazer é gerar o Token de Acesso, que pode ser usado para fazer chamadas adicionais da API REST para os pontos finais do OCI IAM.

No trecho de código abaixo, a função get_encoded usa o ID do Cliente e o Segredo do Cliente como argumentos e retorna a string base64-encoded. Essa string codificada é posteriormente passada como um argumento para a função get_access_token como um cabeçalho de Autorização, para obter o Token de Acesso executando uma solicitação POST.

#get base64 encoded
def get_encoded(self,clid, clsecret):
    encoded = clid + ":" + clsecret
    baseencoded = base64.urlsafe_b64encode(encoded.encode('UTF-8')).decode('ascii')
    return baseencoded

#get access token
def get_access_token(self,url, header):
    para = "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__"
    response = requests.post(url, headers=header, data=para, verify=False)
    jsonresp = json.loads(response.content)
    access_token = jsonresp.get('access_token')
    return access_token

#print access token
def printaccesstoken(self):
    obj = IAM()
    encodedtoken = obj.get_encoded(clientID, clientSecret)
    extra = "/oauth2/v1/token"
    headers = {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
               'Authorization': 'Basic %s' % encodedtoken, 'Accept': '*/*'}
    accesstoken = obj.get_access_token(idcsURL + extra, headers)
    return accesstoken

Tarefa 4: Tratar um lote de informações do usuário (lastSuccessfulLoginDate, userStatus) para limpar usuários

Temos o token de acesso, usando o qual podemos fazer mais chamadas de API REST para diferentes pontos finais REST de Domínios de Identidade do OCI IAM. O trecho de código abaixo mostra como estamos fazendo uma solicitação GET com cabeçalhos e parâmetros necessários para o ponto final /admin/v1/Users, a fim de recuperar o número total de usuários e calcular o número de iterações necessárias, com base no número total de resultados e na contagem por solicitação.

Tarefa 5: Usar o script no OCI Cloud Shell

Depois que o script estiver pronto, ele poderá ser facilmente executado na máquina local (com o Python Instalado) ou em qualquer IDE que suporte o desenvolvimento do Python. Estamos usando o OCI Cloud Shell para executar o script e obter o relatório desejado.

  1. Faça log-in na Console do OCI, abra o Cloud Shell no canto superior direito da tela e faça upload do script Python e do arquivo config.json.

    Imagem 1

    Imagem 2

    Imagem 3

  2. Execute python DeleteUser_PriorCheck_InactivePeriod60days_IsAdmin.py.

    Observação: DeleteUser_PriorCheck_InactivePeriod60days_IsAdmin.py é o script Python desenvolvido usando trechos de código acima.

Agradecimentos

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.