JMDC TECH BLOG

JMDCのエンジニアブログです

Auth0とGoogle Workspace(Googleグループ)のSAML認証を利用した話

今年、JMDCではアドベントカレンダーに参加しています。

qiita.com

本記事は、JMDC Advent Calendar 2025 11日目の記事です。

背景・概要

こんにちは!プロダクト開発部の山岡です。

今回新規のプロジェクトでAuth0の認証を利用したサービスを開発しております。 その際にメインサービスとは別に運用チームが利用する、 多機能ではありませんが管理側のサービスも必要となりました。

管理ツールのユーザー制御を検討し下記のように決定しました。

  • 利用できるユーザーはGoogleグループで管理する

最初に候補に上がったのは Google Workspaceを直接利用したSAMLアプリケーションとして作成する方式です。

他のプロダクトでも利用されていたので、同じように利用しようと考えていました。

しかし今回はメインサービスでAuth0を利用していたので、 合わせてAuth0からのGoogle WorkspaceのSAMLを利用することになりました。

構成図

構成図

Google Workspace側の設定

Google Workspace側では「ウェブアプリとモバイルアプリ」の作成を行います。

ACS:https://auth.xxxxxxxxx.dev.jmdc.co.jp/login/callback?connection=GoogleWorkspace

エンティティID:urn:auth0:xxxxxxxxx:GoogleWorkspace

※エンティティIDの入力は必須です

SAMLの設定

Auth0側の設定

Auth0にはデフォルトでGoogle WorkspaceをSAMLとして登録する項目がありますが、 そちらで構築した場合、 対象のGoogle Workspaceのユーザーが誰でもログインできるようになってしまったので、 SAMLの欄から設定しました。

Auth0の設定

React側の設定

import { Auth0Provider } from '@auth0/auth0-react'
import { startTransition, StrictMode } from 'react'
import { hydrateRoot } from 'react-dom/client'
import { HydratedRouter } from 'react-router/dom'

startTransition(() => {
  hydrateRoot(
    document,
    <Auth0Provider
      domain={import.meta.env.VITE_AUTH0_DOMAIN}
      clientId={import.meta.env.VITE_AUTH0_CLIENT_ID}
      authorizationParams={{
        redirect_uri: window.location.origin,
        audience: `${import.meta.env.VITE_AUTH_AUDIENCE}`,
        scope: 'openid profile email',
        response_type: 'token id_token',
      }}
      cacheLocation={'localstorage'}
    >
      <StrictMode>
        <HydratedRouter />
      </StrictMode>
    </Auth0Provider>,
  )
})

つまった点

Google Workspaceのアプリケーション設定時に対象のGoogleグループを選択するのですが、選択肢にでてきませんでした。

担当部署の方に調べていただくと Googleグループのアクセス権の仕様が変更 されたようで下記の画像のセキュリティを有効にしなければ連携できないという事がわかりました。

所感

もろもろ試行錯誤および担当部署の方に協力頂き無事SAMLのログインを実装することできました。

SAMLログイン

Google WorkspaceのSAMLを利用することで、管理ツールのアクセス権のメンバーの管理などが容易になりました。

Auth0を利用したドキュメントはまだ多くは無く、 今後実装される方の参考になればと思っております。


明日12日目は、西村さんによる「PM1年目で失敗したことと学んだこと」です。お楽しみに!

JMDCでは、ヘルスケア領域の課題解決に一緒に取り組んでいただける方を積極採用中です!フロントエンド /バックエンド/ データベースエンジニア等、様々なポジションで募集をしています。詳細は下記の募集一覧からご確認ください。 hrmos.co

まずはカジュアルにJMDCメンバーと話してみたい/経験が活かせそうなポジションの話を聞いてみたい等ございましたら、下記よりエントリーいただけますと幸いです。 hrmos.co

★最新記事のお知らせはぜひ X(Twitter)、またはBlueskyをご覧ください!

twitter.com

bsky.appueu