Google OAuth Consent Screen User Type External Internal Google Workspace

Published
Length
3 min read

Luis Felipe Dias

All posts

You set up the google oauth consent screen user type external internal google workspace by picking who can log into your app. Internal limits logins to your company domain, while External opens login to any Google account. Teams often choose Internal for quick staff tools and External for partner or customer apps. Still, granting broad scopes to these logins gives users too much power over backend data. How the google oauth consent screen user type external internal google workspace works Goo

SOC 2 Type I & Type II + OAuth 2.0: the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

You set up the google oauth consent screen user type external internal google workspace by picking who can log into your app. Internal limits logins to your company domain, while External opens login to any Google account. Teams often choose Internal for quick staff tools and External for partner or customer apps. Still, granting broad scopes to these logins gives users too much power over backend data.

Google Cloud uses the consent screen to tell users what data an app wants. Before creating credentials, you must pick between two user types for your project. This choice controls which Google accounts can complete the login flow.

The Internal option is only available to teams that use Google Workspace. When you pick Internal, only people with an email in your company domain can log in. Anyone outside your company sees an error screen if they try to sign in. You do not need to submit Internal apps for a security review by Google. This makes it fast to build and share tools for your own staff.

The External option allows any person with a personal or work Google account to log in. You must choose External if you use a personal Gmail account to build the project. You also need External if contractors, clients, or partners outside your domain need the app. External apps start in a test mode that only allows a small list of test users. To open the app to everyone, you often must pass a Google security review. This review takes extra time when your app asks for sensitive data scopes.

What user types solve and the security gap they leave open

Choosing between Internal and External solves the first step of identity control. An Internal screen blocks strangers on the internet from logging into your company tools. An External screen in test mode keeps unverified apps limited to specific outside emails. Both options help you check who is at the front door before issuing a token.

Yet this login check does not control what happens after a user signs in. Once the consent screen grants a token, the app or user connects to backend systems. Many internal tools link to production databases, cloud servers, or admin APIs using shared keys. The Google consent screen cannot see or limit the queries a user runs inside those systems.

SOC 2 Type I & Type II + OAuth 2.0: architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

A staff member who logs in through an Internal screen might still run a bad query. They could drop a table by mistake or read raw customer emails and card numbers. An outside contractor using an External test login might pull a full database table. The consent screen only decides who logs in, not what each command does in flight.

Why runtime controls matter after OAuth login

Relying only on login screens forces teams to give out broad database roles and static keys. If an engineer needs to check one record, they often get full read permissions. If a support app needs to update a user status, it gets broad write permissions. When a token or key leaks, an attacker gets that same wide level of control.

Teams need a way to inspect every query and command after the Google login finishes. Instead of trusting a user for hours after sign-in, you should check each action. High-risk commands should pause and wait for a peer to approve them in chat. Sensitive fields like phone numbers and national IDs should be masked in query results. Masking rewrites matched fields in results so raw secrets do not spill into local machines.

Check database and API queries on the wire

Identity tools, roles, and network rules decide who opens a session. Setup alone cannot check what each query does or mask sensitive values in a response once a session starts. When workflows touch Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, or internal HTTP APIs, hoop.dev runs beside those services as an open-source proxy, a sidecar for your Postgres or API. It inspects requests coming in and results going back on the wire.

Your login details and client tools stay as they are while hoop.dev guardrails refuse bad deletes or drops before they run. On responses, hoop.dev data masking rewrites matched sensitive values in memory. Furthermore, hoop.dev holds SOC 2 Type II, is MIT licensed, and writes every query and decision to an audit trail that generates evidence for HIPAA, GDPR, and PCI DSS. See the source on GitHub.

Frequently asked questions

Can I switch my app from External to Internal later?

Yes, you can change the user type if your project belongs to a Google Workspace domain. If you created the project with a personal Gmail account, you can only pick External.

When should a Google Workspace team choose the External user type?

Choose External when contractors, partners, or customers without a company email must log into your app. You can keep the External app in testing mode to allow only specific outside emails.

No, an Internal consent screen only checks that a user belongs to your company domain. It does not restrict the SQL queries or server commands that user runs after logging in.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.