Отличен ли токен доступа от ADAL.net от openid - PullRequest
1 голос
/ 19 марта 2019

Я новичок в openid и aad.

У меня есть API, который вызывает API нижестоящего Graph. Я следовал примеру ниже, 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 Ответ

0 голосов
/ 19 марта 2019

Чтобы прояснить ваш теоретический вопрос. Библиотека ADAL.NET может помочь вам получить токены из Azure AD, совместимые с протоколами OAuth 2.0 и OpenID connect.

Более конкретно для вашего случая ... если токен доступа был получен с использованием потока предоставления кода авторизации, как вы упомянули в вопросе, и с правильными параметрами, он должен работать для вашего API.

Две вещи для проверки

  1. Убедитесь, что токен доступа был получен с указанием вашего API в качестве ресурса, и только тогда он будет действительным для вашего API.

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

    Значение 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
    
  2. Возможно, выполучая идентификационный токен и токен доступа, убедитесь, что используете правильный

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