Я работаю над Azure AD и основным приложением .net. У меня есть приложение чванства, которое выполнит аутентификацию и авторизацию. Ниже моя конфигурация чванства.
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
c.AddSecurityDefinition("oauth2", new OAuth2Scheme
{
Type = "oauth2",
Flow = "implicit",
AuthorizationUrl = swaggerUIOptions.AuthorizationUrl,
TokenUrl = swaggerUIOptions.TokenUrl,
Scopes = new Dictionary<string, string>
{
{ "Read", "https://graph.microsoft.com/user.read" }
}
});
c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>>
{
{ "oauth2", new [] { "readAccess", "writeAccess" } }
});
});
Ниже моя конфигурация в Configure.
app.UseSwaggerUI(c =>
{
c.RoutePrefix = "swagger";
c.OAuthClientId(swaggerUIOptions.ClientId);
c.OAuthClientSecret(swaggerUIOptions.ClientSecret);
c.OAuthRealm(azureActiveDirectoryOptions.ClientId);
c.OAuthAppName("Swagger");
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
Ниже мои AuthorizationUrl
и TokenUrl
"AuthorizationUrl": "https://login.microsoftonline.com/tenantid/oauth2/v2.0/authorize",
"TokenUrl": "https://login.microsoftonline.com/tenantid/oauth2/v2.0/token"
Ниже приведены разрешения API, установленные в объявлении Azure.
Когда я пытаюсь получить токен (я выбрал галочку области действия) в сваггере, я получаю сообщение об ошибке ниже.
Привязка приложения попросила прочитать, чтоне существует на ресурсе
Кроме того, у меня есть еще одно приложение для внутренних API. Когда мы пытаемся получить токен доступа, можем ли мы использовать один и тот же токен для вызова API-интерфейсов Graph и API бэкэнда?