Когда вы получаете токен, подобный этому от 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.
какая библиотека/платформа ADAL вы используете? – HeidiJ
Не могли бы вы показать точные претензии в токене здесь? Вы можете разобрать его на этом [сайте] (https://jwt.io/). –
Спасибо за ссылку на 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 ", –