estou tentando chamar a API de identidade da nuvem para extrair todas as configurações do Google Workspace do console do administrador. Eventualmente, quero extrair configurações específicas para uma Planilha Google, e é por isso que tenho o aplicativo de planilha. Quando executo o código, ele continua retornando com o erro abaixo:
{ erro: { código: 401, mensagem: 'A solicitação não possui a credencial de autenticação necessária. Token de acesso OAuth 2, cookie de login ou outra credencial de autenticação válida esperada. Consulte https://developers.google.com/identity/sign-in/web/devconsole-project.' , status: 'NÃO AUTENTICADO', detalhes: [ [Objeto] ] } }
Habilitei a API de identidade da nuvem e a API de planilhas, vinculei o projeto do GCP ao meu projeto de script do Apps, criei uma conta de serviço e baixei a chave json. Também criei um ID de cliente oauth e continuo tendo o mesmo problema. Estou usando a chave json copiada e colada em um arquivo de código diferente e tentei usá-la para autenticar a api, mas não está funcionando.
Fiz pesquisas online, mas não consegui encontrar nada que pudesse fazer isso funcionar.
Alguma ideia de como fazer isso funcionar?
function get_settings(){
const ss = SpreadsheetApp.getActiveSpreadsheet();
const settingsSheet = ss.getSheetByName("02. Google Workspace Security Settings");
var url = "https://cloudidentity.googleapis.com/v1beta1/policies"
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var data = JSON.parse(json)
console.log(data);
}
**Configuration.gs**
const cloudidentity_credentials = {
"type": "service_account",
"project_id": "security-review-automation",
"private_key_id": "***********************************",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7AKYgLBa/U38y\njXaBfBGMiS0rU4tRh8rzVF+tttW/2saBl5ud+1X6ySNwhCnCVnm4IbfMsKzLX0WT\nSp2Mqs8v2Tc6JZPDBqqXKTwcuUeEwYNerBrhcS0GMpx3tzOtyGNTCpLUoAXa9UPE\n2FW9F8Kc501hjONhY2J/HW4n8hOe+V/JwIowmv912/WR8WkLUyQstFeI0A50QR4D\np1BFlmUYFrgu37f+vTQAyY/1ek91B7NtDvRa+N7Gjt+ccwFqafUHdByMSisGp6zw\nBaNbB43tIYV8pm9rfIkq0ex6l2Bi6SxbUKpcLvC7drnzamO3sy4rgFEjqJIdQAr2\noMplcDHFAgMBAAECggEAKkWxiATHaJ0onAYf85HXCriIsipazEWg0mQwk72IsKu1\nI17g8fO6oiwdO4ZYxUJUlhPjL12B1iBVg0ADAOUs3EFjS1zqu9OyNOUAnnKgsOko\nt/o6QluZ5LSEq8hJYZ+ymjdB7Vg2MqKuXN1Vdl8cYmkkFCjrzpxPi/IccGG33z/W\n7Em2VXLq7mlb1WeUorDdkw43W9hmCcOknR4VgTS1Aeu34Z+kr/b7m+Dz/G9DhSSl\nhUpeB8HN9BEs+4OxPooWwUPYYDggtxBeSXYqqDLt1LHTYU5+9udaRC33MSpCBga1\nDF0c7hHk3MlZexuugkLWBQPOpv9tp4GHeljCZny7CQKBgQD20pGC7h6x00+GA7NR\nVWvx6XNtmVdJzya8iEIkYV5mYPjHUwN4LPsTV2vL7h5uXkgSgDo8lluvU4hGZt6M\nOoJ8hO67N9U8zmC472HgTI0XfZpSZn14DtswgX1Rf6GuniksiSDtHgyAbMFlTguY\nkeIpwmlKHg1nii7RAtY4OLB1aQKBgQDB9KvjRFAaV41nTd366tGqQ/uimRAG6Cn0\n4YEKxyDdwXNrkCSYeRHX93m39ebWd7DzX69UyAIRLmDhtpTP1ZsP0i9MDGLFM8dR\nAb36Y8Ik6i3s0bUHkErOBdkr9TgkRSMQj1TWu2NL2zjPZDMyviW4JKWFNoiDn8lc\n9sFKqUjB/QKBgFr02Aiu5YLUgy64uGEVoJTiWdYetwsNGpJJiE5Nz3Lc83DIx7OG\np/PFuITLOE2l0tt2g3+GTT08BDElgYednC508mDtv1gMGZqtJJ16uFfawn7xI/WV\nS/MBFQRui0+FG1k9I3QeKa895LsHWsCbqgOHkDNvBbONOZlueTD4uxZZAoGATYDD\nntERYTVTH9CRv05N8cewqcyYBuqGuX/S3Metbm96+6RhuzvF0ZLmZIgyccjqQJYf\nrbUufkcWF5up41Lr32qR08WvQjXqk4gqrf9m+PFK4LL7r8YM3j6gBVy7zmKCHH/p\n2tSOXSWAkf7sJn6s++RI7+5WpqIXCLrhikAS/tECgYB6xQ7yrCrCfTxwTX42BmJX\nMBFukX/51kVn98CPMccgami23naUVGJfz9DrZZ/vtrVFoUDehqqruDiXjiFzBZRl\nyqjILD7tGMHk+K58wDFc8GQ1nCB4mTbwbDjlXla//j3C1ISnQLwjtsj5Ggss/vNu\nF8RqCO4EeKTK1s1f8FqMew==\n-----END PRIVATE KEY-----\n",
"client_email": "cloud-identity-policy-app@security-review-automation.iam.gserviceaccount.com",
"client_id": "102944771842644545560",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloud-identity-policy-app%40security-review-automation.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
};
const PROJECT_ID = 'security-review-automation';
Problemas de autenticação ao acessar a API do Google Cloud Identity.
Seu problema é que durante a parte de busca do seu projeto, você não está usando nenhuma autenticação, assumindo que é todo o código que você tem agora. Eu entendo que você está usando uma conta de serviço. Infelizmente, neste estágio do Apps Script, isso não é permitido porque você não pode carregar a chave no Apps Script. Além disso, há uma variedade de maneiras de fazer autenticação. Já que o que você está usando é o Apps Script. Eu sugeriria usar o método Built in Script App e usar get0AuthToken(). Você pode ler mais aqui neste link .
Código de exemplo:
Certifique-se de seguir o processo de configuração de chaves de API para garantir que você tenha escopos adequados para seus projetos. Também há outras soluções alternativas para isso. Você pode ler o artigo de Tanaike sobre isso também.
Referências:
ScriptApp (obter0AuthToken)