N8NのアカウントをEntraID経由で管理してみた

TECH記事

前提条件

EntraID や N8N の管理者権限が作業時必要になります

  • Entra ID のグローバル管理者権限、またはアプリケーション管理者権限
  • N8N のインスタンスオーナーまたは管理者権限
  • N8N の契約プランが Buisiness or Enterprise であること

設定

手順1: N8N 側で必要な情報を取得

  1. N8N に管理者権限でログイン
  2. Settings > SSO に移動
  3. 以下の情報をメモ:
    • ACS URL (Redirect URL): https://your-n8n-domain.com/rest/sso/saml/acs
    • Entity ID: https://your-n8n-domain.com/rest/sso/saml/metadata

手順2: EntraID でエンタープライズアプリケーションを作成

2-1. 新規アプリケーションの作成

  1. Entra ID にサインイン
  2. 左トグルから [Entra ID] > [Enterprise applications] > [New application] をクリック
  3. Create your own application をクリック
  4. 以下を入力して Create をクリック
    • Name: n8n (任意)
    • 選択: 「ギャラリーにない他のアプリケーションを統合する(Non-gallery)」
💡TIPS: Gallery と Non-Gallery のアプリの違いについて
  • Gallery アプリ(ギャラリーアプリ)
    • Microsoft が事前に用意した、人気アプリとの統合テンプレート
    • SSO 連携等に必要な Identifier(Entity ID)や 必要なクレームなどが設定済み
    • Gallery で統合するアプリの例: Slack, Zoom, Salesforce, etc…
  • Non-Gallery アプリ(非ギャラリーアプリ)
    • ギャラリーにないアプリや、カスタム設定が必要なアプリを手動で統合する方法
    • Non-Gallery で統合するアプリの例: 社内開発アプリ, オンプレミスアプリ, ニッチな SaaS ツール…

2-2. SAML シングルサインオンの設定

  1. 作成したアプリケーションを開く
  2. 左メニューから Single sign-on を選択
  3. SAML をクリックし、以下の項目を設定する

ex. 設定後の値

💡Tips: SAML の設定項目の意味について
  • 基本的な SAML 構成とは?
    • Identifier (Entity ID):
      • N8N を一意に識別するための ID
      • 「この SAML リクエストは、どのアプリケーションから来たのか?」を Entra ID が判断するために使用
      • 世界中で唯一無二の識別子である必要がある
    • Reply URL (Assertion Consumer Service URL):
      • 認証完了後に SAML Response(認証結果)を受け取る URL
      • Entra ID が「認証成功しました!」という情報を送る先
      • セキュリティ上、この URL だけが SAML Response を受け取れる
  • 属性とクレーム とは?
    • SAML では 認証先のアプリ と EntraID 間でログインに必要な情報を受け渡すが、各アプリで何の情報が必要なのか異なる.
    • 「認証のやり取りの中に何の情報をふくめるか?」を定義しているのクレーム
    • N8N ではクレーム情報をもとに:
      • ユーザーアカウントを作成/識別
      • ユーザー情報を表示
      • 権限を割り当て(アプリによる)

2-3. メタデータ情報の取得

SAML Certificates セクションから Metadata URL を取得:

  1. シングルサインオンの設定画面から [SAML証明書] のセクションに移動
  2. App Federation Metadata Url をコピー
    • 例: https://login.microsoftonline.com/[tenant-id]/federationmetadata/2007-06/federationmetadata.xml
💡Tips: SAML メタデータとは

Entra ID が N8N に渡す「私の情報と使い方」

  • メタデータに含まれる情報:
    • 誰か?(Entity ID / Issuer)
    • どこに認証リクエストを送るか?(SSO URL)
    • どこにログアウトリクエストを送るか?(Logout URL)
    • どうやって安全に通信するか?(証明書)
    • どんなフォーマットで通信するか?(設定)

ex. 実際のメタデータのサンプル

<?xml version="1.0" encoding="UTF-8"?>
<EntityDescriptor 
  xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
  entityID="https://sts.windows.net/12345678-abcd-1234-abcd-123456789abc/">
  
  <!-- 1️⃣ IDプロバイダー(Entra ID)の基本情報 -->
  <IDPSSODescriptor>
    
    <!-- 2️⃣ 証明書(公開鍵)- 重要! -->
    <KeyDescriptor use="signing">
      <X509Certificate>
        MIIDPjCCAiqgAwI...
      </X509Certificate>
    </KeyDescriptor>
    
    <!-- 3️⃣ ログインURL(認証リクエストの送信先) -->
    <SingleSignOnService 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
      Location="https://login.microsoftonline.com/12345678.../saml2"/>
    
    <!-- 4️⃣ ログアウトURL -->
    <SingleLogoutService 
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
      Location="https://login.microsoftonline.com/12345678.../saml2/logout"/>
    
  </IDPSSODescriptor>
</EntityDescriptor>

2-4. ユーザー・グループの割り当て

  1. 左メニューから Users and groups を選択
  2. 「ユーザーまたはグループの追加」をクリック
  3. N8N にアクセスさせるユーザーまたはグループを選択
  4. Assign をクリック

手順 3: N8N 側でメタデータを設定

  1. N8N に戻り、Settings > SSO を開く
  2. Identity Provider Settings フィールドに Metadata URL を貼り付け
  3. Activated トグルを押して SSO を有効化する
  4. Save をクリック
  5. Test Settings ボタンをクリックし SSO がうまくいったかを確認
    • うまくいくと [SAML Connection Test was Successful] のメッセージがでます
  6. あとはログイン画面で SSO で sign-in するボタンが表示されます

コメント

タイトルとURLをコピーしました