SCALE — Build Lab

Google Workspace SSO

オプション 認証

Google アカウントでワンクリックログイン。社内ツールで標準化。

なぜ必要?

パスワード忘れ対応・退職者処理が一気に楽になる。

どう実装する?

Google OAuth2 → ID Token verify → email ドメイン制限で社内のみ許可。

コード例
ts
// middleware.ts: Google ID Token 検証
import { OAuth2Client } from 'google-auth-library';
const client = new OAuth2Client(process.env.GOOGLE_CLIENT_ID);

export async function verifyGoogleToken(idToken: string) {
  const ticket = await client.verifyIdToken({
    idToken,
    audience: process.env.GOOGLE_CLIENT_ID,
  });
  const payload = ticket.getPayload();
  if (!payload?.email?.endsWith('@scale-group.co.jp')) {
    throw new Error('Forbidden domain');
  }
  return payload;
}

Google Workspace SSO

:LiTarget: 何のために?

パスワード忘れ対応・退職者処理が一気に楽になる。

:LiSparkle: どう実装する?

Google OAuth2 → ID Token verify → email ドメイン制限で社内のみ許可。

:LiCode: コード例

// middleware.ts: Google ID Token 検証
import { OAuth2Client } from 'google-auth-library';
const client = new OAuth2Client(process.env.GOOGLE_CLIENT_ID);

export async function verifyGoogleToken(idToken: string) {
  const ticket = await client.verifyIdToken({
    idToken,
    audience: process.env.GOOGLE_CLIENT_ID,
  });
  const payload = ticket.getPayload();
  if (!payload?.email?.endsWith('@scale-group.co.jp')) {
    throw new Error('Forbidden domain');
  }
  return payload;
}