Моя идея состояла в том, чтобы иметь одно приложение AD и предоставить каждому клиенту его / ее собственный секрет, предполагая, что я могу получить идентификацию клиента из JWT. Но я думаю, что лучше иметь отдельное приложение AD для каждого клиента.
я есть приложение Azure AD, и я сгенерировал два клиентских секрета. Я могу получить токен доступа JWT, используя каждый секрет (черезclient_credentials
предоставить) но можно ли также узнать по токену JWT, через какой секретный ключ клиента он был запрошен?
Если я проверяю возвращаемые токены JWT, некоторые поля полезной нагрузки всегда одинаковы (aud
, iss
и т. д.) и некоторые всегда разные (iat
, nbf
, aio
и т. д.), но, насколько я могу судить, нет информации, которая идентифицирует использованный секрет клиента.
Вот пример полезной нагрузки:
{
"aud": "https://graph.microsoft.com",
"iss": "https://sts.windows.net/e402c5fb-58e9-48c3-b567-741c4cef0b96/",
"iat": 1516886787,
"nbf": 1516886787,
"exp": 1516890687,
"aio": "Y2NgYEjJqF0stqv73u41a6ZmxPEvBgA=",
"app_displayname": "TravelAgencies",
"appid": "ee8cf944-bf6f-42cf-ae30-6060412416a1",
"appidacr": "2",
"e_exp": 262800,
"idp": "https://sts.windows.net/e402c5fb-58e9-48c3-b567-741c4cef0b96/",
"oid": "bc430bc6-d9fb-4fa0-87e5-8b8803fcb222",
"sub": "bc430bc6-d9fb-4fa0-87e5-8b8803fcb222",
"tid": "e402c5fb-58e9-48c3-b567-741c4cef0b96",
"uti": "1TgusyfGtECjErT0Kv4PAA",
"ver": "1.0"
}
На связанной ноте: каковыaio
, e_exp
а такжеuti
поля для? Я не могу найти информацию о них.