getHelper('formatter'); $this->azure->scope = ['https://graph.microsoft.com/.default']; $authorizationUrl = explode('?', $this->azure->getAuthorizationUrl(['prompt' => 'admin_consent'])); // replace the first part by the admin consent authorization url $authorizationUrl[0] = strtr('https://login.microsoftonline.com/{tenant}/adminconsent', ['{tenant}' => $this->azure->tenant]); $output->writeln('Go to the url'); $output->writeln(implode('?', $authorizationUrl)); $output->writeln('Authenticate as admin, and grant admin consent'); // not necessary ? $helper = $this->getHelper('question'); $question = new ConfirmationQuestion('Access granted ?'); if (!$helper->ask($input, $output, $question)) { $messages = ['No problem, we will wait for you', 'Grant access and come back here']; $output->writeln($formatter->formatBlock($messages, 'warning')); return 0; } $token = $this->machineTokenStorage->getToken(); $messages = ['Token acquired!', 'We could acquire a machine token successfully']; $output->writeln($formatter->formatBlock($messages, 'success')); $output->writeln('Token information:'); $output->writeln($token->getToken()); $output->writeln('Expires at: ' . $token->getExpires()); $output->writeln('To inspect the token content, go to https://jwt.ms/#access_token=' . urlencode($token->getToken())); return 0; } }