API的一种以上授权模式基本和OAuth

问题描述

我有一个通用的Azure API,在其中我必须实现两种授权方式。

基本 OAuthToken。

某些客户端仅使用基本客户端,而某些客户端使用oauth。

进行此逻辑的最佳方法是什么,放置此逻辑的最佳位置是什么。

考虑明天其他客户端将带有其他身份验证逻辑。我是说我应该基于身份验证模式分离API还是将两者都放在一个API中?

我有APIM,有没有简单的方法来实现?当前,我已经设置了基本的策略,但是我认为它会过载,因此我想考虑是否应该制作版本1 API的“版本2”,然后在此处设置oAuth?

解决方法

这取决于您如何确定要应用的身份验证方法。您可能具有不同的产品,这些产品具有实施不同身份验证方法的不同策略。这些产品将包含相同的API,您将指示用户为实施他们感兴趣的auth方法的产品使用订阅密钥。

如果用户明确选择了auth方法,那么您可以在API中有一个选择策略来做出决定。例如,检查Authorization标头是否以“ Basic”开头,如果是-应用基本身份验证,否则请使用validate-jwt。