Как реализовать неявный (или другой применимый) поток входа в систему для приложений GitHub OAuth в Xamarin.Forms - PullRequest
0 голосов
/ 02 декабря 2018

Проект, над которым я работаю, является проектом с открытым исходным кодом.Идентификатор клиента и секретный ключ приложения GitHub OAuth были жестко запрограммированы в файле config.json в каждой папке Assets проектов и имеют специфическую для платформы реализацию для их получения.Я использую Prism & Unity для навигации и контейнер DI для лучшей управляемости, способности к тестированию, слабой связи / высокой когезии и, более конкретно, для реализации принципов IoC.Поскольку я хочу хранить секретные ключи в секрете от сообщества открытого исходного кода для бета-версии, предварительного просмотра и производственной версии, я создал 4 различных приложения OAuth в GitHub для:

  1. ветка разработчика
  2. бета (только для тестирования внутри организации и разработчиков или участников)
  3. Предварительный просмотр (только для бета-тестеров в приложениях магазина)
  4. Production

Приложение OAuthпоскольку ветка dev предоставляется сообществу, а ключи динамически меняются во время сборки CI (с использованием конвейеров) за кулисами и развертывания их в Mobile Center. Мне нужно, чтобы ключи были представлены в ветви dev, чтобы сделать ее видимой для учащихсяи для моей документации.

Я выбрал эту стратегию, потому что нет такой функции, как User Secrets в secrets.json (доступно в ASP.NET Core ) доступен в Xamarin.Forms. Есть и другие библиотеки, но они мне не нравятся.

Если я хочу продолжить свою стратегию иВнедрите auth0, похоже, мне нужно создать 4 разные учетные записи в auth0, поскольку подключение к стороннему API не позволяет создавать подключения к нескольким приложениям из одного поставщика удостоверений.Что может быть громоздким, и я не хочу этого.

Поскольку у GitHub есть проблема безопасности с потоком входа OAuth (его нельзя определить в потоке OAuth, какое приложение использует его) в соответствии с их документацией API, я не хочу показывать это сообществу, потому чтоЯ не хочу терять контроль над этим.Если бы GitHub поддерживал OIDC для своего потока входа в API, это было бы здорово.

Из-за ограничений, которые я объяснил в предыдущем абзаце, я решил попробовать создать 4 учетные записи в auth0.но для реализации моей цели нужна конкретная платформа (например, Xamarin.Auth), потому что библиотека Nuget auth0 имеет ограничения для платформ.

Можете ли вы помочь мне с:

  • Реализация auth0 для конкретной платформы с использованием Xamarin.Auth !!! ИЛИ
  • Кроссплатформенная реализация для приложений GitHub OAuth с использованием Xamarin.Auth !!! *
...