#azure #authentication #jwt #authorization #single-sign-on
Вопрос:
Я создал мультитенантное приложение на портале Azure и отправил запрос на получение токена с идентификатором клиента приложения. Я использую следующий URL-адрес для получения токена в Microsoft Azure AD
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Отправка запроса get с параметрами client_id={Идентификатор клиента} и тип ответа=токен и область действия=пользователь.чтение openid профиль offline_access
Однако он возвращает access_token по заданному URL-адресу обратного вызова
http://localhost:8082/my-callback-url#access_token=EwCIA8l6BAAU6k7+XVQzkGyMv7VHB/h4cHbJYRAAATb8xtkaxI5xsVkWM6etOevj7ADopBYP1/hj+Uz+f1ZXH4lpykHkES1XBRBDNRDWwdqAA+rO2tFlMygiuusVx1EJKvqeV0rPPaNDNX9azpWGzS45BN6WmXKcxzX623enNYJOdo+YyTtaMipFapvABOsjHve1nVwfq9zqpmcldnIhXBeGefdQsgqmBNjeAyAbWzifLNtdz6Ybxnbt8nMY5adb82Z8tsfddfDdjrqk+u+85+xKXO9Xop3wdRvrVC9FM46RniA6H3NUKjOMTJAsX4IQLjGjXM4eq9o95lmSzF3zgFOXI1rYwkDRVsFsLOgP8tx0occDcuVPQgMalXR6JREDZgAACIJRWLYJGUcWWAKPx26NmroNGG1xEkPB1kLeGk0Hf8324YZs2InsGvQBFUMU4XzGGNdj0s5rLYKK2ictDstHV1daM241F1M5FiaX1qCgdRXneR9uPzUsSIBOzPJtT1dD4k+Dxp6Nr4hEnDPlymp5X0SR4v5vUA3aRhnsvmEzBVQDKR7cFvT7NSqVHSr/tTv/epdx81qgJcd6S6xF8oaMc7mn76jgU4YBn8jXYnTfGhUvhNZ8RJyyl71AqZrGr7JS2kStselZUgjavLqc9DdQD9cwPSWu1ketKmGgCjt6lVB3nlaw8Wxq+y2/YhPznTRFD2wj/vzDOdTzCcZ9mJV+KMGcXYQqBiGE0MF8+WA1EKSXniT5UiegTfJkvnsgtx6G6sdV0rzFM7Xa9d/dHNDfyV5oGedZtJXE1WCUrEIUZZm/HNhhQyh0WSG0gWm3vOY7NAs13vey9lcIQ6Fllu6W/Ty3HE4llFp/9a3lNcujmlxsCASFUOX6R54xPJMt1ipF5lh5uyZCPoUda46UsrCDnNRg0dhuoSVwJMDHzDbs4NXhX4nhTOze/9koz6p5Ao4DtJ20LqmcylZDoLxUhXIU5vvnBYpiHwanBt2E/rG+qVEQbRy/v9fhi0chY0XPzldIm/Lz2l0+0MpJ/4l53f9YTRLdEMD8X8Umi35ZvpK9arAqgdRkx4/oWG9m8sxOMY2eASetiAJaU8yjtETgHpBGJTXbDVDpNA1s5NGc9QC+rcSnGDV0BKIDYxBISR8TiJQVUaPqbNU1Mj3kGyQFnfS0jS83VGVfFCZ4cHkhDq/awLh2JrR0Ag==amp;token_type=beareramp;expires_in=3600amp;scope=User.Read openid profile
Как я могу проверить этот токен доступа? или как я могу вместо этого получить токен JWT?
Комментарии:
1. токен доступа-это jwt. вы можете просто получить токен из строки запроса. Какой язык программирования вы используете ? существует множество рамок для выполнения этой работы за вас.
2. Приведенный выше маркер в моем посте с вопросом не является JWT, как я его примерял jwt.io. Можете ли вы помочь мне, как это подтвердить?
Ответ №1:
Ваши прицелы таковы user.read openid profile offline_access
. Этот первый-область API Microsoft Graph. На самом деле это короткая рука для https://graph.microsoft.com/user.read
. Таким образом, вы получите маркер доступа, предназначенный для Microsoft Graph API.
Другие области, которые вы определили, влияют на маркер идентификатора (openid, профиль) или дают вам маркер обновления (offline_access).
Это означает, что вы не можете и не должны проверять токен. Только Microsoft Graph API должен проверять этот токен, поскольку он предназначен для него.
Если вам нужен маркер доступа для вашего API, вам необходимо использовать область, определенную в регистрации приложения API (раздел «Доступ к API»).