

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 选择身份验证方法
<a name="auth-choose-method"></a>

Amazon Location Service 支持三种身份验证方法。使用以下指南为您的应用程序选择正确的方法。

## 方法比较
<a name="auth-choose-summary"></a>


**身份验证方法比较**  

| 标准 | API 密钥 | Amazon Cognito | IAM | 
| --- | --- | --- | --- | 
| 支持的 API | 地图、地点、路线 | 所有 API | 所有 API | 
| 需要用户认证 | 否 | 可选 | 是 | 
| 相对表现 | 更快（往返次数更少，缓存切片） | 速度较慢（需要兑换代币） | 标准（Sigv4 签名） | 
| 可以与其他方法结合使用 | 否 | 是 | 是 | 
| 适用于 | 需要地图、地点或路线的公共 web/mobile 应用程序 | 需要匿名访问所有 API 或自定义身份验证流程的应用程序 | Server-side 应用程序、内部工具、管理操作 | 

## 何时使用 API 密钥
<a name="auth-choose-when-apikeys"></a>

在以下情况下使用 API 密钥：
+ 您的应用程序只需要地图、地点或路线 API。
+ 你想要最简单的集成，往返次数最少。
+ 您无需对个人用户进行身份验证。

API 密钥通常比 Amazon Cognito 更快，因为更简单的身份验证意味着在再次获得相同的地图图块时前往服务的往返次数和缓存的请求更少。

## 何时使用亚马逊 Cognito
<a name="auth-choose-when-cognito"></a>

在以下情况下使用 Amazon Cognito：
+ 您的应用程序需要访问地理围栏、跟踪器或其他 API 密钥不提供的 API。
+ 您想合并多个身份验证提供商（社交登录、SAML 或您自己的身份系统）。
+ 您需要在同一个应用程序中同时支持经过身份验证和未经身份验证的用户。
+ 您想使用 IAM 策略条件进行 IP-based 限制。

有关在 Amazon Cognito 中使用联合身份的更多信息，请参阅 Amazon Cognito 开发者指南中的[联合身份入门](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html)。

## 何时使用 IAM
<a name="auth-choose-when-iam"></a>

在以下情况下使用 IAM：
+ 您的应用程序在 AWS 计算服务（亚马逊 EC2、Lambda、亚马逊 ECS）上运行。
+ 您需要通过资源级策略和条件完全控制权限。
+ 您正在构建服务器端或后端服务。
+ 您需要使用审计跟踪 AWS CloudTrail。