Azure AD мультитенантное приложение - проверьте, авторизован ли пользователь использовать мое приложение - PullRequest
0 голосов
/ 12 апреля 2020

Я разработал веб-сайт, который интегрируется с Azure AD, используя asp. net и owin. Я зарегистрировал приложение в AD как приложение для нескольких арендаторов, а это значит, что все, у кого есть рабочая или школьная учетная запись, могут войти в мое приложение. Это нормально, и это то, что я хочу, но после аутентификации пользователя мне нужно проверить, авторизован ли авторизованный пользователь для использования моего приложения (зарегистрирован ли он как пользователь? Есть ли у него лицензия?) Что рекомендуется способ реализовать это? Должен ли я подключиться к событию SecurityTokenReceived промежуточного программного обеспечения openid connect и выполнить там проверку?

Notifications = new OpenIdConnectAuthenticationNotifications
            {
                SecurityTokenReceived = OnSececurityTokenReceived
            }

private Task OnSececurityTokenReceived(SecurityTokenReceivedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> context)
    {
        //check if this user is registered as a user of my app and has a valid license?;
        return Task.FromResult(0);
    }

Или есть лучший способ сделать это? Если это путь к go, как я справлюсь с этим, если пользователю не будет разрешено войти в мое приложение, должен ли я как-то прервать процесс входа в систему и перенаправить на страницу с ошибкой?

1 Ответ

0 голосов
/ 12 апреля 2020

Я нашел ответ сам. Да, это правильный подход, и если мне придется прервать процесс входа в систему, я сгенерирую исключение System.IdentityModel.Tokens.SecurityTokenValidationException («Вы не можете войти в это приложение»);

Нашел ответ здесь: https://www.microsoftpressstore.com/articles/article.aspx?p=2473126&seqNum=2

...