Пропустить разрешение автономного доступа в авторизации Microsoft OIDC

#oauth-2.0 #azure-active-directory #openid-connect

#oauth-2.0 #azure-active-directory #OpenID-connect

Вопрос:

Я использую этот код

 var app = ConfidentialClientApplicationBuilder.Create(AzureAdApplicationId)
   .WithTenantId("organizations")
   .WithRedirectUri(AzureAdRedirectUrl)
   .WithClientSecret(AzureAdSecretKey)
   .Build();

azureAdScopes = new List<string>() { "email" };

var signInRequest = app.GetAuthorizationRequestUrl(azureAdScopes);

var uri = await signInRequest.ExecuteAsync();
  

который выдает URL-адрес

https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?scope=email openid profile offline_accessamp;...

Все, что мне нужно, — это имя пользователя, и мне не нужен автономный доступ к учетной записи пользователя. Как я могу удалить их из области видимости?

Ответ №1:

Вы могли бы запросить URL-адрес и без offline_access этого, но на странице согласия учетной записи Azure AD версии 0 OAuth2 автоматически отображается «Доступ к вашим данным в любое время», даже если параметр offline_access не указан в области действия. Это связанная с этим проблема.

Примечание показано в документе:

В это время разрешения offline_access («Поддерживать доступ к данным, к которым вы предоставили ему доступ») и user.read («Войдите в систему и прочитайте свой профиль») автоматически включаются в первоначальное согласие на приложение.

Комментарии:

1. Это очень плохо. Исправление для этого, то есть автоматическое отключение offline_access, было, согласно проблеме, на которую вы ссылались, обещано более 1,5 лет назад.