2016-10-18 6 views
1

Мы осуществляем проверку подлинности Azure AD для нашего родного приложения, используя ADALОтсутствующие ObjectId в JWT возвращается по запросу Azure AD ADAL

У нас есть родное приложение проверку подлинности на Azure AD с помощью Адал и передать возвращенную JWT на нашем веб-приложение для проверки и входа в соответствующую учетную запись.

У нас возникла проблема в том, что JWT, возвращаемый с использованием ADAL, не содержит идентификатор объекта пользователя.

Мы предполагаем, что это связано с тем, как мы настроили наше собственное приложение Azure AD и/или параметры, которые передаем ADAL-запрос аутентификации.

Есть ли у кого-нибудь предложения по поводу того, что мы можем настроить неправильно.

+0

какая библиотека/платформа ADAL вы используете? – HeidiJ

+0

Не могли бы вы показать точные претензии в токене здесь? Вы можете разобрать его на этом [сайте] (https://jwt.io/). –

+0

Спасибо за ссылку на https://jwt.io/ Моллюски (необходимо разбить его на две части, иначе он слишком длинный): { "aud": "00000002-0000-0000-c000- 000000000000" , "ИСС": "https://sts.windows.net/39f8b586-1a6c-413e-9fd3-70b57a1d9fa0/", "IAT": 1476374822, "НСБ": 1476374822, "ехр": 1476378722, "акр": "1", "altsecid": "5 :: 10037FFE8DC424C2", "AMR": [ "PWD" ], "AppID": «635034ea-2fb2-4906-b3d4- 88a6c3549c1a ", " appidacr ":" 0 ", " e_exp ": 10800, " email ":" test.use [email protected] ", " family_name ":" User 69 ", " given_name ":" Test ", –

ответ

0

Когда вы получаете токен, подобный этому от Azure AD, он называется токеном «сквозной». Технически это означает, что пользователь, которого представляет токен, не имел присутствия в арендаторе, в котором произошла аутентификация. Контрольные признаки транзитного токена - это отсутствие требования oid, о существовании претензии idp, о существовании претензии altsecid и, самое главное, претензии idp, значение которой не соответствует заявке iss.

Сторонние приложения никогда не должны получать сквозные токены от Azure AD. В этом случае токен предназначен для приложения с ID 00000002-0000-0000-c000-000000000000, которое не является вашим приложением. Это диаграмма Microsoft или диаграмма AAD (я забыл, что). Вы должны никогда не когда-либо быть валидацией токенов, чья заявка aud не ваша заявка. В любой момент владелец этого приложения может изменить формат токена и полностью разорвать ваше приложение. Вместо этого вы должны использовать AppID URI вашего приложения в качестве параметра resource, который вы передаете ADAL, и отправить полученный токен вашему веб-сервису. У нас есть много примеров на aka.ms/aaddev, которые показывают вам, как создавать собственные веб-API.

С учетом сказанного, я не думаю, что это ваша проблема здесь. Похоже, вы подписываете пользователя против арендатора 39f8b586-1a6c-413e-9fd3-70b57a1d9fa0, арендатора «Mars Feature 3 Native». Вероятно, это значение, которое вы передаете параметру ADAL authority. Поэтому, когда вы подписываете [email protected], они передаются через арендатора Марса в ваше приложение (потому что токен не для вашего приложения). Вместо этого вы должны использовать арендатора 3836f4a1-67af-43f2-a675-f9f54899abe0, арендатора smartsheet365.onmicrosoft.com. Затем вы должны вернуться к обычным токенам пользователей от Azure AD.

+0

Возможно, мы неправильно поняли конфигурацию приложений Azure AD. У нас есть приложение с несколькими арендаторами, которое мы используем для аутентификации OAuth2 для нашего веб-приложения. Кроме того, мы создали собственное приложение Azure для собственного приложения через ADAL. Наше понимание заключалось в том, что мы должны это делать при использовании iOS ADAL. Это приложение с id 635034ea-2fb2-4906-b3d4-88a6c3549c1a арендатора 39f8b586-1a6c-413e-9fd3-70b57a1d9fa0 Следующий ответ будет содержать атрибуты этого приложения. –

+0

App атрибуты: ClientID: 635034ea-2fb2-4906-b3d4-88a6c3549c1a redirectURLs: X-msauth-Smartsheet: //com.smartsheet.smartsheet/ и msauth: // код/​​х-msauth-Smartsheet% 3A% 2F% 2Fcom.smartsheet.smartsheet ресурс: 00000002-0000-0000-c000-000000000000 власть: https://login.microsoftonline.com/39f8b586-1a6c-413e-9fd3-70b57a1d9fa0/oauth2/authorize ли это неправильный подход? –

+0

Если вы хотите подписаться на пользователей от любого арендатора Azure AD, используйте 'https://login.microsoftonline.com/common 'в качестве полномочий. – dstrockis

 Смежные вопросы

  • Нет связанных вопросов^_^