这是关于“身份即服务”系列的另一篇文章。本文将介绍如何配置 ASP.NET Core 使用 AWS Cognito 作为身份提供程序,其概念与使用其他提供程序(如 Okta)类似,但配置上存在一些细微差别。
Web App:在 Visual Studio 2017 中创建 ASP.NET Core 网络应用,默认创建的应用即可,配置 ASP.NET Core 2.0 的身份验证在startup.cs
文件中进行更改。
Amazon Web Services — New Account:使用 AWS Cognito 需有 AWS 账户,其服务包含在免费套餐中,可管理最多 50,000 每月活跃用户,创建账户需前往AWS 注册,完成初始细节后需填写更多数据,包括信用卡细节和电话自动验证。
AWS Cognito User Pool:通过在“安全、身份与合规”部分的“所有服务”菜单中查找或搜索可访问 AWS Cognito,创建用户池从 AWS Cognito 主页选择“管理用户池”,创建时需指定池名称,默认配置有用时可选择“审核默认值”创建,然后从“常规设置>应用客户端”选项配置应用访问,选择“添加应用客户端”并指定名称,再从“应用集成>应用客户端”设置配置应用与 AWS Cognito 的身份协商,包括选择身份提供程序、指定回调 URL 等,最后配置 OAuth 2.0。配置信息可在“常规设置>应用客户端”选项中查看,包括应用客户端 ID、客户端密钥和池 ID 等。
Startup.cs 更改:在using
部分添加相关命名空间,在ConfigureServices
方法中进行大部分更改,使用appsettings.json
配置 OIDC 连接属性以增加灵活性,对于 Razor Pages 用AuthorizePage
方法指定受保护资源,在AddAuthentication
和AddOpenIdConnect
部分配置身份验证和 OIDC 连接参数,与使用 Okta 的示例相比,AWS Cognito 使用不同的 OIDC 选项值,最后在Configure
方法中使用配置的身份验证模型。运行应用时会自动跳转到 AWS Cognito 的登录页面,可在此创建新用户,注册完成后 AWS Cognito 会发送验证邮件,确认账户后返回已识别的应用。
最后,提供了appsettings.json
的配置示例,所有观点仅代表作者本人,不代表任何关联实体的意见。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。