Войдите в мой API, используя Azure AD JWT (id_token) - PullRequest
0 голосов
/ 13 апреля 2020

Мое клиентское приложение использует Azure объявление для аутентификации, но для авторизации пользователя (проверьте, разрешено ли пользователю использовать мое приложение) мне нужно go через мой REST API. Можно ли с точки зрения безопасности создать конечную точку в моем REST API, где я могу опубликовать JWT и проверить его, а затем вернуть access_token, который используется для дальнейших вызовов API? Я разработчик как клиентского приложения, так и остальных API, но только клиентское приложение зарегистрировано в Azure AD Login flow

Это выглядит нормально? Или есть лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Как я понимаю, REST API - это identity provider (IDP) и authorization provider (поставщик AuthZ) для себя: он аутентифицирует пользователей, выдает токены и хосты API, защищенные этими токенами.

Я бы скажем, что вы хотите потреблять REST API, используя access_tokens, выданный REST API AuthZ provider и AzureAD AuthZ provider. Вы можете сделать это следующим образом:

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

В вашем случае вы можете использовать поток On-Behalf-Of, зарегистрировать клиентское приложение, веб-API среднего уровня и нисходящий веб-API в Azure AD.

Предположим, что пользователь был аутентифицируется в приложении с использованием потока разрешения кода авторизации OAuth 2.0 или другого потока входа в систему. На этом этапе у приложения есть токен доступа для API A (токен A) с заявками пользователя и согласием на доступ к веб-API среднего уровня (API A). Теперь API A необходимо выполнить аутентифицированный запрос к нижестоящему веб-API (API B).

enter image description here

Подробнее см. - Идентификационная платформа Microsoft и OAuth 2.0 On-Se-от-Flow .

...