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;
}