Как контролировать / устанавливать разрешения для одного пользователя при использовании Azure AD B2C - PullRequest
0 голосов
/ 02 мая 2018

У меня есть 1 SPA-приложение, которое использует другое WebApi. (ASP.NET Core) Оба работают в Azure, и я могу аутентифицировать пользователя в Azure AD B2C с неявным потоком OAuth 2.0

Теперь я спрашиваю себя, как я могу контролировать разрешения одного пользователя. (Удалить, прочитать и т. Д.) Нужно ли работать с претензиями? Нужно ли использовать API Graph на стороне сервера, чтобы проверить, есть ли у пользователя определенные разрешения? Могу ли я использовать области? Где я могу установить отношение <-> Область пользователя?

Я нашел несколько вопросов по SO, но я не понимаю, как это сделать правильно? Насколько я понимаю, я спрашиваю у провайдера аутентификации определенные области и получаю токен с этими областями, который затем может быть проверен API. Но как мне определить, какой пользователь может запрашивать какие области?

У меня действительно есть проблема, чтобы обернуть голову вокруг OAuth2 и разрешений. Надеюсь, мне здесь помогут.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

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

Затем вы можете выдать этот пользовательский атрибут в ИД и получить доступ к токенам или прочитать его с помощью API-интерфейса Azure AD Graph.

0 голосов
/ 02 мая 2018

К сожалению, для одного конкретного пользователя вы не можете назначать разрешения / области пользователю.

Поскольку Azure AD B2C не поддерживает роль приложения. Как правило, Azure AD B2C предназначен для всех пользователей, чтобы получить доступ к вашему приложению через свою учетную запись. Даже Azure AD B2C позволяет вам хранить пользователей и управлять ими, но он не может назначать разные области действия / разрешения разным пользователям. Несколько областей - это разрешения, предоставленные ресурсу. Несколько предоставленных разрешений будут разделены пробелом. Это не для назначения доступа пользователей.

Если это важно для вас, вы можете выразить эту идею в на этой странице Uservoice . Команда Azure рассмотрит его.

Надеюсь, это поможет!

...