JavaScript 認証ヘルパー - Amazon Location Service

JavaScript 認証ヘルパー

Amazon Location JavaScript 認証ヘルパーを使用すると、JavaScript アプリケーションから Amazon Location API を呼び出す際の認証がより簡単になります。この認証ヘルパーは、認証方法として Amazon Cognito または API キーを使用する場合に特に役立ちます。GitHub から、オープンソースのライブラリを入手できます。https://github.com/aws-geospatial/amazon-location-utilities-auth-helper-js

注記

認証ヘルパーの Amazon Cognito サポートは、Amazon Cognito のフェデレーテッドアイデンティティ機能をサポートしていません。

インストール

ライブラリは、webpack のようなビルドシステムを使用している場合はローカルインストールで使用できます。また、HTML に <script> タグ付きのビルド済みの JavaScript バンドルを含めることでも使用できます。

  • NPM を使用して次のコマンドを実行し、ライブラリをインストールします。

    npm install @aws/amazon-location-utilities-auth-helper
  • HTML ファイルで以下のコマンドを使用してスクリプトをロードします。

    <script src="https://unpkg.com/@aws/amazon-location-utilities-auth-helper@1.x/dist/amazonLocationAuthHelper.js"></script>

[Import](インポート)

JavaScript アプリケーションで特定の関数を使用するには、その関数をインポートする必要があります。次のコードを使用して、withIdentityPoolId の関数をアプリケーションにインポートします。

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper';

認証関数

Amazon Location 認証ヘルパーには、AuthHelper オブジェクトを返す以下の関数が含まれています。

  • async withIdentityPoolId( identityPoolId: string): AuthHelper — この関数は、Amazon Cognito で動作するように初期化された AuthHelper オブジェクトを返す

  • async withAPIKey( API_KEY: string): AuthHelper — この関数は、API キーで動作するように初期化された AuthHelper オブジェクトを返します。

AuthHelper オブジェクトは、以下の関数を備えています。

  • AuthHelper.getMapAuthenticationOptions() — AuthHelper オブジェクトのこの関数は、MapLibre JS のマップオプションで使用できる transformRequest を備えたJavaScript オブジェクトを返します。アイデンティティプールで初期化された場合にのみ提供されます

  • AuthHelper.getLocationClientConfig() — AuthHelper オブジェクトのこの関数は、LocationClient を初期化できる credentials を備えた JavaScript オブジェクトを返します。

  • AuthHelper.getCredentials() — AuthHelper オブジェクトのこの関数は、Amazon Cognito からの内部認証情報を返します。アイデンティティプールで初期化された場合にのみ提供されます

例:認証ヘルパーを使用して Amazon Cognito で MapLibre マップオブジェクトを初期化する

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withIdentityPoolId("identity-pool-id"); // use Cognito pool id for credentials const map = new maplibregl.Map({ container: "map", // HTML element ID of map element center: [-123.1187, 49.2819], // initial map center point zoom: 16, // initial map zoom style: https://maps.geo.region.amazonaws.com/maps/v0/maps/mapName/style-descriptor', // Defines the appearance of the map ...authHelper.getMapAuthenticationOptions(), // Provides credential options required for requests to Amazon Location });

例: API キーを使用して、MapLibre マップオブジェクトを初期化する (この場合には、AuthHelper は必要ありません)

const map = new maplibregl.Map({ container: "map", // HTML element ID of map element center: [-123.1187, 49.2819], // initial map center point zoom: 16, // initial map zoom style: https://maps.geo.region.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor?key=api-key-id', });

例: Amazon Cognito と AuthHelper を使用して、AWS SDK for JS から Location クライアントを初期化する

この例では、AWS SDK for JavaScript v3 を使用します。

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withIdentityPoolId("identity-pool-id"); // use Cognito pool id for credentials //initialize the Location client: const client = new LocationClient({ region: "region", ...authHelper.getLocationClientConfig() // sets up the Location client to use the Cognito pool defined above }); //call a search function with the location client: const result = await client.send(new SearchPlaceIndexForPositionCommand({ IndexName: "place-index", // Place index resource to use Position: [-123.1187, 49.2819], // position to search near MaxResults: 10 // number of results to return });

例: API キーと AuthHelper を使用して、AWS SDK for JS から Location クライアントを初期化する

この例では、AWS SDK for JavaScript v3 を使用します。

import { withAPIKey } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withAPIKey("api-key-id"); // use API Key id for credentials //initialize the Location client: const client = new LocationClient({ region: "region", ...authHelper.getLocationClientConfig() // sets up the Location client to use the API Key defined above }); //call a search function with the location client: const result = await client.send(new SearchPlaceIndexForPositionCommand({ IndexName: "place-index", // Place index resource to use Position: [-123.1187, 49.2819], // position to search near MaxResults: 10 // number of results to return });