Microsoft Entra アプリケーション プロキシを使用して公開されたアプリのハードコーディングされたリンクをリダイレクトする
Microsoft Entra アプリケーション プロキシを使うと、リモートのユーザーまたは自分のデバイスを使っているユーザーがオンプレミスのアプリを使用できるようになります。 ただし、一部のアプリは、HTML に埋め込まれたローカル リンクと共に開発されました。 現時点では、アプリをリモートで使用しているときには、それらのリンクは正常に機能しません。 お互いをポイントするオンプレミス アプリケーションが複数ある場合、お客様のユーザーは、オフィスにいないときにそのリンクが機能し続けることを期待します。
お客様の企業ネットワークの内でも外でも、リンクを同じように機能させるのに最適な方法は、アプリの外部 URL をその内部 URL と一致するように構成することです。 外部 URL に、規定値のアプリケーション プロキシ ドメインではなく、お客様の企業ドメイン名が含まれるように構成するには、カスタム ドメインを使用します。
テナントでカスタム ドメインを使用できない場合、この機能を提供するオプションが他にもいくつかあります。 ほかのオプションはすべて、カスタム ドメインとの互換性も相互の互換性もあるため、カスタム ドメインやその他のソリューションを構成できます。
Note
JavaScript によって生成されたハードコーディングされている内部 URL では、リンク変換はサポートされません。
オプション 1: Microsoft Edge を使用する – このソリューションは、Microsoft Edge ブラウザーを使用してアプリケーションにアクセスすることをユーザーに推奨または要求することを計画している場合にのみ適用されます。 発行されたすべての URL が処理されます。
オプション 2: MyApps 拡張機能を使用する – このソリューションは、クライアント側のブラウザー拡張機能をインストールすることをユーザーに要求しますが、すべての公開されている URL を処理し、ほとんどの一般的なブラウザーと連携します。
オプション 3: リンク変換設定を使用する – このオプションは、ユーザーからは見えない管理者側の設定です。 ただし、HTML および CSS 内のみの URL が処理されます。
これら 3 つの機能は、ユーザーの居場所にかかわらず、リンクを機能させ続けます。 内部エンドポイントまたはポートを直接指すアプリがある場合は、公開されている外部アプリケーション プロキシ URL にこれらの内部 URL をマップできます。
注意
最後のオプションはテナント専用です。いかなる理由であっても、カスタム ドメインのアプリに同じ内部および外部 URL を含めることはできません。 この機能を有効にする前に、Microsoft Entra アプリケーション プロキシでカスタム ドメインが機能するかどうかをご確認ください。
または、リンク変換を構成したいアプリケーションが SharePoint の場合は、「SharePoint 2013 の代替アクセス マッピングを構成する」で、リンクをマッピングするための別の方法をご覧ください。
オプション 1: Microsoft Edge 統合
Microsoft Edge を使用して、アプリケーションとコンテンツの保護を強化することができます。 このソリューションを使用するには、Microsoft Edge を使用してアプリケーションにアクセスすることをユーザーに要求または推奨する必要があります。 アプリケーション プロキシで公開されているすべての内部 URL は Microsoft Edge によって認識され、対応する外部 URL にリダイレクトされます。 リダイレクトにより、ハードコーディングされた内部 URL が確実に機能します。 ユーザーがブラウザーにアクセスし、内部 URL を直接入力すると、ユーザーがリモートであっても機能します。
このオプションの構成方法などの詳細については、iOS と Android 用の Microsoft Edge と Microsoft Intune を使って Web アクセスを管理する方法に関するドキュメントをご覧ください。
オプション 2:MyApps ブラウザー拡張機能
MyApps ブラウザー拡張機能を使用すると、アプリケーション プロキシで公開されているすべての内部 URL は拡張機能によって認識され、対応する外部 URL にリダイレクトされます。 リダイレクトにより、ハードコーディングされたすべての内部 URL が確実に機能します。 ユーザーがブラウザーのアドレス バーにアクセスし、内部 URL を直接入力すると、ユーザーがリモートであっても機能します。
この機能を使用するには、ユーザーが拡張機能をダウンロードしてログインしている必要があります。 管理者またはユーザーに必要なその他の構成はありません。
このオプションの構成方法を含めた詳細については、MyApps Browser 拡張機能のドキュメントをご覧ください。
Note
MyApps ブラウザー拡張機能では、ワイルドカード URL のリンク変換はサポートされていません。
オプション 3:リンク変換設定
アプリケーション プロキシ サービスは、公開されている内部リンクを HTML と CSS を介して検索し、リンク変換が有効になっている場合はそれらを変換します。 リンク変換により、中断されない環境が提供されます。 より高パフォーマンスな環境を提供するため、MyApps Browser 拡張機能の使用はリンク変換設定よりも優先されます。
Note
オプション 2 または 3 を使用している場合は、一度に 1 つのみを有効にするようにします。
リンク変換の仕組み
認証後に、プロキシ サーバーがユーザーにアプリケーション データを渡すと、アプリケーション プロキシによってアプリケーションでハードコーディングされたリンクがスキャンされて、それぞれが公開されている外部 URL に置き換えられます。
アプリケーション プロキシでは、アプリケーションが UTF-8 でエンコードされていると想定されています。 そうなっていない場合は、HTTP 応答ヘッダーでエンコードの種類を Content-Type:text/html;charset=utf-8
のように指定してください。
影響を受けるリンク
リンク変換機能は、アプリの本文のコード タグ内にあるリンクだけを検索します。 アプリケーション プロキシには、ヘッダー内の Cookie や URL を変換するための別の機能があります。
オンプレミスのアプリケーションの内部リンクには 2 つの一般的な種類があります。
/claims/claims.html
のようなローカル ファイル構造の共有リソースをポイントする相対内部リンク。 これらのリンクは、アプリケーション プロキシ経由で公開されるアプリで自動的に動作し、リンク変換の有無にかかわらず機能し続けます。http://expenses
のような他のオンプレミスのアプリまたはhttp://expenses/logo.jpg
のような公開されたファイルへのハードコードされた内部リンク。 リンク変換機能は、ハードコードされた内部リンクで機能し、リモート ユーザーが経由する必要がある外部 URL をポイントするように変更します。
アプリケーション プロキシがリンク変換をサポートする HTML コード タグの属性の完全な一覧には、以下のものが含まれます。
a (href)
audio (src)
base (href)
button (formaction)
div (data-background, style, data-src)
embed (src)
form (action)
frame (src)
head (profile)
html (manifest)
iframe (longdesc, src)
img (longdesc, src)
input (formaction, src, value)
link (href)
menuitem (icon)
meta (content)
object (archive, data, codebase)
script (src)
source (src)
track (src)
video (src, poster)
さらに、CSS 内では URL 属性も変換されます。
アプリが相互にリンクする方法
リンク変換は、アプリケーションごとに有効化されるため、アプリ レベルでユーザー エクスペリエンスを制御できます。 変換するアプリ "への" リンクではなく、そのアプリ "から" のリンクが必要な場合に、アプリのリンク変換をオンにします。
たとえば、すべてが相互にリンクする、アプリケーション プロキシ経由で公開された 3 つのアプリケーション (福利厚生、経費、出張) があるとします。 アプリケーション プロキシ経由で公開されていないフィードバックという 4 番目のアプリがあります。
福利厚生アプリのリンク変換を有効にすると、経費と出張へのリンクがそれらのアプリの外部 URL にリダイレクトされます。 ただし、外部 URL がないため、フィードバックへのリンクはリダイレクトされません。 経費と出張のアプリに対してはリンク変換が有効になっていないため、この 2 つのアプリから福利厚生へのリンクは機能しません。
変換されないリンク
パフォーマンスとセキュリティを向上させるために、一部のリンクは変換されません。
- コード タグ内にないリンク。
- HTML や CSS の中にないリンク。
- URL エンコード形式のリンク。
- 他のプログラムから開かれた内部リンク。 メールまたはインスタント メッセージで送信されたか、他のドキュメントに含まれているリンクは変換されません。 ユーザーは、外部 URL に移動するために知っておく必要があります。
この 2 つのシナリオのいずれかをサポートする必要がある場合は、リンク変換ではなく同じ内部および外部 URL を使用します。
リンク変換の有効化
リンク変換の使用開始は、ボタンをクリックするのと同じくらい簡単です。
アプリケーション管理者以上の権限で Microsoft Entra 管理センターにサインインします。
[ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。
管理するアプリを選択します。
[Translate URLs in application body](アプリケーション本文の URL を変換する) を [はい] にします。
[保存] を選択して変更を保存します。
これで、ユーザーがこのアプリケーションにアクセスすると、テナントのアプリケーション プロキシ経由で公開されている内部 URL がプロキシによってスキャンされます。