本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS 服务 从中访问ASP. NET 使用 Amazon Cognito 身份池的核心应用程序
由 Bibhuti Sahu (AWS) 和 Marcelo Barbosa () 创作 AWS
摘要
此模式讨论如何配置 Amazon Cognito 用户池和身份池,然后启用。ASP NET成功进行身份验证后 AWS 用于访问资源的核心应用程序。
Amazon Cognito 可为您的网络和移动应用程序提供身份验证、授权和用户管理。Amazon Cognito 的两个主要组件是用户池和身份池。
用户池是 Amazon Cognito 中的用户目录。利用用户池,您的用户可以通过 Amazon Cognito 登录您的 Web 或移动应用程序。您的用户还可以通过社交身份提供商(例如谷歌、Facebook、亚马逊或苹果)以及SAML身份提供商登录。
借助 Amazon Cognito 身份池(联合身份),您能够为用户创建唯一的身份,并通过身份提供商对其进行联合身份验证。使用身份池,您可以获得临时的、权限有限的 AWS 凭证来访问其他人。 AWS 服务在开始使用新的 Amazon Cognito 身份池之前,必须分配一个或多个 AWS Identity and Access Management (IAM) 角色来确定您希望应用程序用户对您的资源的访问级别。 AWS 身份池定义了两种类型的身份:经过身份验证的身份和未经身份验证的身份。可以在中为每种身份类型分配自己的角色IAM。经过身份验证的身份属于由公共登录提供商(Amazon Cognito 用户池、Facebook SAML、Google 或任何 OpenID Connect 提供商)或开发者提供商(您自己的后端身份验证流程)进行身份验证的用户,而未经身份验证的身份通常属于访客用户。当 Amazon Cognito 收到用户请求时,服务会确定该请求是通过身份验证的还是未经身份验证的,确定与该身份验证类型相关联的角色,然后使用附加到该角色的策略来响应请求。
先决条件和限制
先决条件
AWS 账户 使用 Amazon Cognito 和权限 IAM
访问您要使用的 AWS 资源
ASP。 NET酷睿 2.0.0 或更高版本
架构
技术堆栈
Amazon Cognito
ASP核心。NET
目标架构
工具
工具SDKs、和 AWS 服务
Visual Studio 或 Visual Studio 代码
亚马逊。 AspNetCore.Identity.Cognito
(1.0.4) — 软件包 NuGet AWSSDK.S3 (3.3.110
.32) — 软件包 NuGet
代码
附加的 .zip 文件包含说明以下内容的示例文件:
如何检索已登录用户的访问令牌
如何使用访问令牌兑换 AWS 证书
如何使用凭证访问亚马逊简单存储服务 (Amazon S3) Service 服务 AWS
IAM经过身份验证的身份的角色
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*", "cognito-identity:*", "s3:ListAllMyBuckets*" ], "Resource": [ "*" ] } ] }
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建用户池。 |
| 开发人员 |
添加应用程序客户端。 | 您可以创建一个应用程序,使用内置网页进行用户注册和登录。
| 开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建 身份池。 |
| 开发人员 |
为身份池分配IAM角色。 | 您可以编辑经过身份验证和未经身份验证的用户的IAM角色,也可以保留默认值,然后选择 Allo w。对于这种模式,我们将编辑经过身份验证的IAM角色并提供访问权限 | 开发人员 |
复制身份池 ID。 | 当您在上一步中选择允许时,将显示Amazon Cognito 入门页面。在此页面上,您可以从 “获取AWS凭据” 部分复制身份池 ID,也可以选择右上角的编辑身份池,然后从显示的屏幕中复制身份池 ID。 | 开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
克隆示例ASP。 NET核心 Web 应用程序。 |
| 开发人员 |
添加依赖项。 | 将的 NuGet 依赖项 | 开发人员 |
将配置键和值添加到 | 将附加的 | 开发人员 |
创建新用户并登录。 | 在 Amazon Cognito 用户池中创建一个新用户,并验证该用户是否存在于用户池中的用户和组下。 | 开发人员 |
创建一个名 | 添加一个新的ASP。 NETCore Razor Page 到您的示例应用程序, | 开发人员 |
故障排除
事务 | 解决方案 |
---|---|
打开 GitHub 存储库中的示例应用程序后,尝试将该 NuGet 包添加到 Samples 项目时会出现错误。 | 在 |
相关资源
附件
要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip