使用 Google 作为身份提供者的 Salesforce 的 Api 身份验证

Posted

技术标签:

【中文标题】使用 Google 作为身份提供者的 Salesforce 的 Api 身份验证【英文标题】:Api Authentication with Salesforce using Google as an Identity Provider 【发布时间】:2019-07-16 18:43:35 【问题描述】:

我对身份验证/授权领域有点陌生,需要一些关于如何构建/实施最终将连接到 Salesforce 并检索信息的应用程序的建议。在一个非常高的层次上,我正在构建一个需要提取 Salesforce 相关数据以显示给用户的移动应用程序。他们特定的 Salesforce 实例使用 Google 作为身份提供者。此外,我们计划设置一个网关来协调与 Salesforce 的所有通信,并可能进行一些响应聚合。我们还计划使用 Cognito 来处理身份管理。我的具体问题是:

    我将通过 Salesforce 身份验证端点进行身份验证吗?如果 Salesforce 最终使用 Google 作为身份提供商,那么直接从 Salesforce 本身检索该令牌是否有意义?
      我是否需要在 Salesforce 或 Google 中将移动应用程序注册为应用程序?我了解 Salesforce 本身需要在 Google 中注册才能允许在 Salesforce 中使用 Google 作为身份提供者,但同时注册是否有意义? 目前不需要限制资源访问,因为任何可以登录的用户都可以看到所有内容。这会影响实施吗?本质上,如果用户可以使用他们的 Google 凭据登录 Salesforce(也就是他们有一个用户映射),那么他们应该能够看到任何东西。

我确定我在问一些幼稚的问题,而且真的不知道从哪里开始。我最近使用 Azure 作为身份提供者构建了一个供 Salesforce Connect 使用的 Api,这相当简单,尽管这是机器对机器并且简单得多。任何帮助都将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

已经有一段时间了...不确定您是否还有问题。

假设 salesforce 配置为使用 Google 进行身份验证/作为 Auth Provider:您必须将您的应用 auth 设置为 salesforce,并且 salesforce 将自动将用户重定向到身份验证到 Google(或确保存在一个现有的有效Google 用户会话,并让您访问salesforce)。 Googlesalesforce 发出令牌,salesforce 将向您的应用发出自己的令牌。

【讨论】:

以上是关于使用 Google 作为身份提供者的 Salesforce 的 Api 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

带有外部身份提供者的 Keycloak 失败

是否可以使用 Amazon.com 作为身份验证提供商

将来自 Google Apps 脚本的 JSON 作为“访问网络应用程序的用户”提供服务

如何使用 Firebase Auth 作为 OIDC 向 Amplify GraphQL 发出经过身份验证的请求?

Google 身份验证器可作为公共服务使用吗?

如何在不注册身份的情况下从外部提供商获取用户登录信息