我有一个Azure Function应用程序,运行在使用Azure AD B2C进行身份验证的高级计划中。简单SPA的用户通过广告B2C的登录流获得他们的代币。SPA在AD B2C中注册为应用程序,功能应用程序的身份验证配置为使用该应用程序注册:
身份验证/Azure Active Directory/高级
ClientId:<代码>
颁发者Url:<代码>https://
使用通过SPA获得的这些令牌对函数应用程序进行调用可以正常工作。
现在,我需要一个守护程序应用程序(目前是函数本身)来访问Function App,而无需用户执行登录。
为此,我尝试使用共享密钥获取令牌作为客户端凭据:
GET
https://login.microsoftonline.com/<B2C-Tenant-Id>/oauth2/v2.0/token?
grant_type=client_credentials
&client_id=<ClientId of the app registration>
&scope=https://<ADB2C-Tenant>.onmicrosoft.com/<ClientId of the app registration>/.default
&client_secret=<Secret of the app registration>
这将成功返回一个JWT令牌,但是使用它来验证对函数app的调用会导致401:您没有查看此目录或页面的权限 。
我怀疑这是由令牌的“假”颁发者引起的:<代码>https://login.microsoftonline.com/
我了解,Azure AD B2C目前不直接支持“OAuth 2.0客户端凭据授予流”,如这里所述。然而,该文件描述了一种“变通方法”,这是根据我的理解,基本上是我已经尝试过但没有成功的方法。
我如何才能使其正常工作并访问受Azure AD B2C保护的Azure功能应用程序以及守护程序应用程序?
仅供参考身份验证v2现在支持此功能-您可以添加多个身份提供者。
正如@Jas Suri在评论部分所提到的,我们只能从门户设置一个发卡机构。您需要使用身份验证库来信任两个颁发者。
我想看一看我的AAD令牌,以及调用后图形API的输出。如何使用PowerShell快速完成这一任务?
我有几个Azure Functions,我想使用Azure AD对其应用身份验证。在用户模拟身份验证方面,我已经成功做到了这一点。但不幸的是,我无法从尝试访问Azure Functions的守护程序应用程序中获得同样的工作。 我的守护程序应用程序在Azure AD中注册,并公开应用程序范围。基本上,我有其他构建为应用程序服务的API,可以从守护程序应用程序成功地进行身份验证。我为Azure功能应用
我正在尝试访问一个我在Azure上托管并用Azure AD保护的API应用程序。 对于API应用程序,我已经设置了App Service Authentication=Azure Active Directory“Express”管理模式。 在“Classic”门户中,我在AD下创建了几个应用程序。一个用于API应用程序,另一个用于Web应用程序。对于Web应用程序,我在API应用程序的“对其他应
我的webapp是用。NET核心并部署在Azure中。我已启用Azure应用程序服务身份验证,并将其配置为使用Azure Active Directory。当我访问webapp时,我确实会被重定向到正确的登录页面。登录后,我可以浏览到endpoint。对我进行身份验证,并查看是否存在针对我的用户的声明。我还可以验证下面的请求标头是否存在值: X-MS-TOKEN-AAD-ID-TOKEN X-MS
有什么主意吗?