Предотвратить вход в систему неавторизованному арендатору AAD? - PullRequest
0 голосов
/ 01 мая 2018

Есть ли способ запретить пользователям входить в свои собственные клиенты AAD? Например, разрешите вход в систему contoso.onmicrosoft.com, но не fabrikam.onmicrosoft.com.

У моего клиента есть строго контролируемая среда Azure, в которой работают некоторые серверы и приложения PaaS / SaaS. Пользователи, подключающиеся к этим серверам, используют различные службы Azure и некоторые SaaS (основной проблемой является PowerBI). Они обеспокоены тем, что пользователь может войти в систему с учетной записью, не принадлежащей компании (wahid@hotmail.com), а затем загрузить конфиденциальные данные в свое собственное рабочее пространство PowerBI.

Ответы [ 3 ]

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

Да, у вас есть несколько вариантов.

Вариант 1: приложения для одного арендатора

Если у вас есть возможность создавать приложения в арендаторе, от которого вы хотите принимать пользователей, вы можете пометить ваше приложение как доступное только этому арендатору (поле называется availableToOtherTenants). Служба токенов уведомит об этом только тех пользователей, у которых был создан доступ, авторизовать доступ.

Вариант 2: мультитенантное приложение с проверкой токена

Другой вариант - пометить ваше приложение как мультитенантное (то же поле, что и выше, просто установите true) и внедрить логику в свое приложение для проверки клиента, из которого был выдан токен.

В этом случае вам понадобится какой-то веб-сервис, который может безопасно проверять токены доступа ( пример кода .NET для этого ). Чтобы проверить арендатора, к которому принадлежит учетная запись пользователя, вам необходимо проверить поле iss. Это будет выглядеть примерно так:

"iss": "https://sts.windows.net/7fe81447-da57-4385-becb-6de57f21477e/"

, в котором GUID представляет идентификатор клиента. Это позволяет вашему веб-API иметь список разрешений или запретов на основе идентификаторов клиентов.

Дополнительная помощь

Вот отличное сообщение в блоге о проверке токена.

Документы разработчика Azure AD

Пример кода веб-API .NET

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

Для других: Даниил ответил мне за это. Короткий ответ, это не легко, вам нужно проверить тело ответа на наличие идентификатора клиента (или имени), а затем заблокировать его. Это также может привести к ухудшению работы пользователей, но это все, что мы можем сделать сегодня.

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

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

Если одна учетная запись была создана / приглашена одному арендатору, пользователь может просто войти в систему этого арендатора.

Для сценария, который вы описали, я предлагаю вам отозвать лицензию на продукт для этих пользователей. Если вы не назначите пользователю лицензию на продукт, пользователь не сможет использовать это приложение или не сможет увидеть его на панели «Мои приложения». Для других приложений SaaS / PaaS (веб-приложение) вы можете использовать назначение пользователей, чтобы разрешить определенным пользователям доступ к приложению.

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