feat: Add IAM OAuth scope to appsscript.json#296
Conversation
Summary of ChangesHello @PierrickVoulet, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request integrates the Google Cloud IAM OAuth scope into the application's manifest. This change is fundamental for enabling the AI agent to perform operations that require managing identities and access permissions within Google Cloud, thereby expanding its functional capabilities related to resource access control. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request adds the https://www.googleapis.com/auth/iam OAuth scope to the application manifest to enable service account impersonation. While this is necessary for that feature, this scope is very broad and grants significant permissions. My review highlights the security concern of requesting this scope from all users, especially since the application also supports an alternative authentication method that doesn't require it. This violates the principle of least privilege. I have recommended either committing to a single authentication method or clearly documenting the security implications for administrators.
| "chat": {} | ||
| }, | ||
| "oauthScopes": [ | ||
| "https://www.googleapis.com/auth/iam", |
There was a problem hiding this comment.
The https://www.googleapis.com/auth/iam scope grants broad permissions to view and manage all of a user's Google Cloud IAM resources. Following the principle of least privilege, such a powerful scope should only be requested when strictly necessary.
The script in Credentials.gs supports two authentication methods:
- Service account impersonation (which requires this
iamscope). - Using a service account key (which does not require this scope).
By including this scope in the manifest, all users of the add-on will be prompted to grant this powerful permission, even if their configuration uses the service account key method. This leads to an over-provisioning of permissions for those users and increases the potential security risk.
To mitigate this, consider one of the following approaches:
- Support only one authentication method (e.g., service account impersonation) to ensure the requested scope is always required.
- If both methods must be supported, clearly document for administrators that this permission is only needed for the impersonation flow, and explain the security implications. This allows them to make an informed decision.
No description provided.