Как мне войти в Azure SQL, используя удостоверение пользователя из приложения ASP.Net - PullRequest
1 голос
/ 19 сентября 2019

У меня есть приложение ASP.Net, которое использует Аутентификацию Azure AD, как бы я ни хотел подключиться к базе данных Azure, используя идентификатор пользователя, вошедшего в систему.«Active Directory Integrated не работает для этого сценария.

Когда пользователь входит в мое приложение с помощью страницы входа Microsoft, тот же пользователь должен иметь возможность войти (не идентификатор приложения) в базу данных и выполнить некоторое выполнение..

1 Ответ

0 голосов
/ 20 сентября 2019

Вы можете сослаться на код ниже:

public async Task<string> GetTokenForApplicationAsync()
        {
            string signedInUserID = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
            string tenantID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid").Value;
            string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;

            // get a token for the Graph without triggering any user interaction (from the cache, via multi-resource refresh token, etc)
            ClientCredential clientcred = new ClientCredential(Startup.ClientId, Startup.AppKey);

            // initialize AuthenticationContext with the token cache of the currently signed in user, as kept in the token cache
            AuthenticationContext authenticationContext = new AuthenticationContext(Startup.AadInstance + tenantID, new ADALTokenCache(signedInUserID));
            AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenSilentAsync("https://database.windows.net/", clientcred, new UserIdentifier(userObjectID, UserIdentifierType.UniqueId));
            return authenticationResult.AccessToken;
        }

Вот пример веб-приложения , который интегрируется с Azure AD и получает токен доступа для вызова Microsoft Graph API.Просто замените GraphResourceId на https://database.windows.net/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...