API Connect-具有基本身份验证和oAuth身份验证安全性定义的一个API

时间:2019-04-10 20:18:12

标签: api security oauth oauth-2.0 apiconnect

我们只有一个API X,该API必须在公司内部和外部均可使用。是否可以仅针对内部使用者使用客户端ID允许对X的基本身份验证,而对于外部使用者使用客户端ID和Auth令牌要求对X的oAuth身份验证?最好将客户端ID和oAuth字段都通过http标头传递给两个API?

我们目前只有一个产品,其中包含两个API(API X和范围为API X的oAuth 2.0提供程序API)。我们已向API X添加了两个安全性定义,选项1为oAuth和客户端ID。选项2是基本(仅限客户端ID)。对于oAuth,我们使用机密的应用程序流方案,其中app将客户端ID和机密发送到oAuth提供者API,并获取auth令牌,然后将(相同的)客户端ID和auth令牌传递给API X。

使用HTTP标头可以对API X进行OAuth访问,但仅当我们在查询字符串中传递客户端ID时,才能对API X进行基本访问。我们希望始终只使用http标头。

1 个答案:

答案 0 :(得分:0)

我仍然很乐意寻求更好的答案,但是我们已经找到了解决方法。

我们从API X中删除了基本身份验证安全性定义,因此它仅具有oAuth 2.0安全性定义。然后,我们创建了一个与API X相同的新API Y,只是它只有基本身份验证安全性定义。它具有与API X相同的基本路径。我们创建了第二个产品,并向其中添加了APIY。回顾一下,产品1包含API X及其oAuth API。我们为内部消费者订购了产品2,为外部消费者订购了产品1,我们取得了成功。授权完全在标题中处理。

肯定有更好的方法吗?