Stormpath是一个多租户云身份管理服务,我们希望将其作为Heroku插件提供给Heroku用户。
与Heroku一样,Stormpath能够为每个客户表示一个或多个应用程序(其中"customer"与"tenant"同义)。
例如,正如Heroku客户可以将一个或多个应用程序部署到Heroku(测试、暂存、生产等)一样,Stormpath客户(租户)也可以注册他们希望Stormpath保护的一个或更多应用程序。
从这个意义上讲,对于这种1对多(客户到应用程序)关系,Stormpath的模型和Heroku的模型似乎是相同的。
这是我的问题:
当Heroku客户将Stormpath插件添加到多个应用程序时,我们如何确保这些应用程序与同一Stormpath租户关联?
在插件供应过程中,插件实现是否可以获得Heroku客户的唯一租户标识符,该标识符在其所有Heroku应用程序中都是通用的?例如,唯一的Heroku租户id或Heroku承租人所有者电子邮件地址?
实现逻辑如下:
- 正在提供的Heroku应用程序的所有者是否有Stormpath租户?
- 否:创建Stormpath租户,然后将应用程序与新租户关联
- 是:将应用程序与所有者的现有Stormpath租户关联
当Heroku向您发送供应请求时,您将得到一个类似于以下的JSON blob:
{
"heroku_id": "app123@heroku.com",
"plan": "basic",
"region": "amazon-web-services::us-east-1",
"callback_url": "https://api.heroku.com/vendor/apps/app123%40heroku.com",
"options": {}
}
您可以使用heroku_id
通过Heroku的AppInfo API找到用户标识符。