Отличен ли токен доступа от ADAL.net от openid
Я новичок в openid и aad.
У меня есть API, который вызывает нижестоящий график API. Я следовал примеру ниже, https://joonasw.net/view/azure-ad-on-behalf-of-aspnet-core
Все работало нормально
Но интерфейс - это стороннее приложение, которое имеет доступ к моему API.
Они сказали, что используют открытое соединение для аутентификации пользователя. Они следуют потоку авторизации ( https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code), поэтому я ожидал, что у меня будет токен доступа JWT. Но когда я пытаюсь получить их токен доступа, он говорит, что не авторизован. Я пытался расшифровать их токен доступа с помощью jwt.ms, но это тоже не сработало.
Теперь мой вопрос: отличается ли токен доступа, полученный при аутентификации ADAL.net, от открытой аутентификации? Есть ли работа вокруг?
Любая помощь действительно ценится.
Заранее спасибо.
1 ответ
Чтобы прояснить ваш теоретический вопрос. Библиотека ADAL.NET может помочь вам получить токены из Azure AD, совместимые с протоколами OAuth 2.0 и OpenID connect.
Более конкретно для вашего случая... если токен доступа был получен с использованием потока предоставления кода авторизации, как вы упомянули в вопросе, и с правильными параметрами, он должен работать для вашего API.
Две вещи, чтобы проверить
Убедитесь, что маркер доступа был получен, указав ваш API в качестве ресурса, и только тогда он будет действительным для вашего API.
Вот пример запроса токена доступа, который также использует openid scope. Получить токены доступа
Ценность
resource
должно точно соответствоватьApp ID URI
для вашего веб-сервиса. Чтобы найти URI идентификатора приложения, на портале Azure щелкните Azure Active Directory, нажмите "Регистрация приложений", откройте страницу настроек вашего приложения и нажмите "Свойства".GET https://login.microsoftonline.com/{tenant}/oauth2/authorize? client_id=6731de76-14a6-49ae-97bc-6eba6914391e // Your registered Application Id &response_type=id_token+code &redirect_uri=http%3A%2F%2Flocalhost%3a12345 // Your registered Redirect Uri, url encoded &response_mode=form_post // `form_post' or 'fragment' &scope=openid &resource=https%3A%2F%2Fservice.contoso.com%2F // The identifier of the protected resource (web API) that your application needs access to &state=12345 // Any value, provided by your app &nonce=678910 // Any value, provided by your app
Возможно, вы получаете идентификационный токен и токен доступа, убедитесь, что вы используете правильный