22 мая 2013, Киев Авторизация в приложениях SharePoint Станислав Выщепан SharePoint MVP Ай-Теко, Москва.

Презентация:



Advertisements
Похожие презентации
Msdevcon.ru#msdevcon. Создание приложений (Apps) для SharePoint 2013 в Облаке Станислав Выщепан Ай-Теко Марат Бакиров UMSOFT.
Advertisements

Единая система аутентификации Обзор решения Москва, 2012г.
AD/DC/DNS OnPrem LB WFE SQL AppSvr 80/ VPN Tunnel Cloud Svc Virtual Network Azure AD/DC/DNS.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Администрирование IIS 5, 6 сайт, виртуальный каталог, приложение, пул, рабочий.
О принципах гарантированной защиты информации в сервис- ориентированных системах ЗАО «ИВК», 2008 г. Лекшин Олег Сергеевич, ведущий инженер – специалист.
Artezio LLC Address: 3G Gubkina Str., suite 504, Moscow, Russia, Phone: +7 (495) Fax: +7 (495)
«Управление доступом к данным» Подготовила студентка 2 курса 10 группы ГМУ Филиппова Галина Валерьевна.
ДонНУ, кафедра КТ, проф.В.К.Толстых Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – аутентификация Из цикла лекций «Технологии.
Доступ в DB2 Белькова Евгения, программист отдела тестирования, группа DB2 Tools.
Windows Azure Active Directory Антон Видищев Azure MVP Team Edgar Onilne.
Служба каталогов Active Directory Дисциплина «Построение Windows-сетей» Сергеев А. Н. Волгоградский государственный социально-педагогический университет.
Авторское право © BIT Impulse. Все права защищены. Инструмент для бизнес-анализа Архитектура системы.
SharePoint Governance для разработчиков Станислав Выщепан, MVP.
22 мая 2013, Киев Рабочие процессы в SharePoint 2013 Илья Бойко.
Microsoft TechDays Александр Трофимов Microsoft Most Valuable Professional.
Администрирование информационных систем Начало работы с MS SQL Server 2000.
Windows ® Azure Platform. Проблемы безопасности в «облаке» Физическая безопасность Сети и изоляция Безопасность приложений Управление идентификацией пользователей.
e-Style ISP представляет новый сервис Unisync. Ваш виртуальный офис.
Microsoft TechDays Илья Бойко Разработчик SharePoint UMSOFT.
Top 10 возможностей ASP.NET 2.0. Выбор сделан на основе опросов разработчиков Top 10 – горячая десятка возможностей.
Транксрипт:

22 мая 2013, Киев Авторизация в приложениях SharePoint Станислав Выщепан SharePoint MVP Ай-Теко, Москва

Содержание Аутентификация приложений в SharePoint 2013 Запросы и предоставление разрешений Как работает OAuth

Проблемы безопасности SharePoint 2010 Код решений обладает полным доверием По умолчанию запускается с привилегиями текущего пользователя Разработчик может вызвать SPSecurity.RunWithElevatedPrivledges Код запускается под «пользователем» SHAREPOINT\SYSTEM, обладает всеми правами в SharePoint Код работает под учётной записью пула приложений Решения в Sandbox всегда запускаются с правами пользователя Активация фич происходит под учетной записью администратора Нет возможности повышения привилегий

Аутентификация и авторизация Аутентификация идентифицирует принципала Аутентификация создает токен безопасности SharePoint 2010 поддерживает аутентификацию пользователей SharePoint 2013 поддерживает аутентификацию пользователей и приложений Авторизация предоставляет доступ к ресурсам Авторизация основывается на access control lists (ACLs) ACLs могут быть настроены привилегированным пользователем SharePoint 2010 поддерживает настройку разрешений только для пользователей SharePoint 2013 поддерживает настройку разрешений для пользователей и приложений

Аутентификация пользователей в SharePoint 2013 Пользователи аутентифицируются набором утверждений (claims) В SharePoint 2013 работает также, как в SharePoint 2010 Токен пользователя описывается Security Assertion Markup Language (SAML) SAML токены создаются Security Token Service (STS) Note: SharePoint apps are not supported

Аутентификация приложений в SharePoint 2013 SharePoint 2013 поддерживает аутентификацию приложений Приложения являются принципалами в системе безопасности Аутентификация приложений создает возможность авторизации приложений Аутентификация приложений поддерживается только для CSOM и REST API Аутентификация приложений не поддерживается для веб-сервисов Три типа аутентификации приложений Внутренняя Внешняя, используя OAuth (Office 365 и может быть включено on-premise) Внешняя, используя S2S (для on premise)

Архитектура приложений SharePoint SharePoint-Hosted приложения Ресурсы приложения развертываются в SharePoint Создается сайт, называемый app web Приложение может иметь клиентский код (JavaScript) Приложение не может иметь серверный код Внешние (облачные) приложения Приложения разворачиваются на внешнем сервере Внешний сайт называется remote web Приложение может иметь клиентский код Приложение может иметь серверный код

Стартовая страница Каждое приложение должно иметь стартовую страницу SharePoint добавляет ссылку на приложение в Содержимое Сайта на host web Для SharePoint-Hosted приложении стартовая страница расположена в SharePoint Для облачные приложений стартовая страница находится в remote web

App Web App web при развертывании приложения App web создается как подсайт где установлено приложение SharePoint-Hosted приложения должны создавать app web Приложение должно иметь стартовую страницу Приложение может разворачивать объекты SharePoint (списки, custom action, workflow) Облачное приложение может создавать app web Большинство облачных приложений не будет создавать app web Приложения могут создать app web при необходимости

App Web Hosting Domain Страницы app web отдаются из отдельного домена Работает изоляция JavaScript кода на страницах приложения Позволяет аутентифицировать вызовы из app web URL app web состоит из 4 частей Имя тенанта: gandjustas Идентификатор экземпляра приложения: 4b5b001f544dc0 Домен SharePoint: sharepoint.com Имя приложения: MyFirstApp

Внутренняя аутентификация В каких сценариях используется? JavaScript вызовы со страниц в app web JavaScript вызовы со страниц в remote web с использованием cross domain library Серверные обращения из app web (в веб-частях на страницах) Как работает? Входящий вызов имеет SAML токен пользователя Вызов происходит в уникальном домене, связанном с приложением SharePoint определяет экземпляр приложения Не требуется писать код для создания и управления токенами безопасности

Демо

Хостинг приложений SharePoint-Hosted приложения Приложение разворачивается в app web в родительском сайте Provider-Hosted приложения Приложение разворачивается на удаленном сервере Разработчик заранее развертывает приложение Разработчик отвечает за изоляцию экземпляров приложений Autohosted приложения (только Office 365) Приложение разворачивается в Windows Azure Office 365 разворачивает remote web в момент установки приложения Office 365 обеспечивает изоляцию, но платит за это клиент

Provider-Hosted приложения Разработчик отвечает за хостинг приложения Приложение разворачивается на удаленном сервере Разработчик обеспечивает доступность и отказоустойчивость приложения Разработчик разворачивает базу и обеспечивает изоляцию данных

Autohosted приложения Office 365 отвечает за развертывание приложений Office 365 создает сайт в azure при установке приложения Office 365 может развернуть базу SQL Azure приложения Разработчик не заботится об изоляции и отказоустойчивости

Внешняя аутентификация В каких сценариях используется? Вызовы к SharePoint из серверного кода на remote web Как работает? Вызовы к SharePoint требуют access token с app identity Access token опционально может содержать user identity Вызов может обращаться к любой точке доступа CSOM or REST на любом сайте SharePoint Ваш код должен создавать и управлять токенами безопасности

Аутентификация и типы токенов Три варианта Только для CSOM и REST API

Аутентификация SharePoint 2013 Важно: только для CSOM или REST API вызовов

Демо

Содержание Аутентификация приложений в SharePoint 2013 Запросы и предоставление разрешений Как работает OAuth

Разрешения в SharePoint 2013 Разрешения пользователей SharePoint 2013 Нет изменений по сравнению с 2010 Разрешения даются на уровне коллекции сайтов Разрешения даются на определенные объекты в иерархии Разрешения могут быть изменены политиками на уровне веб-приложений SharePoint 2013 также поддерживает разрешения для приложений Управление сильно отличается от разрешений пользователей Разрешения не учитывают иерархию объектов Разрешения даются на заранее определенные области Области могут быть сайт, коллекция сайтов, тенант, поиск, BCS и другие

Политики разрешений SharePoint App + User Policy Приложение И пользователь должны иметь доступ к ресурсу (пересечение) Если разрешений не хватает – ошибка «нет доступа» App-only Policy Только приложению требуется доступ к ресурсу Приложение может повышать привилегии текущего пользователя Приложение может обращаться к SharePoint без контекста пользователя Поддерживается только для серверного кода User policy Не используется в приложениях SharePoint

Разрешения приложений Приложениям выдаются разрешения Разрешения приложений отличаются от разрешений пользователей Приложение само указывает необходимые разрешения Разрешения приложений даются по принципу «все или ничего» Разрешения приложений не используют иерархию Приложения имеют разрешения по-умолчанию Полный доступ на app web и ограниченный доступ на host web Приложение может указывать требуемые разрешения в манифесте Пользователь при установке дает разрешения если сам обладает ими Если разрешения не даны, то приложение не устанавливается

Требуемые разрешения

Запросы разрешений Область разрешения определяет Продукт (SharePoint\ProjectServer) Провайдер Целевой объект - на что даются разрешения Product Permission Provider Target Object Capability

App-Only разрешения Два основных сценария Выполнение действий с разрешениями выше, чем у текущего пользователя (повышение привилегий) Обращение к SharePoint без контекста пользователя Как это сделать Добавить AllowAppOnlyPolicy в AppManifest.xml Написать код для получения app only access token

Демо 27

Содержание Аутентификация приложений в SharePoint 2013 Запросы и предоставление разрешений Как работает OAuth

Управление разрешениями для приложений Вы можете дать логин и пароль пользователя приложению… Приложение может делать все что может пользователь И это даже работает Тем не менее... Дизайн приложений, основанный на учетной записи пользователя – плохая идея Система не может отличить пользователя от приложения Приложение может делать все что может пользователь (в том числе удалять контент) Для отбирания разрешения надо сбросить пароль (нужны права администратора)

OAuth Что такое OAuth? Спецификация для создания и управления app identity Кроссплатформенно и основано на веб-технологиях Используется в Facebook, Google and Twitter В SharePoint 2013 используется OAuth 2.0 – сильно отличается от OAuth 1.0 SharePoint 2013 поддерживает аутентификацию OAuth OAuth описывает как создавать access tokens OAuth используется в Office 365 по-умолчанию OAuth требует доступ Windows Azure Access Control Service (ACS) Remote web должен обращаться к ACS чтобы получить access tokens Access tokens необходимо передавать SharePoint для CSOM и REST API вызовов

Принципалы приложений Внешняя аутентификация требует принципалов приложений Принципалы приложений должны быть зарегистрированы в SharePoint и ACS Свойства принципалов приложений Client ID: GUID идентификатор приложения Client Secret: Ключ шифрования данных между приложением и ACS App Host Domain: Базовый URL, определяющий remote web Redirect URL: URL страницы для запроса разрешений «на лету»

OAuth Protocol Flow in Office

Класс TokenHelper Ваш код должен создавать\запрашивать токены Visual Studio генерирует класс TokenHelper для облачных приложений

Демо

Что такое Server-to-server (S2S) Trust Доверенное соединение между приложением и SharePoint Не требуется доступ к ACS Доверие между серверами устанавливается с помощью SSL сертификатов Приложение должно иметь приватный ключ сертификата Требуется запуск Security Token Service на серверах SharePoint On-premises Farm S2S STS SSL Cert Public/Private key pair (.pfx)

«Высоко доверенные» приложения Приложение само аутентифицирует пользователя Приложение передает идентификатор пользователя в SharePoint SharePoint доверяет тому что говорит приложение «Высокое доверие» не тоже самое что «Полное доверие» Полно доверенный код может делать что хочет, ему нельзя ничего запретить Высоко доверенный код работает в рамках выданных разрешений

Вопросы? Станислав Выщепан SharePoint MVP