Привет! Я реализую авторизацию на основе групп для моего веб-API. У меня есть клиентское приложение чванство. Через swagger я вхожу в систему и вызываю веб-API. В веб-API я хочу реализовать авторизацию на основе групп через граф Microsoft. Когда я регистрируюсь через чванство, я получаю один токен и перехожу к своим вебапам. Если я не ошибаюсь, сейчас мне понадобился один токен для вызова графа Microsoft. Так можно ли использовать тот же токен для вызова графа Microsoft? Я запутался и внедрил поток учетных данных клиента. Клиентский поток учетных данных получит токен для приложения (здесь пользователь, вошедший в токен, не имеет ничего общего).
public static async Task<GraphServiceClient> GetGraphServiceClient()
{
// Get Access Token and Microsoft Graph Client using access token and microsoft graph v1.0 endpoint
var delegateAuthProvider = await GetAuthProvider();
// Initializing the GraphServiceClient
graphClient = new GraphServiceClient(graphAPIEndpoint, delegateAuthProvider);
return graphClient;
}
private static async Task<IAuthenticationProvider> GetAuthProvider()
{
AuthenticationContext authenticationContext = new AuthenticationContext(authority);
ClientCredential clientCred = new ClientCredential(clientId, clientSecret);
// ADAL includes an in memory cache, so this call will only send a message to the server if the cached token is expired.
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(graphResource, clientCred).ConfigureAwait(false);
var token = authenticationResult.AccessToken;
var delegateAuthProvider = new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token.ToString());
return Task.FromResult(0);
});
return delegateAuthProvider;
}
Ниже код вернет все группы.
GraphServiceClient client = await MicrosoftGraphClient.GetGraphServiceClient();
var groupList = await client.Groups.Request().GetAsync();
но мое требование получить текущую подписку в группе пользователей. Так может кто-нибудь помочь мне, какой поток я должен использовать и только в приведенном выше коде Можно ли получить группу текущих пользователей? Может ли кто-нибудь помочь мне понять их и правильно реализовать? Любая помощь будет принята с благодарностью. Спасибо