【问题标题】:Which token can be used by other systems其他系统可以使用哪个令牌
【发布时间】:2018-07-07 06:06:45
【问题描述】:

当我使用用户代理流向我的 SFDC 组织验证我的单页应用程序时,我得到一个访问令牌和一个 openID 令牌。 我需要使用其中一个(不确定是哪个)来验证并访问另一个系统(同样,通过 API)。

我的理解是在这种情况下我需要使用 OpenID 令牌,因为其他系统不知道如何验证访问令牌。虽然可以使用用于签名的相同证书(我的 SFDC 组织中的那个)来验证 Open ID 令牌签名,并且可以基于该证书对用户进行身份验证。有些事情听起来不对,谁能帮助解释我如何使用从一个系统(和 IDP)收到的一个令牌来访问另一个系统

【问题讨论】:

    标签: salesforce single-sign-on jwt openid-connect api-management


    【解决方案1】:

    这是使用令牌时面临的常见问题。这是Google oAuth类似问题的链接

    简而言之,id 令牌是为客户端准备的。客户端使用 id 令牌并通过验证最终用户来验证它。另一方面,访问令牌是授予授权。它允许客户端访问受保护的资源,代表最终用户。通过这种方式,您的问题的答案是使用访问令牌。

    要验证访问令牌并获取最终用户详细信息,您可以使用 userinfo 端点。 SalesForce 通过 url 暴露这个端点,

    https://login.salesforce.com/services/oauth2/userinfo

    此端点使用访问令牌,验证它们。如果有效,则返回有关向其颁发访问令牌的最终用户的信息。这样您就可以验证访问令牌并接收。阅读更多来自article

    【讨论】:

    • 谢谢,在我的情况下,我需要向 SFDC 组织 (IDP) 进行身份验证,然后使用检索到的令牌来访问其他系统。为简单起见,我们可以假设其他系统只是另一个 salesforce org (SP1)。我的理解是,我将在身份验证后获得的访问令牌仅对第一个组织 (IDP) 有效。我不确定我应该怎么做才能获得对其他组织 (SP1) 的访问令牌。全部通过 API。我可以简单地定义一个连接的应用程序并在那里上传相同的证书,然后传递开放 id 令牌并接收回一个访问令牌(那是 JWT 承载流吗?)
    • 看来你有一个复杂的事情。我认为您需要 SalseForce 作为您的身份提供者。然后,您将一些应用程序托管在 salesforce 中,一些应用程序托管在外部。现在,salesforce 发出的令牌对接收它们的客户有效。如果客户端访问 salesforce api,则令牌通常会自行验证。我给出的答案集中在外面的应用程序上。他们想要令牌验证机制。
    • 另外请查看that nice talk,其中清楚地解释了这些令牌的使用。
    猜你喜欢
    • 2015-10-29
    • 2012-12-27
    • 2020-07-16
    • 2021-01-22
    • 2021-11-14
    • 2019-09-11
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    相关资源
    最近更新 更多