- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 firebase auth 来保护我的 AWS AppSync graphql api,而不是像 Cognito 这样的东西。这背后有几个原因,例如定价,以及我们已经在使用其他一些 firebase 服务。
我认为 atm 唯一可行的解决方案是以某种方式将 firebase 用户 token 传递到我的 AppSync graphql api 并通过 OpenID Connect/OIDC 对其进行验证。
我无法弄清楚这一点,也找不到关于该主题的任何指南,所以想在这里询问是否有可能,如果可以,是否可以提供任何示例或使用完整的引用资料?
以下是OpenID连接数据需要提供给AppSync的相关字段https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-appsync.OpenIdConnectConfig.html
这些是否存在用于 firebase 身份验证?
更新:我找到了一些关于 firebase token 验证的文档 https://firebase.google.com/docs/auth/admin/verify-id-tokens#verify_id_tokens_using_a_third-party_jwt_library
我相信以下 URL 是 AppSync 中需要用作 OpenID url 设置的内容 https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com
但是 AppSync 文档指出他们将 /.well-known/openid-configuration
附加到此类 url,当我对上面的 googleapis url 执行此操作时,它会抛出 404。
最佳答案
AppSync 需要一个 OpenID Connect 提供程序 (OP)。更具体地说,它需要 OP 的发行人;其余的元数据是基于此检索的。来自 AppSync doc :
OPENID_CONNECT Authorization
This authorization type enforces OpenID Connect (OIDC) tokens provided by an OIDC-compliant service.Your application can leverage users and privileges defined by yourOIDC provider for controlling access.
An
Issuer
URL is the only required configuration value that youprovide to AWS AppSync (for example,https://auth.example.com
). ThisURL must be addressable over HTTPS. AWS AppSync appends/.well-known/openid-configuration
to the issuer URL and locates theOpenID configuration athttps://auth.example.com/.well-known/openid-configuration
per theOpenID Connect Discovery specification
Firebase(主要)是一个中间件。即使您可以将用户帐户驻留在 Firebase 中,但更典型的用例是将 Google 或 Microsoft 等提供商插入 Firebase。然后,您可以使用 Firebase API 执行各种操作,而无需了解底层提供程序的详细信息。
无论是作为中间件还是作为 Firebase 中用户的身份存储,尚不清楚 Firebase 是否是符合 OIDC 标准的提供商。 OpenID 发布 OIDC 一致性测试以及 entities that have been certified .后一个列表中唯一的 Google 实体是“Google Federated Identity”。除了认证,Firebase 确实发布了一个签名的 JWT according to them在道德上等同于 id_token
在 OIDC 中:
ID token verification
If your Firebase client app communicates withyour backend server, you might need to identify the currentlysigned-in user on your server so you can perform server-side logic ontheir behalf. You can do this securely by using ID tokens, which arecreated by Firebase when a user signs into an Firebase app.
ID tokensconform to the OpenID Connect spec and contain data to identify auser, as well as some other profile and authentication relatedinformation. You can send, verify, and inspect these tokens from yourown backends. This allows you to securely identify the currentlysigned in user and authorize them into your own backend resources.
如果您创建一个 Firebase 项目,然后通过该项目进行身份验证并检查颁发的 token ,您将看到 iss
(发行者) token 有效负载中的 key 。它的值为 https://securetoken.google.com/<Firebase projectId>
这就是 AppSync 所需的 URL。
您可以通过连接 /.well-known/openid-configuration
来确认 OIDC 元数据可用。与 https://securetoken.google.com/<Firebase projectId>
并对生成的 URL 执行 GET。预期的响应应如下所示:
{
"issuer": "https://securetoken.google.com/<Firebase project id>",
"jwks_uri": "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com",
"response_types_supported": [
"id_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
]
}
关于amazon-web-services - AWS AppSync with Firebase 作为 OpenID Connect 提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65050239/
使用 caret::train() 运行逻辑回归模型时出现问题。LR = caret::train(Satisfaction ~., data= log_train, method = "glm",
我正在尝试将nginx容器作为我所有网站和Web服务的主要入口点。我设法将portainer作为容器运行,并且可以从互联网上访问它。现在,我正在尝试访问由另一个Nginx容器托管的静态网站,但这样做失
我有一个在 Windows XP SP3 x86 上运行的 Visual Studio 2008 C# .NET 3.5 应用程序。在我的应用程序中,我有一个事件处理程序 OnSendTask 可以同
我在 Eclipse 中创建了作为独立程序执行的此类,它可以毫无问题地连接所有 http URL(例如:http://stackoverflow.com),但是当我尝试连接到 https(例如 htt
我在我的 nginx 错误日志中收到大量以下错误: connect() failed (111: Connection refused) while connecting to upstream 我的
我正在尝试将新的 log4j2 与 Socket Appender 一起使用,但我有点不走运。这是我的 XML 配置文件:
我目前正在尝试寻找 Android 应用程序后端的替代方案。目前,我使用 php servlet 来查询 Mysql 数据库。数据库(Mysql)托管在我大学的计算机上,因此我无法更改任何配置,因为我
类MapperExtension有一些方法,before_insert, before_update, ...都有一个参数connection. def before_insert(self, map
嗨,我正在尝试更改位于连接库 (v 5.5) 中的文档的文档所有者,我仍在等待 IBM 的回复,但对我来说可能需要太长时间,这就是我尝试的原因逆向工程。 我尝试使用标准编辑器 POST 请求将编辑器更
我在 nginx( http://52.xx.xx.xx/ )上访问我的 IP 时遇到 502 网关错误,日志只是这样说: 2015/09/18 13:03:37 [error] 32636#0: *
我要实现 Connected-Component Labeling但我不确定我应该以 4-connected 还是 8-connected 的方式来做。我已经阅读了大约 3 种 Material ,但
我在Resources ->JMS ->Connection Factories下有两个连接工厂。 1) 连接工厂 2)集成连接工厂 我想修改两个连接工厂下连接池的最大连接数。资源 ->JMS ->连
我在将 mongoengine 合并到我的 django 应用程序时遇到问题。以下是我收到的错误: Traceback (most recent call last): File "/home/d
上下文 我正在关注 tutorial on writing a TCP server last week in Real World Haskell .一切顺利,我的最终版本可以正常工作,并且能够在
我在访问我的域时遇到了这个问题:我看到了我的默认 http500 错误 django 模板正在显示。 我有 gunicorn 设置: command = '/usr/local/bin/gunicor
我更换了电脑,并重新安装了所有版本:tomcat 8 和 6、netbeans 8、jdk 1.7、hibernate 4.3.4,但是当我运行 Web 应用程序时,出现此错误。过去使用我的旧电脑时,
您好,我是这个项目的新手,我在 CentOS7 ec2 实例上托管它时遇到问题。当我访问我的域时出现此错误: 2017/02/17 05:53:35 [error] 27#27: *20 connec
在开始之前,我已经查看了所有我能找到的类似问题,但没有找到解决我的问题的方法。 我正在运行 2 个 docker 容器,1 个用于 nginx,1 个用于 nodejs api。我正在使用 nginx
使用 debian 包将 kaa -iot 平台配置为单节点时。我收到以下错误。 himanshu@himpc:~/kaa/deb$ sudo dpkg -i kaa-node-0.10.0.deb
我是我公司开发团队的成员,担任管理员角色。我可以通过 https://developer.apple.com/ 访问团队的成员(member)中心 但是,当我尝试在 https://itunescon
我是一名优秀的程序员,十分优秀!