身份即服务(IDaaS) :AWS Cognito 和 ASP.NET Core

这是关于“身份即服务”系列的另一篇文章。本文将介绍如何配置 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方法指定受保护资源,在AddAuthenticationAddOpenIdConnect部分配置身份验证和 OIDC 连接参数,与使用 Okta 的示例相比,AWS Cognito 使用不同的 OIDC 选项值,最后在Configure方法中使用配置的身份验证模型。运行应用时会自动跳转到 AWS Cognito 的登录页面,可在此创建新用户,注册完成后 AWS Cognito 会发送验证邮件,确认账户后返回已识别的应用。

最后,提供了appsettings.json的配置示例,所有观点仅代表作者本人,不代表任何关联实体的意见。

阅读 1
0 条评论