O365 MS Graph Унифицированный токен API-интерфейса
У меня есть два вопроса об использовании токенов и их истечении:
1) о секретном коде пользователя для приложения
Мне нужен секретный код для аутентификации. При создании секретного кода в приложении его можно определить по истечении одного или двух лет. Моя цель - приложение, которое пользователь устанавливает, настраивает, и его можно "забыть". Но это истечение срока может означать, что приложение начнет сбой через год, это правильно? Пользователь начнет получать ошибки токена, и ему придется заново настроить приложение (сгенерировать новый секретный ключ и пройти аутентификацию с ним). Могу ли я узнать об истечении срока действия секретного ключа, чтобы я мог настроить уведомление для пользователя ДО того, как он истечет? Я хотел бы сделать это, чтобы приложение перестало работать внезапно.
2) аутентификация клиента выполняется в два этапа:
- первый: идентификатор клиента приложения + секретный ключ клиента + источник + аутентификация пользователя = код
- два: идентификатор клиента приложения + секретный ключ клиента + код = токен + обновить токен
Я обнаружил, что если я сделаю первый шаг и захочу выполнить второй шаг позже, срок действия "кода" первого шага может истечь. Я думал, что срок действия "кода" не истек, но я не могу найти никакой документации по этому поводу. Это правильно, что второй шаг должен быть сделан сразу после первого шага?
1 ответ
1) Если это веб-сервис, вы можете использовать OAuth 2.0 Client Credentials Grant Flow . Из соображений безопасности я бы предложил, чтобы вы могли периодически поддерживать / обновлять секретный ключ, продолжительность секретного ключа может составлять один или два года. Если секретный ключ скомпрометирован, необходимо сгенерировать новый, и все авторизованные приложения должны быть обновлены с использованием нового секретного ключа клиента.
2) Вы можете нажать здесь для получения подробной информации о том, как использовать OAuth 2.0 для аутентификации. В ответе токена доступа между сервисами вы получите информацию expires_in(срок действия токена доступа) и expires_on(время истечения срока действия маркера доступа). Вы должны написать свой код, чтобы предвидеть вероятность того, что предоставленный токен может больше не работать, и запросить новый.