2017-01-04 1 views
1

Я использую auth0 для аутентификации. Я хочу получить всех пользователей, включая их роли. Я сгенерировал токен в auth0, и когда я пытаюсь выполнить его в Postman или скриптовом инструменте, иногда он дает роли, а иногда нет. То же самое происходит и в приложении.auth0 не возвращает информацию о ролях

Если я добавлю вручную в метаданные приложения в свойстве роли, как показано ниже, тогда информация идет.

{ 
    "authorization": { 
    "groups": [ 
     "Admins", 
     "Users" 
    ], 
    "roles": [ 
     "Admin" 
    ], 
    "permissions": [] 
    } 
} 

Но я заполняю, что если я изменю вкладку авторизации, это также должно отразиться здесь.

Ниже мой код,

var apiUser = new ManagementApiClient("<<Token>>", new Uri("https://<<Domain>>/api/v2")); 
IPagedList<User> allUsers = await apiUser.Users.GetAllAsync(); 

мне нужно очистить кэш в auth0, если да, то как?

ответ

1

На основании предоставленной информации кажется, что вы используете Auth0 Authorization extension для настройки информации о роли пользователя.

Если это так, вы должны заметить, что логика расширения выполняется во время входа means of a rule. Когда у вас установлено это расширение, у вас также должно быть правило для компаньона; в моей учетной записи это правило называется auth0-authz и должно быть одинаковым для вашего случая при условии версии 2.0 расширения.

Влияние этого заключается в том, что роли появляются на уровне пользователя во время входа в систему, поэтому при входе в систему пользователи будут видеть изменения в настроенных ролях.

Примечание: поскольку эта логика является частью правила, она будет выполняться только в контексте логина. Если пользователи добавляются или удаляются из группы, это будет отображаться только в пределах Auth0 после того, как этот пользователь снова войдет в систему (например: в пользовательской app_metadata или при вызове конечной точки/userinfo).

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


С другой стороны, если ваша проблема не в этом, просьба предоставить дополнительную информацию и, если возможно, шаги по воспроизведению. Например, информация о ролях отображается для одного пользователя, а не для другого, или она отображается для пользователя A в одном ответе, но если вы сделаете другой запрос, ответ не будет содержать информацию о роли для того же пользователя A?

+1

У меня такая же проблема. Я хорошо настроил расширение авторизации Auth0, и поэтому я могу видеть «роли» в пользовательском '/ userInfo' Management API, но не могу найти атрибут ролей в токене, который я получаю после входа в систему. Я также задал строку области видимости «scope:» открытые роли электронной почты ». –

+0

Для вашей справки я использую 'RS256' algo для шифрования токена, но я думаю, что это не имеет значения. –

Смежные вопросы