使用带有Auth0的钩子向设备身份验证流程中的jwt令牌添加值

时间:2020-03-31 15:57:50

标签: jwt auth0

我们当前使用M2M应用类型来验证客户端的CLI。我们有几个租户,因此我们在JWT令牌中添加了一个租户值以在后端使用它(使用应用程序元数据和挂钩)。但是,我们希望允许我们的客户使用他们的SSO登录。我们还希望允许客户端使用基于角色的访问权限。

在新设置中,我们使用本机应用程序,然后利用设备代码身份验证流程。 CLI触发浏览器窗口打开,然后该窗口使用户能够使用企业连接使用其企业身份验证提供程序登录。到目前为止一切顺利。

很遗憾,我们不能再使用以前将租户添加到JWT中的钩子。这是因为显然,使用设备代码流检索令牌时不会触发该挂钩。

问题是:如何在此流程中向令牌添加值?我们如何才能在令牌中添加一个ID,后端可以使用该ID来确定使用身份验证的租户?


也许还有两个问题:

  • 我们应该将设备代码流用于CLI还是另一种流?
  • 是否真的需要为每个租户在auth0中创建一个应用程序,以避免auth0将所有连接暴露给客户端登录屏幕?例如,在我们的开发人员设置中,每个连接都通过其CDN here
  • 公开公开

curl https://cdn.eu.auth0.com/client/oDQ6zpmQKlMBrrTGrnqj7PBCUVuf2Suj.js
Auth0.setClient({"id":"oDQ6zpmQKlMBrrTGrnqj7PBCUVuf2Suj","tenant":"datamindedbe-dev","subscription":"free","authorize":"https://datamindedbe-dev.eu.auth0.com/authorize","callback":"","hasAllowedOrigins":false,"strategies":[{"name":"google-apps","connections":[{"name":"dataminded","domain":"dataminded.be","scope":["email","profile"]}]}]});

在结果中注意strategies > connections。如果我们在此处添加多个租户的企业连接,则它们将暴露给拥有我们client_id的任何人,如果我们开源,则在我们的情况下这将是公众知识。

0 个答案:

没有答案