Nano Hash - криптовалюты, майнинг, программирование

Сценарий доступа к API в стиле Facebook с Azure ACS и OAuth 2.0: как реализовать авторизацию приложения?

Я создаю социальный веб-сайт, который предоставит миру REST API (WCF WebAPI), чтобы любой разработчик мог создать клиентское приложение для веб-сайта, интегрировать его с другими службами и т. д.

Я хотел бы реализовать механизм контроля доступа в стиле Facebook/Twitter для API. Чтобы разработчики регистрировали свои приложения в разделе для разработчиков на сайте, создавали ключ и использовали этот ключ приложения в рабочем процессе OAuth для получения доступа к API.

Поскольку в этом проекте я использую Azure, я рассматриваю возможность использования Azure ACS для упрощения процессов OAuth. Однако я не могу найти образец кода или руководство по авторизации приложений с помощью ACS.

Может ли кто-нибудь поделиться таким примером или, по крайней мере, дать мне направление для моего собственного исследования? Если я смогу добиться поведения Facebook/Twitter с помощью другой библиотеки OAuth (например, DotNetOpenAuth), это тоже будет круто.

Заранее спасибо.

30.09.2011

Ответы:


1

ACS — хороший выбор для такого рода вещей. Ваш сценарий в значительной степени представляет собой делегирование OAuth, которое поддерживает ACS.

Вы должны изучить ACS с образцом делегирования OAuth 2 в:

https://connect.microsoft.com/site1168/Downloads (называется Wif Oauth CTP-версия )

Обратите внимание, что в этом примере пользовательская проверка подлинности используется для проверки подлинности пользователя. Поскольку ACS обеспечивает единый вход с Idps, вместо этого вы можете использовать ACS здесь (например, с Facebook).

Если вы пойдете по этому пути, вы можете найти дополнительную информацию о том, как использовать пользовательскую страницу обнаружения домашней области в следующем образце:

http://msdn.microsoft.com/en-us/library/hh127794.aspx

Наконец, вам понадобится веб-страница, на которой ваши клиентские приложения будут управлять своими настройками. Для этого вам потребуется использовать службу управления ACS. Вы можете найти подробную информацию об использовании службы управления ACS в:

http://msdn.microsoft.com/en-us/library/gg185970.aspx

01.10.2011
  • Благодарю за ваш ответ. Я рассмотрел образец, на который вы любезно указали. Это вроде актуально, но в любом случае не очень полезно. Он содержит так много программного кода, особенно в части WebClient, что я удивляюсь, почему мне действительно нужен ACS (платный сервис!) вместе с WIF для выполнения OAuth. Это не делает вещи намного проще. Что мне действительно нужно, так это простой рабочий процесс на основе URL, описанный на этой странице developers.facebook.com. /docs/reference/dialogs/oauth Могу ли я реализовать аналогичный подход с ACS? 02.10.2011
  • Алекс, вам следует больше сосредоточиться на коде сервера авторизации, а не на веб-клиенте. Ответ на ваш вопрос - да. Но это будет не просто настройка на портале ACS. Вам нужно будет написать половину сервера авторизации OAuth, и вам нужно будет написать веб-интерфейс управления учетными записями для ваших клиентов. 02.10.2011
  • Да, я понимаю, что мне нужно будет написать код. Причина, по которой я так озабочен кодом веб-клиента, заключается в том, что я стремлюсь сделать доступ к API таким же простым, как это делается в Facebook: я просто перенаправляю пользователя на страницу в Facebook, где пользователь входит в систему и авторизует приложение. Когда он/она заканчивает, я просто получаю токен. Нет дополнительного обращения к серверу за кодом авторизации. Нет сложной логики по размеру клиента. Всего один запрос GET — и у меня есть токен. Я просмотрел несколько примеров кода ACS, документы и лабораторные работы, и никто не помог мне понять, как реализовать такой простой сценарий. 02.10.2011
  • Итак, я нашел несколько классов, которые обеспечивают кодирование/проверку/декодирование билетов SWT, и решил самостоятельно реализовать более простую версию рабочего процесса OAuth. Оказалось не так сложно, как казалось сначала :) 02.10.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..