我是AAD B2C认证的新手。目前,我在AAD上托管了三个应用程序,并访问我的web API,该API位于azure Active目录中。 我将其中一个应用程序移动到B2C租户。我也在B2C中托管了Web API,并且我在启动类中使用了以下代码。
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
var settings = new SecurityTokenSettings();
var validAudiencesList = new List<String>
{
settings.GetValue("apiResource"),
settings.GetValue("apiClientId")
};
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = settings.GetValue("tenant"),
TokenValidationParameters = new TokenValidationParameters
{
ValidAudiences = validAudiencesList,
SaveSigninToken = true,
},
AuthenticationMode = AuthenticationMode.Active
});
app.UseClaimsAuthorization();
}
}
当我使用AAD注册的应用程序和Web API时,这很好用。在ClaimsAuthorization中 - context.Authentication.User有声明和用户信息。
但是当我使用B2C注册的应用程序和Web API时,上下文中的用户信息为空。我也没有看到任何说法。
如果我使用app.UseOAuthBearerAuthentication,我是否会成功使用AAD和B2C注册的应用程序?
如何验证AAD应用程序和B2C应用程序以访问Web API。
答案 0 :(得分:0)
如果没有更多代码和您的应用配置详细信息,很难确定确切的问题,但我建议您查看Azure AD B2C .NET Web App to a Web API代码示例。这听起来像您正在尝试实施的方案。