Справочная информация:
Я успешно настроил пример кода этого сайта, используя MSAL для python . Этот пример работает с разрешениями Microsoft Graph API в Azure AD, просит пользователя дать согласие и получает ожидаемый результат, который выглядит примерно так:
{
"token_type": "Bearer",
"access_token": "eyJ0...",
"refresh_token": "OAQ...",
"id_token": "eyJ...",
...
"id_token_claims": {
"aud": "289...",
"iss": "https://login.microsoftonline.com/f645ad92-e38d-4d1a-b510-d1b09a74a8ca/v2.0",
"iat": 1559626249,
"nbf": 1559626249,
"exp": 1559630149,
"aio": "ATQ...",
"name": "Cloud IDLAB Basic User",
"oid": "9f4...",
"preferred_username": "idlab@msidlab4.onmicrosoft.com",
"sub": "4mB...",
"tid": "f64...",
"uti": "91H...",
"ver": "2.0"
}
}
Моя конфигурация такая же, как в примере кода, но с моими собственными Azure AD client_secret
и client_id
:
{
"authority": "https://login.microsoftonline.com/organizations",
"client_id": "my_client_id",
"scope": ["https://graph.microsoft.com/.default"],
"redirect_uri": "http://localhost:5000/getAToken",
"client_secret": "mysecret"
}
Цель:
Я надеюсь использовать только MSAL для аутентификации пользователя. В этом случае все, что мне нужно, это id_token
. Благодаря MSAL я могу использовать id_token_claims
из результата (см. Пример выше), который является проверенным и декодированным id_token
претензиями .
Вопрос:
Это правильный способ использовать MSAL для аутентификации пользователя? Мне не нужен access_token
, потому что я не хочу вызывать какие-либо другие API.
Мне кажется немного странным, что я делаю запрос, который включает в свой ответ 'access_token` для графа microsoft, но не выполняет вызов api графа (как это сделано в этом примере ADAL ).
Может быть совершенно законно, что MSAL возвращает все, что кому-то может понадобиться, независимо от того, используют ли они его. Я просто хочу быть уверен, что я правильно использую MSAL. Может быть, мой охват должен быть другим (например, мой client_id
, может быть, на основе комментариев в коде )?