Может ли кто-нибудь сказать мне, можно ли будет использовать следующий метод аутентификации с MS Graph после 13 октября 2020 года?

public static async Task<string> GetUserAccessTokenAsync()
{
    String APIToken = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX";
    String LoginMail = "xxx@xxx.be";
    String LoginWachtwoord = "xxxxxxxxxxx";

    UserPasswordCredential userPasswordCredential = new UserPasswordCredential(LoginMail, LoginWachtwoord);

    AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/diekeure.be");

    //Console App for Microsoft Graph
    AuthenticationResult token = await authContext.AcquireTokenAsync("https://graph.microsoft.com/", APIToken, userPasswordCredential);

    return token.AccessToken;
} /* GetUserAccessTokenAsync */

public static GraphServiceClient GetAuthenticatedClient()
{
    GraphServiceClient graphClient = new GraphServiceClient(
        new DelegateAuthenticationProvider(
            async (requestMessage) => {
                string accessToken = await GetUserAccessTokenAsync();

                        // Append the access token to the request.
                        requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
            }));
    return graphClient;
} /* GetAuthenticatedClient */

-> await graphClient....

Пакет Nuget: Microsoft.IdentityModel.Clients.ActiveDirectory v3.19.8

Я не совсем уверен, что это тоже не сработает

0
Niels 29 Окт 2019 в 15:11

1 ответ

Лучший ответ

В вашем примере не используется обычная проверка подлинности, а используется предоставление пароля OAuth. Хотя это не очень безопасный механизм аутентификации (поскольку вы должны хранить пароль), он сильно отличается от базовой аутентификации.

Указанный вами адрес электронной почты также относится к устаревшим службам, таким как веб-службы Exchange (EWS). Microsoft Graph - это не устаревший API, это рекомендуемый / современный REST API для служб Microsoft.

2
Marc LaFleur 2 Ноя 2019 в 20:53