【问题标题】:Azure API Management OAuth2 Configuration - Creating Authorization Service and ClientID/SecretAzure API 管理 OAuth2 配置 - 创建授权服务和 ClientID/Secret
【发布时间】:2020-04-26 15:49:14
【问题描述】:

我正在为我的 Azure API 管理实例启用 OAuth2。我点击添加添加OAuth2,它要求我输入授权服务的名称和描述,所以我的想法是我在这里创建一个授权服务。

为什么要求我提供客户端 ID、客户端密码、资源所有者用户和资源所有者密码。我了解 OAuth2 的概念以及如何使用这些概念,但我正在设置 API 管理来处理 OAuth2 授权,因此授权服务器的工作将是验证授权代码和客户端机密。客户端将拥有自己的客户端 ID 和客户端密码。资源所有者应该是具有自己的用户名和密码的 Azure AD 身份。

为什么,当我为 API 管理设置授权服务器时,它要求我输入客户端 ID 和客户端密码以及资源所有者凭据。这对我来说没有意义。谁能解释一下?

那么....什么给了?我是不是在错误的屏幕上,因为 API 管理

【问题讨论】:

    标签: azure oauth-2.0 azure-active-directory azure-api-management


    【解决方案1】:

    APIM 不能用作 OAuth 服务器。目前在 APIM 中配置 OAuth/OIDC 服务器的唯一原因是确保它包含在 API 的导出规范中,并且开发人员门户具有方便的 UI 让用户获取令牌,仅此而已。这就是为什么它需要提供客户端 ID 和机密,因为 APIM 实际上是一个客户端。

    【讨论】:

      【解决方案2】:

      第 1 步:选择 OAuth 提供程序,例如 Auth0

      第 2 步:在您的 OAuth 提供者中将各种 OAuth 场景配置为 API(API 是 Auth0 使用的术语,其他提供者可能会用其他术语来引用它们)

      第 3 步:创建 APIM OAuth 2 记录,填写您问题中的字段(客户端 ID、客户端密码)。为您在 OAuth 提供程序中配置的每个 API 创建一条记录(在第 2 步中)。

      第 4 步:在 APIM 中编辑各种 API 的详细信息,选择您在第 3 步中设置的相应 OAuth 记录。在这里,您为每个 API 选择 OAuth 场景。许多 API 可能使用相同的场景,但显然单个 APIM API 条目只能链接到 1 个 OAuth 场景

      因此,您已经针对各种 OAuth 场景在 APIM 中配置了各种 API。通常,OAuth 设置背后的详细信息对 API 是不可见的,并且仅通过其 ClientID、secret 和用于令牌和授权的 url 进行设置和公开。

      Auth0 有一个很好的设置 Azure APIM 的教程:HERE

      【讨论】:

        【解决方案3】:

        apim 应该有它自己的身份。您是否为实例创建了应用注册?使用的 aad 上的 app reg 凭据将识别 apim 并允许验证令牌。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-12
          • 2020-03-15
          • 2016-12-12
          • 1970-01-01
          • 1970-01-01
          • 2013-08-21
          • 2013-11-01
          相关资源
          最近更新 更多