8.2 GOOGLE(SAML应用)登录联携AWS用户池(Amazon Cognito)

2024-05-16 00:12

本文主要是介绍8.2 GOOGLE(SAML应用)登录联携AWS用户池(Amazon Cognito),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GOOGLE(SAML应用)登录联携AWS用户池(Amazon Cognito)

  • 目录
    • 一、参考资料
    • 二、创建和配置AWS用户池
      • 1. 创建用户池
      • 2. 在用户池中创建联合身份提供商
      • 3. 在用户池中创建应用程序集成
    • 三、创建和配置GOOGLE SAML应用
      • 1. 创建GOOGLE SAML应用
    • 四、登录测试

目录

业务流程:实现用AWS提供的谷歌登录UI,以谷歌用户身份登录后,谷歌用户信息自动存储到AWS用户池中,并且能获取AWS认证用的code或access_token,登陆成功后重定向进入自定义系统页面。

一、参考资料

AWS: 通过 SAML 为 Amazon Web Services 配置 SSO

GOOGLE: 设置自定义 SAML 应用程序

GOOGLE: 为用户配置文件创建自定义属性

GOOGLE: SAML 应用程序错误消息

Configure Google as Authentication Provider using the SAML2 Protocol

chatgpt.

二、创建和配置AWS用户池

1. 创建用户池

Amazon Cognito ユーザープール

在这里插入图片描述

其余步骤省略,下一步下一步即可。

2. 在用户池中创建联合身份提供商

在这里插入图片描述

在这里插入图片描述

说明:

  1. 身份提供商类型要选择:SAML
  2. 上传元数据文档来源:admin用户的谷歌程序控制台
    (这步在下面会介绍,先跳过,在GOOGLE SAML应用创建配置完后再上传即可)
  3. 属性映射配置:用谷歌SAML程序属性映射到AWS用户池属性,这里谷歌SAML属性中的NameID指代是谷歌邮箱格式,所以用NameID属性映射email,其余属性映射关系可参照具体业务追加。

下记图文解释

元数据文档来源:
在这里插入图片描述


元数据文档中体现的映射关系:在这里插入图片描述


<md:NameIDFormat> urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress </md:NameIDFormat>


这段标签 md:NameIDFormat 是 SAML (Security Assertion Markup Language) 中的一个元素,它用于定义 SAML 断言中的 NameID 的格式。以下是它的含义解释:

md:NameIDFormat:这是一个 SAML 元素,用于指定 SAML 断言中的 NameID 的格式。

urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress:这是一个 URI 标识符,表示 NameID 的格式是电子邮件地址(emailAddress)。

在 SAML 断言中,NameID 用于标识认证的主体(即用户)。该元素指定了在 SAML 断言中使用的 NameID 的格式,这里的 urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress 指示 NameID 将采用电子邮件地址的格式。

这个标签告诉 SAML 系统,在 SAML 断言中,NameID 将作为电子邮件地址提供给相关系统,以标识用户。例如,当一个用户通过 SAML 单点登录到一个服务时,服务将从 SAML 断言中提取 NameID,并将其视为用户的电子邮件地址。

3. 在用户池中创建应用程序集成

①创建域

在这里插入图片描述

这个Cognito 域URL在后面创建配置GOOGLE SAML应用 会用到。

②创建应用程序客户端

在这里插入图片描述

应用程序客户端中详细配置参照

在这里插入图片描述


三、创建和配置GOOGLE SAML应用

admin用户 GOOGLE控制台

1. 创建GOOGLE SAML应用

注意: 不是应用管理者,没有此(添加自定义SAML应用程序)选项

在这里插入图片描述

接下来,参照这篇创建SAML应用的手顺
Configure Google as Authentication Provider using the SAML2 Protocol


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

**注意:**下载完IDP数据源,上传到AWS SAML身份提供商的配置项(元数据文档)中。

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


以下呈现:DEMO配置完后的各配置项

https://admin.google.com/u/2/ac/apps/unified

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

说明:
在这里插入图片描述


  1. ACS URL: AWS Cognito 域 + /saml2/idpresponse

在这里插入图片描述


  1. Entity ID: urn:amazon:cognito:sp: + AWS 用户池ID

在这里插入图片描述


在这里插入图片描述


四、登录测试


在这里插入图片描述


在这里插入图片描述


谷歌用户登录成功后自动跳转到AWS应用程序客户端设置的允许的回调 URL画面,并返回认证code参数,
AWS用户池自动追加登录成功的谷歌用户
在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


补充说明:认证code参数换成 获取认证access_token参数

在这里插入图片描述

得到URL:


在这里插入图片描述


  1. code 换成 token

  2. ** & amp; ** 换成 &

得到URL:


在这里插入图片描述


access_token 取得

在这里插入图片描述

JavaScript 代码参照:

    // window.open("https://www.baidu.com", "_target");window.location.href ="https://你的自定义.auth.ap-northeast-1.amazoncognito.com/login?client_id=你的client_id&response_type=token&scope=aws.cognito.signin.user.admin+email+openid+phone&redirect_uri=你的重定向URL";// 获取完整的URLvar url = window.location.href;// alert(url);// 解析URL,获取查询字符串参数// 从 URL 中获取哈希部分(包含 #)const hash = url.split("#")[1];// 解析哈希部分中的参数const params = new URLSearchParams(hash);console.error(params);// 从参数中获取 access_tokenconst access_token = params.get("access_token");console.error("access_token", access_token);

在这里插入图片描述

这篇关于8.2 GOOGLE(SAML应用)登录联携AWS用户池(Amazon Cognito)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/993317

相关文章

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys