Azure AD B2C - 支持守护程序应用程序以及 B2C 客户端,例如网页和本机移动应用程序

Azure AD B2C - Supporting a daemon app along with B2C clients such as Web page and native mobile app

我有一个受 Azure AD B2C 保护的 ASP.NET 6 WebAPI,一个 ASP.NET 网站和一个本机移动应用程序正在使用使用授权代码流的 WebAPI(基本上我遵循 https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/4-WebApp-your-API/4-2-B2C).这一直没有任何问题。

现在,我需要支持从守护程序应用程序调用上面的 WebAPI。此守护程序应用程序将定期访问 WebAPI 以触发维护和测试类型的处理。但是,根据 https://docs.microsoft.com/en-us/azure/active-directory-b2c/application-types#current-limitations.

,Azure AD B2C 不支持守护程序应用程序

如果有通用的解决方法,我很想知道。我能想到的唯一解决方法是在 Azure AD(而不是 Azure AD B2C)中创建一个应用程序注册,并创建一个单独的 WebAPI 实例(将 WebAPI 发布为不同的名称)使用新的 Azure AD 注册。守护程序应用程序可以使用客户端 ID 和密码来使用新的 WebAPI 实例。我验证了这是有效的,但创建一个单独的 WebAPI 实例是不可取的,我希望避免它。谢谢!

是,不支持客户端凭据流。

docs。请提出解决方法。

“尽管 Azure AD B2C 身份验证服务目前不直接支持 OAuth 2.0 客户端凭证授予流程,但您可以使用 Azure AD 和 Microsoft 身份平台 /token (https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token) Azure AD B2C 租户中应用程序的端点。Azure AD B2C 租户与 Azure AD 企业租户共享一些功能。"

我最终在 B2C 上使用了 ROPC 流程,它可以用作守护程序。

https://docs.microsoft.com/EN-US/azure/active-directory-b2c/add-ropc-policy?tabs=app-reg-ga&pivots=b2c-user-flow