Blazor Webassembly, размещенный в AAD - как получить подмножество групп AD пользователя, когда пользователь является членом большого количества групп - PullRequest
0 голосов
/ 27 мая 2020

Я задал этот вопрос на ASP. Net Core репозиторий github, но я не думаю, что на мой запрос был дан достаточный ответ, поэтому разместите вопрос здесь. следуйте инструкциям здесь , чтобы получить группы AD пользователя в качестве утверждений. Однако пользователь является членом большого количества групп, и я вижу только одно утверждение «hasGroups».

Мой вопрос: каковы рекомендуемые лучшие практики / шаблоны, которым следует следовать в таких случаях, как я меня интересует получение только нескольких групп пользователей, соответствующих строковому шаблону. Где бы я даже написал код для выполнения этого фильтра?

Я знаю, как закодировать запрос api графика, но где / когда именно сделать этот вызов, неясно. И как только я извлекаю группы из Graph Api, как мне отразить информацию о группе в утверждениях токенов, чтобы клиентское приложение могло использовать обычный механизм авторизации, не зная подробностей о том, как были заполнены группы пользователей.

1 Ответ

0 голосов
/ 28 мая 2020

Я не уверен, что это рекомендуемый способ, но в документации здесь говорится о добавлении групп и ролей для использования утверждений объекта пользователя для Blazor. https://docs.microsoft.com/en-us/aspnet/core/security/blazor/webassembly/azure-active-directory-groups-and-roles?view=aspnetcore-3.1

Я не уверен, возможно ли это вообще, но в customuserfactory я бы попытался заменить

   foreach (var group in account.Groups)
    {
        userIdentity.AddClaim(new Claim("group", group));
    }

кодом, чтобы попробовать для вызова api графа (каким-то образом получить токен для вызова api, это часть, в которой я не уверен), проанализируйте группы и добавьте их в утверждения пользователя, а затем следуйте остальной части примера того, как включить это в механизм [авторизации].

опять же, я еще не очень хорошо знаком с blazor wasm, и мне не удалось найти никаких других документов, кроме этой, для добавления групп / ролей в механизм авторизации. Если у кого-то еще есть лучший способ сделать это или почему это не сработает, не стесняйтесь вмешиваться, но я надеюсь, что это может, по крайней мере, дать вам некоторые идеи и немного полезно.

...