我们最近添加了 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”的任何详细信息(egcontoso1.auth.com 或contoso2.auth.com)
我们不能依赖电子邮件来说明哪个 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 详细信息。