Amazon Managed GrafanaへAuth0を使ってSAMLログインしてみた

Amazon Managed GrafanaとAuth0を組み合わせて使う方法を試してみました
2022.05.20

こんにちは。CX事業本部 IoT事業部のakkyです。

AWS IoT SitewiseにはSiteWise Monitorという可視化ツールが付属しており、簡単に使用することができますが、表示するグラフをあまりカスタマイズできないため、要件によっては使用が難しいことがあるかもしれません。 そこで、SiteWiseはデータストアとしてのみ使い、可視化ツールにはGrafanaを使用すると、さまざまな種類のグラフツールが使用できて、プラグインによる拡張も可能となります。

AWSにはAmazon Managed Grafanaというのマネージドサービスが存在するのでこれを使用するのが簡単です。しかし、ログイン方式としてはAWS SSOとSAMLのみが選択可能です。AWS SSOはOrganizationsが有効な環境でのみ使用できるため、SAMLを使用することになります。公式ドキュメントには、Azure ADやCyberArk、Okta、OneLogin、Ping Identityが挙げられていますが、SAML IdPに対応しているほかのサービスを使用することもできます。今回はAuth0をSAML IdPとして使用し、Grafanaへのログインに使用できるよう設定してみました。

SAML IdPにAzure ADを使用する方法は、以下の記事をご覧ください。

非Orgnizations環境のAWSアカウントからSAML認証を使ってAmazon Managed Grafanaをセットアップしてみる

Amazon Managed Grafanaワークスペースの作成

Amazon Managed GrafanaのWebコンソールから「ワークスペースを作成」をクリックし、新しいワークスペースを作成します。認証アクセスにはSecurity Assertion Markup Language(SAML)を選択します。

お好みのデータソースなどを選択し、ワークスペースの作成が完了したら、ワークスペースの設定を開き、SAMLの「セットアップを完了にする」を開き、SAMLの設定内容を確認します。

上部に表示されている3つのURL、サービスプロバイダー識別子(エンティティID)、サービスプロバイダーのログインURL、サービスプロバイダーの応答URL(Assertion Consumer Service URL)をAuth0の設定に使用しますので、この画面を開いたままにしておきます。

Auth0の設定

新しいテナントを作成したら、ApplicationsからCreate Applicationをクリックし、新しいアプリケーションを追加します。

application typeはRegular Web Applicationsを選択します。

AddonsからSAML2 WEB APPをクリックすると、以下の画面が開きますので、Identity Provider Metadataをダウンロードしてください。 上部のSettingsをクリックすると、詳細設定画面になります。

Application Callback URLには、Grafanaのサービスプロバイダーの応答URL(Assertion Consumer Service URL)を入力します。

Settingsには、以下の内容を入力します。

{
    "audience": "<サービスプロバイダー識別子(エンティティID>",
    "destination": "<サービスプロバイダーの応答URL(Assertion Consumer Service URL)>",
    "mappings": {
        "email": "email",
        "nickname": "nickname"
    },
    "createUpnClaim": false,
    "passthroughClaimsWithNoMapping": false,
    "mapUnknownClaimsAsIs": false
}

Saveをクリックして設定を完了してください。その他、ユーザーやログインソースの設定を済ませてください。

Amazon Managed Grafanaの設定

Grafanaの設定画面に戻って、ステップ2から、先ほどAuth0ダウンロードしたIdentity Provider MetadataのXMLファイルをアップロードします。

ステップ3では、以下のように値を入力してください。追加設定-オプションも開いて入力してください。

  • アサーション属性ロール:email
  • 管理者ロールの値:管理者として扱いたいユーザーのメールアドレス
  • アサーション属性名:nickname
  • アサーション属性のログイン:email
  • アサーション属性Eメール:email
  • ログインの有効期間(分単位):1以上の値

SAML設定を保存をクリックしたら、設定完了です。

GrafanaワークスペースURLを開き、ログインをクリックするとAuth0のログイン画面が表示されます。

おわりに

Amazon Managed GrafanaのログインにAuth0を使用する方法をご紹介しました。Auth0はフリープランもあるので手軽に使用することができます。

今回はSitewiseについてはご紹介できませんでしたが、次回以降ご紹介していきたいと思います。