問題の説明: <\/STRONG><\/U><\/P>これは多くの開発者が考えたことがある非常に一般的なシナリオです。私たちは ArcGIS Enterprise 内の限られたユーザーのみがアクセスできるセキュアな GIS Web サービスを持っています。今、このサービスを ArcGIS JavaScript SDK 上に構築されたアプリケーションで使用したいと考えています。JavaScript SDK でこの GIS Web サービスを直接使用すると、アプリケーションが初期化されるたびにログインポップアップがユーザーに表示されることがよくあります。ここでの課題は、このアプリがより広いユーザー層向けでログインなしで使われることを意図している一方で、GIS サービスには機密情報が含まれているため公開できないという点です。<\/P>ArcGIS Enterprise からのログインプロンプトなしでセキュアな GIS サービスをパブリック向けアプリケーションで使用でき、かつサービスアクセスも制限してより高いセキュリティとデータ整合性を提供するソリューションが必要です。<\/STRONG><\/P>アプローチ:<\/STRONG><\/U><\/P>少し調査した結果、この単純な問題に対する実用的な解決策を見つけました。それはカスタム Web アプリケーション内で PROXY PAGE を使用することです。<\/P>ArcGIS JavaScript SDK 自体は、ヘルパークラスを通じて Web アプリケーション内でサーバーサイドプロキシを設定する機能を提供しています。良い点は、プロキシページの機能は SDK を使って作成された Esri カスタムアプリだけでなく、ArcGIS Web App Builder や ArcGIS Experience Builder のような様々な Esri Web App Builder プラットフォームでも活用できることです。<\/P>ArcGIS Proxy はクライアントのブラウザと Web サーバー間の仲介者(Postman)として機能します。つまり、セキュアなサービスへのリクエストはこの仲介者、すなわち Esri proxy を経由し、proxy ファイル内に埋め込まれたトークンや資格情報を使ってユーザーに代わりサービスを認証します。これにより、パブリック向け Web アプリはユーザーに資格情報の入力を求めることなくセキュアなサービスへアクセスできます。さらに、proxy はホワイトリスト化されたドメインのみがアクセス可能になるよう設定できるため、匿名アクセスを防ぎデータ整合性を確保できます。 <\/P>必ず proxy.config ファイルにセキュアな GIS Web サービスの URL と、Web サーバーがユーザーに代わってサービス認証に使用する資格情報またはトークンを配置してください。最良なのは、proxy が IIS、Apache、Tomcat など様々な Web サーバー環境で設定可能なことです。そのため、プログラミング言語に関係なく ArcGIS JavaScript SDK を使って Esri proxy の利点を最大限活用できます。.NET、JAVA、PHP、React などどんな環境でも Esri proxy を利用し、そのメリットを享受できます。<\/P>詳細理解のため以下のリンクとサンプルコードをご覧ください:<\/P>ドキュメント<\/U><\/STRONG>: <\/SPAN>https:\/\/developers.arcgis.com\/javascript\/3\/jshelp\/ags_proxy.html<\/A><\/P>Proxy ダウンロードリンク:<\/U><\/STRONG> <\/SPAN>https:\/\/github.com\/Esri\/resource-proxy\/releases<\/A><\/P>サンプルコード:<\/U><\/STRONG> <\/SPAN>添付済み<\/P>
Proxy ダウンロードリンク:<\/U><\/STRONG> <\/SPAN>
サンプルコード:<\/U><\/STRONG> <\/SPAN>添付済み<\/P>
I wouldn't suggest using the ags proxy. It's been deprecated and hasn't been maintained in a long time.
You likely want to set up app authentication
https://developers.arcgis.com/documentation/security-and-authentication/app-authentication/
or use an API key which is less secure:
https://developers.arcgis.com/documentation/security-and-authentication/api-key-authentication/
More general information on authentication patterns can be found here:
https://developers.arcgis.com/documentation/security-and-authentication/introduction/
You're going to want to use ArcGis Rest api to request a token from the portal. Ideally you want your backend to do this and send the token to the frontend where you will use identity manager to register the token before building the webmap and view.
https://developers.arcgis.com/rest/users-groups-and-items/generate-token/
https://developers.arcgis.com/javascript/latest/api-reference/esri-identity-IdentityManager.html
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.