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

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

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

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

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

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

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

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

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

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

0 ответов

Другие вопросы по тегам