我有一个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(授权)状态,因此我知道令牌正在工作。
我的设置似乎正确还是我缺少某些配置?
答案 0 :(得分:1)
如果您使用的是B2C,则可以像下面那样更改这段代码:
lcd ~/quizme-read-only-prod