本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS 服務 從 存取 ASP。NET 使用 Amazon Cognito 身分集區的核心應用程式
由 Bibhuti Sahu (AWS) 和 Marcelo Barbosa (AWS) 建立
環境:PoC 或試行 | 技術:安全、身分、合規;Web 和行動應用程式 | AWS 服務:Amazon Cognito |
Summary
此模式討論如何設定 Amazon Cognito 使用者集區和身分集區,然後啟用 ASP。NET 核心應用程式可在成功身分驗證後存取 AWS 資源。
Amazon Cognito 為您的 Web 和行動應用程式提供身分驗證、授權和使用者管理。Amazon Cognito 的兩個主要元件是使用者集區和身分集區。
使用者集區是在 Amazon Cognito 中的使用者目錄。利用使用者集區,您的使用者可以透過 Amazon Cognito 登入您的 Web 或行動應用程式。您的使用者也可以透過 Google、Facebook、Amazon 或 Apple 等社交身分提供者,以及身分SAML提供者登入。
Amazon Cognito 身分集區 (聯合身分) 可讓您為使用者建立唯一身分,並將其與身分提供者聯合。使用身分集區,您可以取得暫時的有限權限 AWS 憑證來存取其他 AWS 服務。在您開始使用新的 Amazon Cognito 身分集區之前,您必須指派一或多個 AWS Identity and Access Management (IAM) 角色,以決定您希望應用程式使用者對 AWS 資源的存取層級。身分集區定義兩種類型的身分:已驗證和未驗證。每個身分類型都可以在 中指派自己的角色IAM。已驗證身分屬於由公有登入提供者 (Amazon Cognito 使用者集區、Facebook、GoogleSAML、 或任何 OpenID Connect 提供者) 或開發人員提供者 (您自己的後端身分驗證程序) 驗證的使用者,而未驗證身分通常屬於訪客使用者。當 Amazon Cognito 收到使用者請求時,服務會判斷請求是否經過身分驗證或未驗證、判斷哪個角色與該身分驗證類型相關聯,然後使用附加至該角色的政策來回應請求。
先決條件和限制
先決條件
AWS 帳戶 具有 Amazon Cognito 和 IAM 許可的
存取您要使用 AWS 的資源
ASP。NET Core 2.0.0 或更新版本
架構
技術堆疊
Amazon Cognito
ASP。NET 核心
目標架構
工具
工具SDKs、 和 AWS 服務
Visual Studio 或 Visual Studio 程式碼
Amazon.AspNetCore.Identity.Cognito (1.0.4)
– NuGet 套件 AWSSDK.S3 (3.3.110.32)
– NuGet 套件
Code
附加的 .zip 檔案包含範例檔案,說明以下內容:
如何擷取已登入使用者的存取權杖
如何將存取權杖交換為 AWS 憑證
如何使用 AWS 憑證存取 Amazon Simple Storage Service (Amazon S3) 服務
IAM 已驗證身分的角色
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*", "cognito-identity:*", "s3:ListAllMyBuckets*" ], "Resource": [ "*" ] } ] }
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
建立使用者集區。 |
| 開發人員 |
新增應用程式用戶端。 | 您可以建立應用程式,以使用內建網頁來註冊和登入您的使用者。
| 開發人員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 身分集區。 |
| 開發人員 |
指派身分集區IAM的角色。 | 您可以編輯已驗證和未驗證使用者IAM的角色,或保留預設值,然後選擇允許 。對於此模式,我們將編輯已驗證IAM的角色,並為 提供存取權 | 開發人員 |
複製身分集區 ID。 | 當您在上一個步驟中選擇允許時,會顯示開始使用 Amazon Cognito 頁面。在此頁面上,您可以從取得AWS憑證區段複製身分集區 ID,或選擇右上角的編輯身分集區,然後從顯示的畫面中複製身分集區 ID。 | 開發人員 |
任務 | 描述 | 所需的技能 |
---|---|---|
複製範例 ASP。NET 核心 Web 應用程式。 |
| 開發人員 |
新增相依性。 | 將 的 NuGet 相依性 | 開發人員 |
將組態金鑰和值新增至 | 將來自附加 | 開發人員 |
建立新的使用者並登入。 | 在 Amazon Cognito 使用者集區中建立新的使用者,並確認使用者存在於使用者集區中的使用者和群組下。 | 開發人員 |
建立新的 Razor 頁面,名為 | 新增 ASP。NET Core Razor 頁面至您的範例應用程式,並取代所連接範例 | 開發人員 |
故障診斷
問題 | 解決方案 |
---|---|
從 GitHub 儲存庫開啟範例應用程式後,當您嘗試將 NuGet 套件新增至範例專案時,會收到錯誤。 | 在 |
相關資源
附件
若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip