Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS AppSync与Firebase作为OpenID连接提供程序_Amazon Web Services_Firebase_Firebase Authentication_Openid Connect_Aws Appsync - Fatal编程技术网

Amazon web services AWS AppSync与Firebase作为OpenID连接提供程序

Amazon web services AWS AppSync与Firebase作为OpenID连接提供程序,amazon-web-services,firebase,firebase-authentication,openid-connect,aws-appsync,Amazon Web Services,Firebase,Firebase Authentication,Openid Connect,Aws Appsync,我想使用firebase auth来保护我的AWS AppSync graphql api,而不是像Cognito这样的东西。这背后有几个原因,比如定价和我们已经在使用其他一些firebase服务 我能看到的唯一可行的atm解决方案是以某种方式将firebase用户令牌传递给我的AppSync graphql api,并通过OpenID Conneect/OIDC进行验证 我无法理解这一点,也找不到关于这个主题的任何指南,所以我想问一下,这是否可能,如果可能,是否可以提供任何示例,或者使用完整的

我想使用firebase auth来保护我的AWS AppSync graphql api,而不是像Cognito这样的东西。这背后有几个原因,比如定价和我们已经在使用其他一些firebase服务

我能看到的唯一可行的atm解决方案是以某种方式将firebase用户令牌传递给我的AppSync graphql api,并通过OpenID Conneect/OIDC进行验证

我无法理解这一点,也找不到关于这个主题的任何指南,所以我想问一下,这是否可能,如果可能,是否可以提供任何示例,或者使用完整的参考资料

以下是需要根据OpenID connect数据提供给AppSync的相关字段

firebase auth是否存在这些功能

更新:我找到了一些关于firebase令牌验证的文档

我相信下面的URL是需要在AppSync中用作OpenID URL设置的内容


然而,AppSync文档声明,它们将/.众所周知的/openid配置附加到此类url,当我对上面的googleapis url执行此操作时,它抛出404。

AppSync需要openid连接提供程序OP。更具体地说,它需要OP的发行者;其余的元数据将基于此进行检索。从AppSync:

OPENID_连接授权

此授权类型强制执行由符合OIDC的服务提供的OpenID Connect OIDC令牌。 您的应用程序可以利用用户定义的用户和权限 用于控制访问的OIDC提供程序

发卡机构URL是您唯一需要的配置值 例如,提供给AWS AppSync,https://auth.example.com. 这 URL必须可通过HTTPS寻址。AWS AppSync附件 /。对颁发者URL进行众所周知的/openid配置,并查找 OpenID配置在 https://auth.example.com/.well-known/openid-configuration 根据 OpenID连接发现规范

Firebase主要是一个中间件。尽管您可能有一个用户帐户驻留在Firebase中,但更典型的用例是将一些提供商(如Google或Microsoft)插入Firebase。然后,您可以使用Firebase API执行各种操作,而无需了解底层提供程序的详细信息

无论是作为中间件还是作为Firebase中用户的身份存储,Firebase是否符合OIDC尚不清楚。OpenID发布OIDC一致性测试以及。后一个列表中唯一的Google实体是Google联合身份。除认证外,Firebase确实签发了一份签名JWT,在道德上等同于OIDC中的id_令牌:

ID令牌验证

如果您的Firebase客户端应用程序与 在您的后端服务器上,您可能需要标识当前 已在服务器上登录用户,以便您可以在服务器上执行服务器端逻辑 代表他们。您可以通过使用ID令牌安全地执行此操作,ID令牌是 用户登录Firebase应用程序时由Firebase创建

ID标记 符合OpenID Connect规范,并包含用于标识 用户,以及其他一些与配置文件和身份验证相关的 信息您可以从服务器发送、验证和检查这些令牌 拥有自己的后端。这允许您安全地识别当前 已登录用户并将其授权到您自己的后端资源中

如果您创建一个Firebase项目,然后通过该项目进行身份验证并检查已颁发的令牌,您将在令牌负载中看到iss Issuer密钥。它的值为https://securetoken.google.com/ 这就是AppSync需要的URL

通过将/.well-known/openid配置与https://securetoken.google.com/ 并对生成的URL进行获取。预期的响应应如下所示:

{
  "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"
  ]
}

AppSync需要OpenID连接提供程序OP。更具体地说,它需要OP的颁发者;其余的元数据将基于此进行检索。从AppSync:

OPENID_连接授权

此授权类型强制执行由符合OIDC的服务提供的OpenID Connect OIDC令牌。 您的应用程序可以利用用户定义的用户和权限 用于控制访问的OIDC提供程序

发卡机构URL是您唯一需要的配置值 例如,提供给AWS AppSync,https://auth.example.com. 这 URL必须可通过HTTPS寻址。AWS AppSync附件 /。对颁发者URL进行众所周知的/openid配置,并查找 OpenID配置在 https://auth.example.com/.well-known/openid-configuration 根据 OpenID连接发现规范

Firebase主要是一个中间件。尽管您可能有一个用户帐户驻留在Firebase中,但更典型的用例是将一些提供商(如Google或Microsoft)插入Firebase。然后,您可以使用Firebase API执行各种操作,而无需了解底层提供程序的详细信息

无论是作为中间件还是作为Firebase用户的身份存储,Firebase是否是一个O 符合IDC标准的供应商。OpenID发布OIDC一致性测试以及。后一个列表中唯一的Google实体是Google联合身份。除认证外,Firebase确实签发了一份签名JWT,在道德上等同于OIDC中的id_令牌:

ID令牌验证

如果您的Firebase客户端应用程序与 在您的后端服务器上,您可能需要标识当前 已在服务器上登录用户,以便您可以在服务器上执行服务器端逻辑 代表他们。您可以通过使用ID令牌安全地执行此操作,ID令牌是 用户登录Firebase应用程序时由Firebase创建

ID标记 符合OpenID Connect规范,并包含用于标识 用户,以及其他一些与配置文件和身份验证相关的 信息您可以从服务器发送、验证和检查这些令牌 拥有自己的后端。这允许您安全地识别当前 已登录用户并将其授权到您自己的后端资源中

如果您创建一个Firebase项目,然后通过该项目进行身份验证并检查已颁发的令牌,您将在令牌负载中看到iss Issuer密钥。它的值为https://securetoken.google.com/ 这就是AppSync需要的URL

通过将/.well-known/openid配置与https://securetoken.google.com/ 并对生成的URL进行获取。预期的响应应如下所示:

{
  "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"
  ]
}

Firebase作为OpenID连接提供程序-颁发者是https://securetoken.google.com/ . 这就是AppSync想要的URL。@identigral太棒了!您是否愿意提供更多细节作为回答,以便将来对其他人有用,这样我就可以授予您bounty?Firebase作为OpenID连接提供商-发行人是https://securetoken.google.com/ . 这就是AppSync想要的URL。@identigral太棒了!你愿意提供更多的细节来回答这个问题吗?这样我就可以奖励你奖金了?