【问题标题】:auth0 access token doesn't show issuer detailsauth0 访问令牌不显示颁发者详细信息
【发布时间】:2021-09-29 03:12:28
【问题描述】:

我们最近添加了 auth0,用于集成来自不同 oauth2 提供商(例如 contoso1.auth.com 和 contoso2.auth.com)的 SSO

https://auth0.com/docs/quickstart/spa/angular/01-login

我按照上面的链接,我们的前端应用程序成功地将其集成到代码中,并且能够登录并获取令牌。

         {
          "iss": "https://TENANT_NAME.auth0.com/",
          "sub": "auth0|SOME_HASH",
          "aud": [
            "https://API_IDENTIFIER",
            "https://TENANT_NAME.auth0.com/userinfo"
          ],
          "iat": 1563699940,
          "exp": 1563786340,
          "azp": "SOME_OTHER_HASH",
          "scope": "openid profile email"
        }

在我们的 Angular 应用程序中,我们想要呈现 ui(根据用户已通过的身份验证 (contoso1/contoso2) 显示或隐藏链接。但 auth0 accesstoken 没有提供有关颁发者“iss”的任何详细信息(例如 contoso1. auth.com 或 contoso2.auth.com)

我们不能依靠电子邮件来确定 SSO 用户属于哪个 SSO 用户,因为在我们的案例中,contoso1 和 contoso2 可以让来自彼此系统的用户拥有自己的电子邮件 ID。

在 auth0 页面上花了一些时间后,我意识到我们在 auth0 对象的数据上下文中有一个“连接”字段,它存储了名称。虽然我们可以将其用作临时解决方法,但我们不能依靠它来确定登录的 SSO 流用户。

        {
          tenant: "identity-dev"
          clientID: "fdsfsdf-dfsdfsd8989",
          clientName: "Angualr Portal",
          clientMetadata: "{}"
          connection : "contoso1-backchannel",
          connectionStrategy:"oidc"
        ....more
        }

请告诉我如何在令牌中获取 iss 或颁发者 url 详细信息。

【问题讨论】:

    标签: javascript angular typescript auth0 auth0-connection


    【解决方案1】:

    是否需要仅使用前端获取此信息?

    根据这个 Auth0 article,如果你有一个后端就容易一点:

    如果您的代码在后端运行,那么我们可以假设您的服务器可以安全地存储机密(如您所见,我们在后端场景中使用机密)。

    使用后端,您将能够检索和解析 identities 数组 user.identities[i].provider,它清楚地标识了 providerconnection 下的原始颁发者em> 键。

    如果只使用前端,工作量更大,需要build a proxy

    使用前端应用程序时,调用 IdP API 的过程与后端过程不同,因为前端应用程序是无法安全保存凭据的公共应用程序。由于可以查看和更改 SPA 代码,并且可以反编译和检查本机/移动应用程序,因此不能信任它们保存密钥或密码等敏感信息。

    引用的文章包含“告诉我如何”框中的链接,在这方面可能会引起进一步的兴趣。

    从您的帖子看来,似乎只使用了一个前端,但我提供了有关后端的信息,以防您花时间实现一个小型后端,如果纯粹是为了让检索身份提供者更容易一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 2022-01-23
      • 2019-01-08
      相关资源
      最近更新 更多