【ITニュース解説】Free Mapbox SSO Configuration with Auth0
2025年09月16日に「Dev.to」が公開したITニュース「Free Mapbox SSO Configuration with Auth0」について初心者にもわかりやすく解説しています。
ITニュース概要
会社のID・パスワードを使わずMapboxに安全にアクセスする方法として、Auth0を利用したSSO(シングルサインオン)設定を解説。NextJSアプリからAuth0経由でログインさせ、許可されたユーザーのみに管理者権限でMapbox利用を認める。
ITニュース解説
Mapboxという地図サービスを社内で利用する際、セキュリティと利便性を両立させるための「シングルサインオン(SSO)」の設定方法について解説する。特に、外部の認証サービスであるAuth0を利用し、無料でSSOを実現する具体的な手順が示されている。
シングルサインオンとは、一度認証を受けるだけで、複数の異なるシステムやサービスにログインできる仕組みのことである。例えば、会社のPCにログインしたら、そのまま会社のメールやファイル共有サービス、今回のMapboxのような外部サービスにもログイン済みになるようなイメージだ。これにより、ユーザーは何度もIDとパスワードを入力する手間が省け、システム管理者はユーザーごとにアカウントを管理する負担が軽減される。また、パスワードの使い回しによるセキュリティリスクも減らせるため、非常に有用な技術である。
今回のシステムでは、主に三つの要素が連携している。まず、ユーザーが操作するウェブアプリケーションである「NextJSアプリ」。次に、ユーザーの認証を一手に引き受けるクラウドサービスである「Auth0」。そして、実際に利用したいサービスである「Mapbox」だ。ユーザーはNextJSアプリ内にある特定のリンクをクリックすることからSSOのプロセスを始める。このリンクは直接Mapboxに繋がるのではなく、一度Auth0という認証サービスへとユーザーを誘導する。Auth0でユーザーが認証を済ませると、その認証情報がMapboxに伝えられ、Mapboxへのアクセスが許可される、という流れである。これにより、会社のMapboxアカウントの認証情報を従業員に直接共有することなく、安全にアクセスを許可できる。
Auth0は、ユーザーの認証や認可を専門に行うサービスである。今回のシステムでは、Mapboxへのアクセス許可を判断する中心的な役割を担っている。Auth0には、認証フローの特定のタイミングでカスタムロジック(処理)を実行できる機能がある。これを「アクション」と呼ぶ。ニュース記事では、二つの重要なアクションが設定されている。
一つは「事前登録アクション(Pre-user registration action)」である。これは、ユーザーがAuth0に登録する前に実行される。このアクションの目的は、アクセスを許可するユーザーを制限することと、ユーザーに特定の役割(ロール)を付与することだ。具体的には、事前に定義されたメールアドレスのリスト(allowlist)にユーザーのメールアドレスが含まれているかをチェックする。もし含まれていなければ、そのユーザーの登録は拒否され、Mapboxへアクセスすることはできない。これは、許可されていない外部の人が勝手に会社のMapboxアカウントにアクセスしてしまうのを防ぐためのセキュリティ対策である。許可リストに含まれているユーザーの場合、そのユーザーの情報(user_metadata)に「role」として「admin」という値が設定される。このuser_metadataは、ユーザーに付随する追加情報のようなものと考えると良い。
もう一つは「登録後アクション(Post-registration action)」である。これは、ユーザーがAuth0で正常にログインした後に実行される。このアクションでは、事前登録アクションで設定されたユーザーのuser_metadataから「role」の値(つまり「admin」)を取り出し、それを「SAML属性」として設定する。SAMLとは、SSOを実現するための技術標準の一つで、システム間で認証情報を安全にやり取りするための方法である。SAML属性は、認証が成功した後にMapboxに渡される情報の一部で、「このユーザーは管理者である」という情報をMapboxに伝えるために使われる。Mapbox側では、このSAML属性の「role」の値に応じて、そのユーザーに付与する権限を決定する。今回の設定では、「Admin」ロールのユーザーは、Mapboxのほとんどのリソースに対して読み書きの権限を持つが、請求情報やアカウント設定の変更はできない、と定義されている。
Auth0から送られてくる認証情報を受け入れ、SSOを機能させるためには、Mapbox側の設定も必要である。ニュース記事に記載されているのは、「Application Login URI」と「Allowed Callback URLs」の二つの重要な設定項目だ。「Application Login URI」には、SSOが開始される元のアプリケーション、つまり今回の場合はNextJSアプリのURLを設定する。これは、Mapboxから認証が完了した後にユーザーをどこに戻すべきかを指定する場所である。「Allowed Callback URLs」には、Auth0で認証が成功した後に、Auth0からMapboxへ認証情報が返されるためのURL、つまりMapboxが提供するSSO用のURLを設定する。これは、Auth0が認証プロセスの最終段階で、認証済みユーザーをMapboxに安全にリダイレクトするために使うアドレスである。これらの設定を正しく行うことで、MapboxはAuth0からの認証要求を信頼し、受け入れる準備が整う。
NextJSアプリケーション内には、SSOを開始するための特別なリンクが配置されている。ユーザーがこのリンクをクリックすると、ブラウザは特定のURLへと移動する。このURLは、Auth0の認証エンドポイントを指しており、いくつかの重要な情報を含んでいる。例えば、「client_id」は、どのアプリケーション(今回はMapbox)が認証を要求しているのかをAuth0に伝えるための識別子である。「redirect_uri」は、Auth0での認証が成功した後に、ユーザーをどこにリダイレクトすべきかを指定するURLで、Mapboxが提供するSSO用のURLが設定されている。また、「response_type=code」は、認証コードフローと呼ばれる認証方式を使用することを示しており、これはセキュリティを考慮した一般的な認証手順である。このリンクをクリックすることで、ユーザーはNextJSアプリからAuth0のログインフォームに誘導され、認証後、Auth0がMapboxにSAML属性として「role: admin」などの情報を含んだ認証結果を渡し、最終的にMapboxに管理者権限でログインできる、という一連の流れが始まる。
この解説で示された方法は、Mapboxという外部サービスに対して、会社の認証情報を直接共有することなく、安全かつ効率的にアクセスを管理するためのSSO設定の具体的な実装例である。Auth0という強力な認証サービスを利用し、許可リストによるアクセス制限やユーザーロールの付与といったセキュリティ機能を組み込むことで、企業は従業員が外部サービスを利用する際のセキュリティリスクを大幅に軽減できる。システムエンジニアを目指す初心者にとって、NextJS、Auth0、Mapbox、そしてSAMLといった複数の技術がどのように連携し、実用的なソリューションを生み出しているかを理解する良い事例となるだろう。この知識は、現代のITシステム開発において非常に重要な、認証と認可の基本的な概念を把握するための第一歩となる。