Мне сложно найти ответы на сценарий, который я должен реализовать, используя DotNetOpenAuth
и конкретный поток, с которым мне приходится иметь дело.
На графике ниже я контролирую как сайт MVC, так и API. API - это мой сервер авторизации и мой сервер ресурсов.
Имя пользователя и поток паролей
Процесс довольно очевиден в случае, когда пользователь создал локальную учетную запись в моей системе, поскольку я имею дело с именами имени пользователя и пароля, чтобы зарегистрировать их на сайте, который затем я могу передать в мою конечную точку Token и, перейдите к HandleTokenRequest
моего сервера авторизации, чтобы получить токены доступа и обновить токены для моего клиента, чтобы затем начать доступ к ресурсам.
OpenID Flow
Поток, с которым я нахожусь в настоящее время, заключается в том, что пользователь решает войти на мой сайт, используя свои учетные данные Google (например). В этом случае я могу предоставить им токены доступа и обновить токены с моего собственного сервера авторизации в моем API?
Что бы я включил в запрос к моей конечной точке токена API?
Я написал свой собственный клиент API, который наследуется от класса WebServerClient
, который является частью библиотеки DotNetOpenAuth
.
Я видел, что есть интерфейс, предназначенный для обработки токенов под названием IServiceProviderTokenManager
, но который, по-видимому, используется в сценариях поставщика OpenID, а не в реализации клиента API как мой, поэтому я предполагаю, что мне нужно написать пользовательский класс для хранения и извлечения моих собственных токенов API на стороне клиента, но также хотел бы это подтвердить?
Стоит отметить, что и веб-сайт, и API имеют полный доступ к одной и той же базе данных безопасности, но только API имеет доступ к базе данных, где хранятся какие-либо ресурсы.