Я чувствую, что принимаю здесь сумасшедшие таблетки. Обычно в сети всегда есть миллион библиотек и образцов для любой конкретной задачи. Я пытаюсь реализовать аутентификацию с помощью «учетной записи службы» Google с помощью веб-токенов JSON (JWT), как описано здесь .
Однако есть только клиентские библиотеки на PHP, Python и Java. Даже поиск примеров JWT вне аутентификации Google, в концепции JWT есть только сверчки и черновики. Неужели это такая новая и, возможно, проприетарная система Google?
Пример java, наиболее близкий к интерпретации, выглядит довольно интенсивно и устрашающе. В C # должно быть что-то, с чего я мог бы хотя бы начать. Любая помощь с этим была бы замечательной!
Ответы:
Спасибо всем. Я нашел базовую реализацию Json Web Token и расширил ее с помощью Google. Я до сих пор не доработал это полностью, но там 97%. Этот проект потерял обороты, так что, надеюсь, это поможет кому-то другому получить хорошую фору:
Примечание. Изменения, которые я внес в базовую реализацию (не помню, где я ее нашел):
А затем мой класс JWT для Google:
источник
После того, как после первоначального вопроса прошли все эти месяцы, стоит отметить, что Microsoft разработала собственное решение. См. Http://blogs.msdn.com/b/vbertocci/archive/2012/11/20/introduction-the-developer-preview-of-the-json-web-token-handler-for-the-microsoft-net -framework-4-5.aspx для подробностей.
источник
Я никогда не использовал его, но на NuGet есть реализация JWT.
Пакет: https://nuget.org/packages/JWT
Источник: https://github.com/johnsheehan/jwt
Совместимость с .NET 4.0: https://www.nuget.org/packages/jose-jwt/
Вы также можете перейти сюда: https://jwt.io/ и нажать «библиотеки».
источник
Вот рабочий пример:
http://zavitax.wordpress.com/2012/12/17/logging-in-with-google-service-account-in-c-jwt/
Собирать разбросанные по сети осколки пришлось довольно долго, документы довольно неполные ...
источник
Это моя реализация (Google) JWT Validation в .NET. Он основан на других реализациях в gists на Stack Overflow и GitHub.
Обратите внимание, что для его использования вам необходимо добавить ссылку на пакет NuGet
System.Net.Http.Formatting.Extension
. Без этого компилятор не распознаетReadAsAsync<>
метод.источник
IssuerSigningKeys
еслиIssuerSigningKeyResolver
есть?Взгляните на клиентскую библиотеку Google для .NET .
источник
Лучше использовать стандартные и известные библиотеки, а не писать код с нуля.
Используя эти библиотеки, вы можете сгенерировать токен JWT и подписать его с помощью RS256, как показано ниже.
ps: закрытый ключ RSA должен иметь следующий формат:
----- BEGIN RSA PRIVATE KEY ----- {значение в формате base64} ----- END RSA PRIVATE KEY -----
источник
Вот еще один рабочий пример только для REST для учетных записей служб Google, которые получают доступ к пользователям и группам G Suite , аутентифицируясь через JWT . Это стало возможным только благодаря отражению библиотек Google, поскольку документация Google по этим API ужасна . Любому, кто привык писать код в технологиях MS, будет сложно понять, как все работает вместе в сервисах Google.
источник
Вот список классов и функций:
источник