使用 AAD B2C 中的客户端凭据授予流程的 Azure 应用服务轻松身份验证

Mar*_*osa 5 azure azure-ad-b2c

是否可以使用内置的身份验证/授权选项来保护 Azure 应用服务中的 Web API,同时使用 OAuth 客户端凭据授予流程来访问它?

我有一个应用程序服务正在使用 Azure AD B2C 进行身份验证。在该 B2C 租户中,我注册了 Web 应用程序/API,并且身份验证工作正常,可以使用该 Web 应用程序。我在该 AD B2C 应用程序的“已发布范围”部分中添加了一个范围,并为该范围添加了一个应用程序 ID URI。然后我在租户中创建了另一个应用程序 (ClientApp) 来代表我想要提供对第一个 API 的访问的另一个服务。我为其生成了一个密钥,并且还在 API 访问部分添加了我在其他应用程序中创建的范围。

然后在邮递员中我使用下一个获取令牌

  • 授予类型:客户凭证
  • 访问令牌 URL: https: //login.microsoftonline.com/mytenantname.onmicrosoft.com/oauth2/v2.0/token(由于某种原因,我必须使用 login.microsoftonline,因为 b2clogin 域不适用于此)
  • 客户端ID:出现在为ClientApp注册的应用程序中的ID
  • Client Secret:ClientApp下生成的secret
  • 范围:我添加的Web应用程序注册的应用程序ID URI。

我成功获取了令牌,但是当我尝试使用邮递员使用不记名令牌访问网站时,我只得到 401。

Piz*_*aka -1

不确定我是否理解正确,但您似乎正在使用 URL 作为范围。如果将范围设置为应用程序服务的应用程序 ID(您可以在 azure AD 中找到具有您的应用程序服务名称的企业应用程序)而不是使用 URL,则该方法有效。(格式:/.默认)

我仍在尝试弄清楚是否可以使用 URL 作为范围...