Azure API 管理 - 身份验证和授权与基础服务同步
Azure API Management - Authenticate and Authorization sync with underlying services
我是 Azure API 管理的新手,很乐意收到有关我实施的建议和建议。
我正在开发一个 B2B Api 渠道供第 3 方通过 API 管理 (APIM) 网关调用我的服务。在 APIM 开发人员门户上,我可以加入新客户并生成 API 密钥。我的难题是如何最好地找出正在调用的底层服务?
我考虑过将 APIM 中生成的 API 密钥添加到基础服务将调用以进行身份验证的数据库中,但是,实现将是手动的并且不会同步当第 3 方客户端转到 APIM 并重新生成一个新的 API 密钥时。
我想要的是一种在 APIM 和底层服务之间自动同步授权和身份验证的解决方案。
既然 API 密钥可以替换,你最好依靠 ID 来识别客户端。
您可以在 header 中将客户端 ID 传递到后端:https://whosebug.com/a/42277313/2579733
现在如何将 APIM 的客户端 ID 与后端的客户端 ID 相关联?
如果只有几个客户端,您或许可以在后端数据库中手动更新该关联。如果您可以使用客户端的电子邮件连接 APIM 客户端和您的后端客户端,那就更容易了(您完成了)。
如果您需要注册许多客户端并且手动方法不可行...一种方法是使用 Delegated Authentication:
Delegation allows you to use your existing website for handling developer sign in/sign up and subscription to products, as opposed to using the built-in functionality in the developer portal. It enables your website to own the user data and perform the validation of these steps in a custom way.
我从未使用过它,但您似乎可以将创建新客户端的责任转移到后端服务(由您开发)。
这样您就可以访问客户电子邮件,生成 ID 并可以根据需要在后端存储 ID 关系。
我是 Azure API 管理的新手,很乐意收到有关我实施的建议和建议。
我正在开发一个 B2B Api 渠道供第 3 方通过 API 管理 (APIM) 网关调用我的服务。在 APIM 开发人员门户上,我可以加入新客户并生成 API 密钥。我的难题是如何最好地找出正在调用的底层服务?
我考虑过将 APIM 中生成的 API 密钥添加到基础服务将调用以进行身份验证的数据库中,但是,实现将是手动的并且不会同步当第 3 方客户端转到 APIM 并重新生成一个新的 API 密钥时。
我想要的是一种在 APIM 和底层服务之间自动同步授权和身份验证的解决方案。
既然 API 密钥可以替换,你最好依靠 ID 来识别客户端。
您可以在 header 中将客户端 ID 传递到后端:https://whosebug.com/a/42277313/2579733
现在如何将 APIM 的客户端 ID 与后端的客户端 ID 相关联?
如果只有几个客户端,您或许可以在后端数据库中手动更新该关联。如果您可以使用客户端的电子邮件连接 APIM 客户端和您的后端客户端,那就更容易了(您完成了)。
如果您需要注册许多客户端并且手动方法不可行...一种方法是使用 Delegated Authentication:
Delegation allows you to use your existing website for handling developer sign in/sign up and subscription to products, as opposed to using the built-in functionality in the developer portal. It enables your website to own the user data and perform the validation of these steps in a custom way.
我从未使用过它,但您似乎可以将创建新客户端的责任转移到后端服务(由您开发)。
这样您就可以访问客户电子邮件,生成 ID 并可以根据需要在后端存储 ID 关系。