Amazon Cognito を使用して認証する
Amazon Cognito 認証は、フロントエンド SDK リクエストで AWS Identity and Access Management (IAM) ユーザーを直接使用する代わりに使用できます。
Amazon Cognito は、ウェブおよびモバイルアプリの認証、認可、およびユーザー管理機能を提供します。Amazon Cognito の認証されていない アイデンティティプールを Amazon Location と組み合わせて使用すると、スコープが限定された一時的なAWS 認証情報をアプリケーションから取得できます。
詳細については、「Amazon Cognito デベロッパーガイド」の「ユーザープールの使用を開始する」を参照してください。
以下の場合は、この認証形式を使用します。
-
認証されていないユーザー — 匿名ユーザーがいるウェブサイトがある場合は、Amazon Cognito アイデンティティプールを使用できます。
詳細については、「Amazon Cognito を使用して認証する」セクションを参照してください。
-
独自の認証 — 独自の認証プロセスを使用する場合や、複数の認証方法を組み合わせたい場合は、Amazon Cognito フェデレーテッド ID を使用できます。
詳細については、「Amazon Cognito デベロッパーガイド」の「フェデレーテッドアイデンティティの使用開始」を参照してください。
Amazon Cognito と Amazon Location Service を使用する
以下のアクションで、認証されていない ID ロールに関連付けられた AWS Identity and Access Management (IAM) ポリシーを使用できます。
Amazon Cognito アイデンティティプールを作成する
Amazon Cognito アイデンティティプールを作成して、認証されていないゲストが、Amazon Cognito コンソール、AWS CLI、またはAmazon Cognito API 経由でアプリケーションにアクセスできるようにすることができます。
重要
作成するプールは、使用している Amazon Location Service リソースと同じ AWS アカウント および AWS リージョンにある必要があります。
ウェブで Amazon Cognito のアイデンティティプールを使用する
次の例では、作成した認証されていないアイデンティティプールを認証情報と交換し、その認証情報を使用して CalculateIsolines を呼び出します。この作業を簡素化するために、この例では Amazon Location の「認証ヘルパーの使用方法」の手順を使用します。これは認証情報の取得と更新の両方の代わりになります。
この例では AWS の SDK for JavaScript v3 を使用します。
import { GeoRoutesClient, CalculateIsolinesCommand , } from "@aws-sdk/client-geo-routes"; // ES Modules import import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper"; const identityPoolId = "<identity pool ID>"; // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef const authHelper = await withIdentityPoolId(identityPoolId); const client = new GeoRoutesClient({ ...authHelper.getClientConfig(), region: "<region>", // The region containing the identity pool }); const input = { DepartNow: true, TravelMode: "Car", Origin: [-123.12327, 49.27531], Thresholds: { Time: [5, 10, 30], }, }; const command = new CalculateIsolinesCommand(input); const response = await client.send(command); console.log(JSON.stringify(response, null, 2))