Asp.net核心API使用AzureAD令牌进行身份验证

时间:2020-08-23 15:55:45

标签: authentication azure-active-directory token asp.net-core-webapi

我有一个xamarin移动应用程序,该应用程序可以使用Azure广告来验证其用户身份。

我想使用存储在应用程序中的令牌访问api上的数据。我已经在旧的api上工作了,但是我已经创建了一个asp.net核心api,我想使用相同的令牌,因为我将数据访问从一个api缓慢迁移到另一个api。

我已经在asp.net核心启动类中设置了访问权限,如下所示

            services.AddAuthentication(sharedoptions =>
        {
        sharedoptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
        sharedoptions.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
               })
         .AddJwtBearer(options =>
            {
        options.Authority = "https://login.microsoftonline.com/{ad name}.onmicrosoft.com";
        options.Audience = "api://{app service guid}";

        options.TokenValidationParameters = new `enter code here`Microsoft.IdentityModel.Tokens.TokenValidationParameters
        {
            ValidateIssuer = true,
            ValidateAudience = true,
            ValidAudiences = new List<String> { "{app service guid}" },
            ValidIssuers = new List<string> { "[https://login.microsoftonline.com/{Azure AD guid}/v2.0/token"}
        };
    });

我与邮递员进行测试,并在asp.net核心api上获得未经授权的状态,但在旧api上却获得了OK(授权)状态,因此我知道令牌正在工作。

我的设置似乎正确还是我缺少某些配置?

1 个答案:

答案 0 :(得分:1)

如果您使用的是B2C,则可以像下面那样更改这段代码:

lcd ~/quizme-read-only-prod
相关问题