アプリケーション プロキシと PingAccess を使用したシングル サインオン用のヘッダーベースの認証

Microsoft Entra アプリケーション プロキシは、Microsoft Entra の顧客が複数のアプリケーションにアクセスできるように、PingAccess と連携しました。 PingAccess では、統合されたヘッダーベースのシングル サインオンを超える別のオプションが提供されます。

Microsoft Entra ID 向け PingAccess とは

PingAccess for Microsoft Entra ID を使用すると、認証にヘッダーを使用するアプリケーションへのアクセス権およびシングル サイン オン (SSO) をユーザーに与えることができます。 アプリケーション プロキシはこれらのアプリを他のアプリと同様に扱い、Microsoft Entra ID を使ってアクセスを認証した後、コネクタ サービスを通してトラフィックを渡します。 PingAccess は、アプリケーションの前に位置し、アクセス トークンを Microsoft Entra ID からヘッダーに変換します。 その後、アプリケーションは、読み取り可能な形式で認証を受信します。

ユーザーは、会社のアプリケーションを使用するためにサインインするときに、何かが違うとは一切気付きません。 ユーザーはいつもどおり、任意のデバイスでどこからでも作業を行うことができます。 アプリケーション プロキシ コネクタは、その認証の種類に関係なくすべてのアプリにリモート トラフィックを誘導します。そのため負荷分散も引き続き自動的に行われます。

利用方法

このシナリオは Microsoft Entra ID と PingAccess の連携によって実現されるため、その両方のサービスのライセンスが必要となります。 ただし、Microsoft Entra ID P1 または P2 サブスクリプションには、最大 20 のアプリケーションをカバーする基本的な PingAccess ライセンスが含まれています。 20 を超えるヘッダー ベースのアプリケーションを公開する必要がある場合は、PingAccess から追加のライセンスを購入できます。

詳しくは、Microsoft Entra のエディションをご参照ください。

アプリケーションを Azure に発行する

この記事は、このシナリオで初めてアプリケーションを公開する方を対象としています。 発行手順の詳細を示すだけでなく、アプリケーション プロキシと PingAccess の両方を開始できるように説明します。 両方のサービスは構成済みであり、公開手順の再確認が目的の場合は、「アプリケーション プロキシを使って Microsoft Entra ID にアプリを登録する」のセクションに進むことができます。

Note

このシナリオは Microsoft Entra ID と PingAccess を連携させることが前提となるため、一部の手順は Ping Identity のサイトでご覧ください。

アプリケーション プロキシ コネクタのインストール

既にアプリケーション プロキシを有効にし、コネクタをインストールしている場合は、このセクションをスキップして「アプリケーション プロキシを使って Microsoft Entra ID にアプリを登録する」に進むことができます。

アプリケーション プロキシ コネクタは、遠隔にいる従業員からのトラフィックを発行済みアプリケーションに誘導する Windows Server サービスです。 インストール手順の詳細については、「チュートリアル: Microsoft Entra ID のアプリケーション プロキシを使用してリモート アクセスするためのオンプレミス アプリケーションを追加する」を参照してください。

  1. 少なくとも アプリケーション管理者 の権限で Microsoft Entra 管理センター にサインインします。
  2. ID>アプリケーション>エンタープライズ アプリケーション>アプリケーション プロキシ を参照します。
  3. [コネクタ サービスのダウンロード] を選択します。 [アプリケーション プロキシ コネクタのダウンロード] ページが表示されます。
  4. インストール手順に従います。

通常、コネクタをダウンロードすれば、ディレクトリに対してアプリケーション プロキシが自動的に有効になります。有効にならなかった場合は、 [アプリケーション プロキシの有効化] を選択してください。

アプリケーション プロキシを使用する Microsoft Entra ID にアプリケーションを追加する

Microsoft Entra 管理センターでは、2 つのアクションを実行する必要があります。 最初に、アプリケーション プロキシを使用してアプリケーションを発行する必要があります。 次に、アプリケーションに関する情報をいくつか収集する必要があります。その情報が PingAccess の手順で必要になります。

アプリケーションの発行

最初にアプリケーションを発行する必要があります。 このアクションには、次が含まれます。

  • Microsoft Entra ID へのオンプレミス アプリケーションの追加
  • アプリケーションをテストとヘッダー ベースの SSO を選択するためのユーザーの割り当て
  • アプリケーションのリダイレクト URL の設定
  • ユーザーおよび他のアプリケーションに対するオンプレミス アプリケーションを使用するためのアクセス許可の付与

独自のオンプレミス アプリケーションを発行するには、次の手順に従います。

  1. 直前のセクションの手順を省略した場合は、アプリケーション管理者として Microsoft Entra 管理センターにサインインしてください。

  2. [エンタープライズ アプリケーション]>[新しいアプリケーション]>[オンプレミスのアプリケーションの追加] を参照します。 [独自のオンプレミスのアプリケーションの追加] ページが表示されます。

    Add your own on-premises application

  3. 新しいアプリケーションに関する情報を必須フィールドに入力します。 設定には、下のガイダンスを使用します。

    Note

    この手順の詳細なチュートリアルは、「オンプレミス アプリを Microsoft Entra ID に追加する」を参照してください。

    1. [Internal URL] (内部 URL): 通常は、社内ネットワークにおけるアプリのサインイン ページへの URL を指定します。 このシナリオでは、コネクタは PingAccess プロキシをアプリケーションの最初のページとして処理する必要があります。 次の形式を使用します。https://<host name of your PingAccess server>:<port> ポートは既定では 3000 ですが、PingAccess で設定できます。

      警告

      この種類のシングル サインオンの場合、内部 URL は https を使用する必要があり、http を使用できません。 また、アプリケーションの構成時に 2 つのアプリが同じ内部 URL を持つことができないという制約がありますが、それによって、アプリ プロキシでアプリケーション間の区別を維持できるという理由です。

    2. 事前認証方法: Microsoft Entra ID を選択します。

    3. ヘッダーの URL を変換する: [いいえ] を選択します。

    注意

    これが最初のアプリケーションの場合は、ポート 3000 の使用から始めてください。PingAccess 構成を変更した場合は、この設定を更新してください。 後続のアプリケーションの場合、ポートは PingAccess で構成したリスナーと一致する必要があります。 詳細については、PingAccess のリスナーに関するページを参照してください。

  4. [追加] を選択します。 新しいアプリケーションの概要ページが表示されます。

次に、アプリケーション テストのユーザーを割り当て、ヘッダーベースのシングル サインオンを選択します。

  1. アプリケーションのサイドバーから、[ユーザーとグループ]>[ユーザーの追加]>[ユーザーとグループ] (選択された <数>) の順に選択します。 選択するためのユーザーとグループの一覧が表示されます。

    Shows the list of users and groups

  2. アプリケーション テストのユーザーを選択し、 [選択] を選択します。 このテスト アカウントでオンプレミスのアプリケーションにアクセスできることを確認します。

  3. [割り当て] を選択します。

  4. アプリケーションのサイドバーから、 [シングル サインオン]>[ヘッダーベース] を選択します。

    ヒント

    ヘッダー ベースのシングル サインオンを初めて使用する場合は、PingAccess をインストールする必要があります。 Azure サブスクリプションを PingAccess のインストールに自動的に関連付けるには、このシングル サインオン ページのリンクを使用して PingAccess をダウンロードします。 今すぐダウンロード サイトを開くことも、後でこのページに戻ることもできます。

    Shows header-based sign-on screen and PingAccess

  5. [保存] を選択します。

続いてリダイレクト URL が外部 URL に設定されてことを確認しています。

  1. ID>アプリケーション>アプリの登録 に移動し、アプリケーションを選択します。
  2. Web およびパブリック クライアントに対して設定されたリダイレクト URI の数を表示した、 [リダイレクト URI] の横にあるリンクを選択します。 [<アプリケーション名> - 認証] ページが表示されます。
  3. 以前にアプリケーションに割り当てた外部 URL が [リダイレクト URI] の一覧にあるかどうかを確認します。 ない場合は、Web のリダイレクト URI の種類を使用して外部 URL を追加し、 [保存] を選択します。

外部 URL に加えて、外部 URL 上の Microsoft Entra ID の承認エンドポイントを [リダイレクト URI] の一覧に追加する必要があります。

https://*.msappproxy.net/pa/oidc/cb https://*.msappproxy.net/

最後に、ユーザーに読み取りアクセス権を、他のアプリケーションに読み取り/書き込みアクセス権を与えるように、オンプレミス アプリケーションを設定します。

  1. アプリケーションの [アプリの登録] サイドバーから、 [API のアクセス許可]>[アクセス許可の追加]>[Microsoft API]>[Microsoft Graph] の順に選択します。 Microsoft Graph へのアクセス許可を含む、Microsoft Graph 向け [API アクセス許可の要求] ページが表示されます。

    Shows the Request API permissions page

  2. [委任されたアクセス許可]>[ユーザー]>[User.Read] の順に選択します。

  3. [アプリケーションのアクセス許可]>[アプリケーション]>[Application.ReadWrite.All] の順に選択します。

  4. [アクセス許可の追加] を選択します.

  5. [API のアクセス許可] ページで、[<ディレクトリ名> に管理者の同意を与えます] を選択します。

PingAccess の手順で使う情報の収集

PingAccess でアプリケーションを設定するには、次の 3 つの情報 (すべての GUID) を収集する必要があります。

Microsoft Entra ID フィールドの名前 PingAccess フィールドの名前 データ形式
アプリケーション (クライアント) ID クライアント ID GUID
ディレクトリ (テナント) ID 発行者 GUID
PingAccess key クライアント シークレット ランダムな文字列

この情報を収集します。

  1. ID>アプリケーション>アプリの登録 に移動し、アプリケーションを選択します。

    Registration overview for an application

  2. [アプリケーション (クライアント) ID] 値の横で [クリップボードにコピー] アイコンを選択し、それをコピーして保存します。 この値は、後から PingAccess のクライアント ID として指定します。

  3. [ディレクトリ (テナント) ID] 値の横で [クリップボードにコピー] も選択し、それをコピーして保存します。 この値は、後から PingAccess の発行者として指定します。

  4. アプリケーションの [アプリの登録] のサイドバーから、 [証明書とシークレット]>[新しいクライアント シークレット] の順に選択します。 [クライアント シークレットの追加] ページが表示されます。

    Shows the Add a client secret page

  5. [説明]PingAccess key を入力します。

  6. [有効期限] の下で、PingAccess キーを設定する方法を選択します: [1 年][2 年] 、または [無期限]

  7. [追加] を選択します。 クライアント シークレットのテーブルに PingAccess キーが、VALUE フィールドに自動入力されるランダム文字列で表示されます。

  8. PingAccess キーの VALUE フィールドの横で [クリップボードにコピー] アイコンを選択し、それをコピーして保存します。 この値は、後から PingAccess のクライアント シークレットとして指定します。

acceptMappedClaims フィールドを更新する:

  1. 少なくとも アプリケーション管理者 の権限で Microsoft Entra 管理センター にサインインします。
  2. 右上隅で自分のユーザー名を選択します。 アプリケーション プロキシを使用するディレクトリにサインインしていることを確認します。 ディレクトリを変更する必要がある場合は、 [ディレクトリの切り替え] を選択し、アプリケーション プロキシを使用するディレクトリを選択します。
  3. ID>アプリケーション>アプリの登録 に移動し、アプリケーションを選択します。
  4. アプリケーションの [アプリの登録] ページのサイドバーから、 [マニフェスト] を選択します。 アプリケーションの登録のマニフェスト JSON コードが表示されます。
  5. acceptMappedClaims フィールドを検索し、値を True に変更します。
  6. [保存] を選択します。

省略可能な要求の使用 (省略可能)

オプションの要求を使用すると、すべてのユーザーとテナントが持つ "標準だが既定では含まれない" 要求を追加できます。 アプリケーション マニフェストを変更して、アプリケーションの省略可能な要求を構成することができます。 詳細については、Microsoft Entra アプリケーション マニフェストの概要に関する記事を参照してください

PingAccess が消費する access_token に、メール アドレスを含める例:

    "optionalClaims": {
        "idToken": [],
        "accessToken": [
            {
                "name": "email",
                "source": null,
                "essential": false,
                "additionalProperties": []
            }
        ],
        "saml2Token": []
    },

要求のマッピング ポリシーの使用 (省略可能)

Microsoft Entra ID に存在しない属性に対する要求のマッピング ポリシー (プレビュー)。 要求マッピングでは、ADFS またはユーザー オブジェクトによってサポートされるカスタム要求を追加することにより、古いオンプレミス アプリをクラウドに移行できます

アプリケーションからカスタム要求を使用し、追加のフィールドを含めるには、カスタム要求のマップ ポリシーも作成し、そのポリシーをアプリケーションに割り当てる必要があります。

注意

カスタム要求を使用するには、カスタム ポリシーも定義し、アプリケーションに割り当てる必要があります。 このポリシーには、すべての必要なカスタム属性を含めます。

PowerShell または Microsoft Graph から、ポリシーの定義と割り当てを行うことができます。 PowerShell でこの処理を実行するには、必要に応じてまず New-AzureADPolicy を使用してから、Add-AzureADServicePrincipalPolicy でアプリケーションに割り当てます。 詳細については、「要求のマッピング ポリシーの割り当て」を参照してください。

例:

$pol = New-AzureADPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema": [{"Source":"user","ID":"employeeid","JwtClaimType":"employeeid"}]}}') -DisplayName "AdditionalClaims" -Type "ClaimsMappingPolicy"

Add-AzureADServicePrincipalPolicy -Id "<<The object Id of the Enterprise Application you published in the previous step, which requires this claim>>" -RefObjectId $pol.Id

PingAccess でカスタム要求を使用できるようにする

PingAccess でカスタム要求を使用できるようにすることは省略可能ですが、アプリケーションで追加の要求を使用すると予想される場合は必須です。

次の手順で PingAccess を構成すると、作成する Web セッション ([設定] -> [アクセス] -> [Web セッション]) では、[Request Profile](プロファイルの要求) を選択解除し、[Refresh User Attributes](ユーザー属性の更新)[いいえ] に設定する必要があります

PingAccess をダウンロードしてアプリケーションを構成する

これで、Microsoft Entra のすべてのセットアップ手順が完了したので、PingAccess の構成に進むことができます。

このシナリオの PingAccess に関連した領域の詳しい手順については、Ping Identity のドキュメントを参照してください。 Ping Identity の Web サイトの「Configuring PingAccess for Azure AD (PingAccess を Microsoft Entra ID 用に構成する)」にある指示に従い、PingAccess の最新バージョンをダウンロードしてください。

PingAccess の記事の手順では、PingAccess アカウントを取得する手順について説明します。 Microsoft Entra ID OpenID Connect (OIDC) 接続を作成するには、Microsoft Entra 管理センターからコピーしたディレクトリ (テナント) ID 値でトークン プロバイダーを設定します。 PingAccess で Web セッションを作成し、アプリケーション (クライアント) ID および PingAccess key の値を使用します。 ID マッピングを設定し、仮想ホスト、サイト、アプリケーションを作成します。

アプリケーションのテスト

以上の手順がすべて完了すれば、アプリケーションは正常に動作します。 正しく動作するか確認するために、ブラウザーを起動し、Azure にアプリケーションを発行したときに作成した外部 URL にアクセスしてみてください。 サインインには、アプリケーションに割り当てたテスト アカウントを使用します。

次のステップ