
はじめに
みなさん、こんにちは。エーピーコミュニケーションズ ACS事業部 亀崎です。
今回はなにかと混乱することが多いBackstageの認証について解説していきます。
Backstageの認証機能
Backstageには役割の異なる2種類の認証が存在します 。これらを混同せずに設計することが、使い勝手の良いポータル構築の鍵となります。
その2つとは「Backstage本体のユーザー認証」と「外部サービス連携用のユーザー認証」です。
| Backstage本体のユーザー認証 | 外部サービス連携用のユーザー認証 | |
|---|---|---|
| 目的 | Backstageへのサインインとアクセス制御 | 外部データの取得・操作 |
| 対象 | Backstageのユーザー・グループ情報 | リポジトリやクラウドリソース等 |

それではそれぞれの内容を詳しく見ていきましょう。
Backstage本体のユーザー認証
「Backstage本体のユーザー認証」はその名のとおり、ユーザーがBackstageそのものを利用するための認証です。 一般的には外部サービスとSSOの登録を行い、外部サービスからユーザー・グループ情報をBackstageにインポートして利用します。
サインイン時は、SSO登録先にユーザーの本人確認を依頼しユーザー情報を取得(図中①)、 その情報をもとにBackstage側に登録されているユーザー・グループ情報とマッチングして存在していればサインインを許可します(図中②)。 また、Backstage内のアクセス制御もBackstage内に登録されているユーザー・グループ情報を基に判定します。

外部サービス連携用のユーザー認証
外部サービス連携用のユーザー認証は、Backstage内の機能で外部サービスの情報にアクセスする際に使用するものです。 この認証はBackstage本体のユーザー認証が完了していることが利用の前提となります。
外部サービスとは例えばGitHubのリポジトリ等の情報の取得、Azureのリソースステータスの確認などを指します。 これらの外部サービスにアクセスするための認証を行い(図中①)、その情報をブラウザのセッション情報に保持します(図中②)。

SSO認証先の選択
それでは実際の利用例についてみていきましょう。 ここでは、組織全体のユーザー管理としてMicrosoft Entra IDを利用し、GitHubでEnterprise Managed Users(EMU)を利用している例を紹介します。
こうした場合Backstage本体のユーザー認証はEntra IDを選ぶべきでしょうか?それともGitHubを選ぶべきでしょうか?
答えは「GitHub」を選ぶのがベストです。
Backstageの認証先としてGitHubを選ぶべき理由
Backstageの多くの機能はGitHubのリポジトリ(以後Gitリポジトリとします)との連携を前提としています。 Backstage内で管理する情報(Software Catalog)もGitリポジトリ内でyamlファイルとして管理することが大半です。 加えて、Backstageでの外部連携サービス自体もその設定(IaCなど)をGitリポジトリで管理していると思います。 こうしたIaCをセルフサービスで作成・利用するBackstage Software Template機能も一番利用するのはGitリポジトリの作成や更新です。
このようにBackstageの利用シーンではGitリポジトリを中心に作業することが多くなります。
BackstageのSSO認証先をGitHubにすることで、「GitHubでリポジトリが見える人はBackstageでも見える」という状態となります。 BackstageのSSO認証先としてEntra IDを選択肢した場合、Backstage上では見えていた情報がGitHub上では見えなかったり、 詳細情報を閲覧するために別途GitHubにもサインインしなければならないといったことが発生します。 GitHubのアカウントとBackstageのアカウントを一致させることで管理がシンプルになり手間も省けます。
「BackstageのSSO認証先はGitHub」とするとスムーズな構成となります。
実際のサインインがどういったイメージになるのかは、こちらの記事で紹介しています。
まとめ
Backstageは様々な機能と連携することから、認証の機能についても複数登場してわかりにくい部分があったかと思います。 この記事でそうしたわかりにくさが解消したら幸いです。
最後に。
弊社では、Backstageのマネージドサービスである「PlaTT」 を提供しています。
開発者ポータルの前提となる Platform Engineeringの導入支援も行っております。
開発者体験を向上し、開発生産性を高めたいとご検討の皆様、ぜひ弊社までご相談ください。