SlideShare a Scribd company logo
SharePoint
Claims-Based Authentication
Станислав Выщепан
Краткое содержание







Что такое claims (утверждения)
Архитектура Claims-based Authentication
Настройка CBA в SharePoint
Источники утверждений (claims)
Программные методы работы с claims
Что такое утверждения (claims)
Аутентификация vs Авторизация


Аутентификация – проверка identity пользователя




Например паспорт гражданина РФ является его identity

Авторизация – проверка прав пользователя


Охранник в офисе, проверяет по паспорту в какой
организации вы работаете и дает вам ключ-карту для
доступа только на тот этаж, где располагается
организация
Что такое claims?



Паспорт гражданина РФ является его identity
Паспорт содержит множество атрибутов человека









Номер
ФИО
Дата рождения
Место рождения
итд…

Такой набор атрибутов, составляющий identity
пользователя, называется claims
Claims и Security Token


Паспорт гражданина содержит информацию об
«издателе»





Кем и когда выдан

Паспорт защищен от подделки
С точки зрения Claims Based Authentication паспорт
гражданина является Security Token
Claims и Security Token



Security Token, как и паспорт гражданина, состоит из
набора Claims, и защищен от подделки
Каждый claim имеет некоторое имя (тип), значение и
«издателя» (источник этого claim)
Доверие и аутентификация






Водительское удостоверение (ВУ) также является
identity человека, как и паспорт гражданина
В некоторых организациях принимают паспорт, но не
принимают ВУ (не проходит аутентификация)
Издателю ВУ (ГАИ) не доверяют, а издателю паспорта
(ФМС) доверяют
Аналогично в CBA приложение должно определить
каким издателям оно доверяет
Зачем это все
1.
2.

3.

Не хранить identity в приложении – упрощение
архитектуры, повышение безопасности
Федерация аутентификации – два непонятных слова
вместе возможность использовать уже
существующие источники
Стандартизация протоколов – повышение
доступности и интероперабельности
Архитектура CBA
Типовая картинка
Терминология






STS – Security Token Service – веб сервис, который
выдает Security Token по запросу
IP – Identity Provider – некоторая служба, выдающая
claims
RP – Relying Party – приложение, принимающее
claims
IP и RP имеют свои STS





IP-STS – выдает claims из некоторого хранилища
(«издателя»)
RP-STS – проверяет, фильтрует, преобразует и дополняет
claims
Стандарты


WS-Federation и WS-Trust




SAML – Security Application Markup Language –
язык разметки для Security Token




По префиксам WS- можно догадаться что описывают
протоколы веб-сервисов (STS)

На базе XML, что не удивительно

OAuth – идея та же, более легковесная
реализация, например для REST веб-сервисов


Актуальная версия 2.0
Библиотеки и компоненты


Windows Identity Foundation




DotNetOpenAuth




http://msdn.microsoft.com/ru-ru/library/ee748475.aspx

http://www.dotnetopenauth.net/

Azure Access Control Service



https://www.windowsazure.com/en-us/develop/net/howto-guides/access-control/
Может выступать в качестве RP-STS
Настройка CBA в SharePoint
Classic Mode vs Claims Mode


По-умолчанию веб-приложения создаются в classic
mode




Аутентификация в домене Windows

Можно переключить на CBA





При создании приложения
При расширении в дополнительную зону
В существующей конфигурации (нехорошая операция)



Между сервисами и между фермами только CBA



В claims mode немного усложняется использование
веб-сервисов
Архитектура CBA в SharePoint



SharePoint имеет свой RP-STS, называется
SecurityTokenService
SecurityTokenService поддерживает работу с




Локальным AD
Провайдерами FBA (ASP.NET Membership)
Доверенными IP



Можно указать несколько одновременно



Внутри SharePoint это всегда SPUser
Настройка FBA
Создать приложение с CBA, включить только windows
аутентификацию
Создать базу ASP.NET Membership с помощью
aspnet_regsql
Добавить разделы в web.config приложения, central
administration, STS (руками на каждой машине)
Включить FBA в приложении

1.
2.
3.
4.


Подробные описания




https://dplotnikov.wordpress.com/2011/08/31/%D0%BD%D0%B
0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D
0%B0-fba-%D0%B2-sharepoint-2010/
http://blogs.technet.com/b/speschka/archive/2009/11/05/config
uring-forms-based-authentication-in-sharepoint-2010.aspx
Настройка доверия


Чтобы добавить доверенного поставщика необходимо
1.
2.
3.
4.

Сертификат подписи Security Token
Realm (URN)
Адрес IP-STS для входа
Схема отображения claims
Настройка доверия


Шаги:
1.
2.
3.
4.
5.

6.
7.

Получить корневой сертификат от провайдера
Добавить сертификат в trusted root authority
Создать claim mapping, указав один из claim как identity
Создать Trusted Identity Provider
Создать или расширить веб-приложение с https и CBA
Добавить доверенный провайдер в качестве источника
claims
Дать права пользователю внешней системы
Настройка доверия











$root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
(“root.cer")
New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $root
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
(“cert.cer ")
New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert

$map = New-SPClaimTypeMapping -IncomingClaimType
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$map2 = New-SPClaimTypeMapping -IncomingClaimType
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role" IncomingClaimTypeDisplayName "Role" –SameAsIncoming
$ap = New-SPTrustedIdentityTokenIssuer -Name “Contoso ADFS" -Description
"SharePoint secured by SAML" -realm $realm -ImportTrustCertificate $cert ClaimsMappings $map,$map2 -SignInUrl "https://adfs.contoso.com/adfs/ls" IdentifierClaim "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
Источники утверждений (claims)
Доступные провайдеры


Azure Access Control



Выступает в качестве промежуточного звена
Поддерживает множество провайдеров:













LiveId
Google
Facebook
Yahoo
OpenId
Анонимная аутентификация по email
Другие WS-Federation сервисы

Поддерживает отображение claim

Недостаток один – стоит денег
Идеально подходит для сценария интернет-сайтов
Доступные провайдеры


ADFS – Active Directory Federation Services








SharePoint также умеет синхронизировать ADFS с
профилями пользователей
Недостатки:





Актуальная версия 2.0
Позволяет пользователям из одного домена
аутентифицироваться на сервисах в другом домене под своими
доменными учетными записями
Не передает пароли вне доменной сети

Сложно настраивать
Нужен AD

Идеально подходит для сценариев партнерских порталов в
организации
Доступные провайдеры


Live ID




Применимо только в одном случае:




Имеет WS-Federation точку доступа
Активное использование сервисов Microsoft на портале

Во всех остальных случаях лучше Azure Access
Control
Руководства по настройке


ADFS




LiveID




http://blogs.technet.com/b/speschka/archive/2010/07/30/c
onfiguring-sharepoint-2010-and-adfs-v2-end-to-end.aspx

http://www.wictorwilen.se/Post/Visual-guide-to-AzureAccess-Controls-Services-authentication-withSharePoint-2010-Index-Post.aspx

Azure Access Control


http://www.wictorwilen.se/Post/Visual-guide-to-Windows-LiveID-authentication-with-SharePoint-2010-part-1.aspx
ADFS и служба профилей





Настраивается как обычная синхронизация
http://bpmsharepoint.iquestint.com/2012/03/14/share
point-2010-synchronization-between-ad-and-userprofiles/
http://blogs.msdn.com/b/brporter/archive/2010/07/19/
trusted-identity-providers-amp-user-profilesynchronization.aspx
С2WTS & SSS


С2WTS Преобразует Security Token в Windows
Token для доступа к внешним системам




Например SQL Server

SSS – отображает входные учетные записи на
выходные


Нужно для доступа к внешним системам
Программные методы работы с
claims
Авторизация




IClaimsIdentity currentIdentity =
System.Threading.Thread.CurrentPrincipal.Identity
as IClaimsIdentity;
foreach (Claim claim in currentIdentity.Claims) { }
Только в UI коде
Получение SPUser







SPClaim c = new SPClaim(“claimType",
“claimValue",
ClaimValueTypes.String,
SPOriginalIssuers.Format(
SPOriginalIssuerType.TrustedProvi
der,
“Claim Provider Name")
);
string encodedClaim = c.ToEncodedString();
// Use encodedClaim as loginName
Web.EnsureUser(encodedClaim);
Claims providers









Есть возможность создавать классы, которые будут
дополнять входящие claims
Также claim provider расширяют people picker
Очень удобно использовать совместно с FBA
Полученные claims транслируются в исходящие
claims
Класс наследник SPClaimsProvider
http://msdn.microsoft.com/enus/library/ee537299.aspx
http://msdn.microsoft.com/enus/library/gg615945.aspx
Вызов claims-aware веб-сервисов из кода


SPChannelFactoryOperations.ConfigureCredentials<InterfaceType>
(client.ChannelFactory,
Microsoft.SharePoint.SPServiceAuthenticationMode.Claims);



SPChannelFactoryOperations.CreateChannelActingAsLoggedOnUser
<InterfaceType>(client.ChannelFactory, endpoint);



И много всего полезного в пространстве имен
Microsoft.SharePoint.Administration.Claims


http://msdn.microsoft.com/en-us/library/ee552954.aspx
Полезные ссылки


http://msdn.microsoft.com/enus/library/gg430136.aspx



http://blogs.msdn.com/b/ericwhite/archive/2010/06/1
8/consuming-a-claims-enabled-wcf-web-service-asan-sharepoint-2010-external-content-type.aspx



http://www.liquidmercurysolutions.com/whatwedo/kn
owhow/blog/Lists/Posts/Post.aspx?ID=2
Вопросы?

More Related Content

Similar to SharePoint Claims Based Auth

Программируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMПрограммируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EM
Cisco Russia
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Dmitry Evteev
 
Как заслужить доверие пользователей
Как заслужить доверие пользователейКак заслужить доверие пользователей
Как заслужить доверие пользователей
I2B 2011
 
Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»
SpbDotNet Community
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
Andrew Petukhov
 
Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.
Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.
Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.7bits
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Ontico
 
Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?
IT61
 
Dv w2k-sec-concepts
Dv w2k-sec-conceptsDv w2k-sec-concepts
Dv w2k-sec-concepts
trenders
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11Technopark
 
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Ontico
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_ru
mcroitor
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservices
scassau
 
Sergey Gordeychik, Application Security in real word
Sergey Gordeychik, Application Security in real wordSergey Gordeychik, Application Security in real word
Sergey Gordeychik, Application Security in real wordqqlan
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application Security
Vladimir Kochetkov
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Badoo Development
 
8204
82048204
8204
coinpaper
 
безопасность веб проектов сергей рыжиков
безопасность веб проектов   сергей рыжиковбезопасность веб проектов   сергей рыжиков
безопасность веб проектов сергей рыжиковMedia Gorod
 

Similar to SharePoint Claims Based Auth (20)

Программируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMПрограммируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EM
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
Как заслужить доверие пользователей
Как заслужить доверие пользователейКак заслужить доверие пользователей
Как заслужить доверие пользователей
 
Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
 
Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.
Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.
Стажировка-2014, занятие 6. Информационная безопасность и атаки на сервер.
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
 
Ci
CiCi
Ci
 
Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?
 
Dv w2k-sec-concepts
Dv w2k-sec-conceptsDv w2k-sec-concepts
Dv w2k-sec-concepts
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11
 
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_ru
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservices
 
Sergey Gordeychik, Application Security in real word
Sergey Gordeychik, Application Security in real wordSergey Gordeychik, Application Security in real word
Sergey Gordeychik, Application Security in real word
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application Security
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
 
8204
82048204
8204
 
безопасность веб проектов сергей рыжиков
безопасность веб проектов   сергей рыжиковбезопасность веб проектов   сергей рыжиков
безопасность веб проектов сергей рыжиков
 

More from Stas Vyschepan

Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...
Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...
Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...
Stas Vyschepan
 
Share point 2016 Что нового
Share point 2016 Что новогоShare point 2016 Что нового
Share point 2016 Что нового
Stas Vyschepan
 
PowerBI — новые возможности анализа данных в облаке
PowerBI — новые возможности анализа данных в облакеPowerBI — новые возможности анализа данных в облаке
PowerBI — новые возможности анализа данных в облаке
Stas Vyschepan
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScript
Stas Vyschepan
 
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Stas Vyschepan
 
Искусство управления SharePoint
Искусство управления SharePointИскусство управления SharePoint
Искусство управления SharePoint
Stas Vyschepan
 
SharePoint Code Quality
SharePoint Code QualitySharePoint Code Quality
SharePoint Code Quality
Stas Vyschepan
 

More from Stas Vyschepan (7)

Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...
Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...
Вычисление бета-коэффициента и ожидаемой ставки доходности капитала в модели ...
 
Share point 2016 Что нового
Share point 2016 Что новогоShare point 2016 Что нового
Share point 2016 Что нового
 
PowerBI — новые возможности анализа данных в облаке
PowerBI — новые возможности анализа данных в облакеPowerBI — новые возможности анализа данных в облаке
PowerBI — новые возможности анализа данных в облаке
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScript
 
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
 
Искусство управления SharePoint
Искусство управления SharePointИскусство управления SharePoint
Искусство управления SharePoint
 
SharePoint Code Quality
SharePoint Code QualitySharePoint Code Quality
SharePoint Code Quality
 

SharePoint Claims Based Auth

  • 2. Краткое содержание      Что такое claims (утверждения) Архитектура Claims-based Authentication Настройка CBA в SharePoint Источники утверждений (claims) Программные методы работы с claims
  • 4. Аутентификация vs Авторизация  Аутентификация – проверка identity пользователя   Например паспорт гражданина РФ является его identity Авторизация – проверка прав пользователя  Охранник в офисе, проверяет по паспорту в какой организации вы работаете и дает вам ключ-карту для доступа только на тот этаж, где располагается организация
  • 5. Что такое claims?   Паспорт гражданина РФ является его identity Паспорт содержит множество атрибутов человека       Номер ФИО Дата рождения Место рождения итд… Такой набор атрибутов, составляющий identity пользователя, называется claims
  • 6. Claims и Security Token  Паспорт гражданина содержит информацию об «издателе»    Кем и когда выдан Паспорт защищен от подделки С точки зрения Claims Based Authentication паспорт гражданина является Security Token
  • 7. Claims и Security Token   Security Token, как и паспорт гражданина, состоит из набора Claims, и защищен от подделки Каждый claim имеет некоторое имя (тип), значение и «издателя» (источник этого claim)
  • 8. Доверие и аутентификация     Водительское удостоверение (ВУ) также является identity человека, как и паспорт гражданина В некоторых организациях принимают паспорт, но не принимают ВУ (не проходит аутентификация) Издателю ВУ (ГАИ) не доверяют, а издателю паспорта (ФМС) доверяют Аналогично в CBA приложение должно определить каким издателям оно доверяет
  • 9. Зачем это все 1. 2. 3. Не хранить identity в приложении – упрощение архитектуры, повышение безопасности Федерация аутентификации – два непонятных слова вместе возможность использовать уже существующие источники Стандартизация протоколов – повышение доступности и интероперабельности
  • 12. Терминология     STS – Security Token Service – веб сервис, который выдает Security Token по запросу IP – Identity Provider – некоторая служба, выдающая claims RP – Relying Party – приложение, принимающее claims IP и RP имеют свои STS    IP-STS – выдает claims из некоторого хранилища («издателя») RP-STS – проверяет, фильтрует, преобразует и дополняет claims
  • 13. Стандарты  WS-Federation и WS-Trust   SAML – Security Application Markup Language – язык разметки для Security Token   По префиксам WS- можно догадаться что описывают протоколы веб-сервисов (STS) На базе XML, что не удивительно OAuth – идея та же, более легковесная реализация, например для REST веб-сервисов  Актуальная версия 2.0
  • 14. Библиотеки и компоненты  Windows Identity Foundation   DotNetOpenAuth   http://msdn.microsoft.com/ru-ru/library/ee748475.aspx http://www.dotnetopenauth.net/ Azure Access Control Service   https://www.windowsazure.com/en-us/develop/net/howto-guides/access-control/ Может выступать в качестве RP-STS
  • 16. Classic Mode vs Claims Mode  По-умолчанию веб-приложения создаются в classic mode   Аутентификация в домене Windows Можно переключить на CBA    При создании приложения При расширении в дополнительную зону В существующей конфигурации (нехорошая операция)  Между сервисами и между фермами только CBA  В claims mode немного усложняется использование веб-сервисов
  • 17. Архитектура CBA в SharePoint   SharePoint имеет свой RP-STS, называется SecurityTokenService SecurityTokenService поддерживает работу с    Локальным AD Провайдерами FBA (ASP.NET Membership) Доверенными IP  Можно указать несколько одновременно  Внутри SharePoint это всегда SPUser
  • 18.
  • 19. Настройка FBA Создать приложение с CBA, включить только windows аутентификацию Создать базу ASP.NET Membership с помощью aspnet_regsql Добавить разделы в web.config приложения, central administration, STS (руками на каждой машине) Включить FBA в приложении 1. 2. 3. 4.  Подробные описания   https://dplotnikov.wordpress.com/2011/08/31/%D0%BD%D0%B 0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D 0%B0-fba-%D0%B2-sharepoint-2010/ http://blogs.technet.com/b/speschka/archive/2009/11/05/config uring-forms-based-authentication-in-sharepoint-2010.aspx
  • 20. Настройка доверия  Чтобы добавить доверенного поставщика необходимо 1. 2. 3. 4. Сертификат подписи Security Token Realm (URN) Адрес IP-STS для входа Схема отображения claims
  • 21. Настройка доверия  Шаги: 1. 2. 3. 4. 5. 6. 7. Получить корневой сертификат от провайдера Добавить сертификат в trusted root authority Создать claim mapping, указав один из claim как identity Создать Trusted Identity Provider Создать или расширить веб-приложение с https и CBA Добавить доверенный провайдер в качестве источника claims Дать права пользователю внешней системы
  • 22. Настройка доверия        $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 (“root.cer") New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $root $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 (“cert.cer ") New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert $map = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming $map2 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" IncomingClaimTypeDisplayName "Role" –SameAsIncoming $ap = New-SPTrustedIdentityTokenIssuer -Name “Contoso ADFS" -Description "SharePoint secured by SAML" -realm $realm -ImportTrustCertificate $cert ClaimsMappings $map,$map2 -SignInUrl "https://adfs.contoso.com/adfs/ls" IdentifierClaim "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
  • 24. Доступные провайдеры  Azure Access Control   Выступает в качестве промежуточного звена Поддерживает множество провайдеров:           LiveId Google Facebook Yahoo OpenId Анонимная аутентификация по email Другие WS-Federation сервисы Поддерживает отображение claim Недостаток один – стоит денег Идеально подходит для сценария интернет-сайтов
  • 25. Доступные провайдеры  ADFS – Active Directory Federation Services      SharePoint также умеет синхронизировать ADFS с профилями пользователей Недостатки:    Актуальная версия 2.0 Позволяет пользователям из одного домена аутентифицироваться на сервисах в другом домене под своими доменными учетными записями Не передает пароли вне доменной сети Сложно настраивать Нужен AD Идеально подходит для сценариев партнерских порталов в организации
  • 26. Доступные провайдеры  Live ID   Применимо только в одном случае:   Имеет WS-Federation точку доступа Активное использование сервисов Microsoft на портале Во всех остальных случаях лучше Azure Access Control
  • 28. ADFS и служба профилей    Настраивается как обычная синхронизация http://bpmsharepoint.iquestint.com/2012/03/14/share point-2010-synchronization-between-ad-and-userprofiles/ http://blogs.msdn.com/b/brporter/archive/2010/07/19/ trusted-identity-providers-amp-user-profilesynchronization.aspx
  • 29. С2WTS & SSS  С2WTS Преобразует Security Token в Windows Token для доступа к внешним системам   Например SQL Server SSS – отображает входные учетные записи на выходные  Нужно для доступа к внешним системам
  • 31. Авторизация   IClaimsIdentity currentIdentity = System.Threading.Thread.CurrentPrincipal.Identity as IClaimsIdentity; foreach (Claim claim in currentIdentity.Claims) { } Только в UI коде
  • 32. Получение SPUser     SPClaim c = new SPClaim(“claimType", “claimValue", ClaimValueTypes.String, SPOriginalIssuers.Format( SPOriginalIssuerType.TrustedProvi der, “Claim Provider Name") ); string encodedClaim = c.ToEncodedString(); // Use encodedClaim as loginName Web.EnsureUser(encodedClaim);
  • 33. Claims providers        Есть возможность создавать классы, которые будут дополнять входящие claims Также claim provider расширяют people picker Очень удобно использовать совместно с FBA Полученные claims транслируются в исходящие claims Класс наследник SPClaimsProvider http://msdn.microsoft.com/enus/library/ee537299.aspx http://msdn.microsoft.com/enus/library/gg615945.aspx
  • 34. Вызов claims-aware веб-сервисов из кода  SPChannelFactoryOperations.ConfigureCredentials<InterfaceType> (client.ChannelFactory, Microsoft.SharePoint.SPServiceAuthenticationMode.Claims);  SPChannelFactoryOperations.CreateChannelActingAsLoggedOnUser <InterfaceType>(client.ChannelFactory, endpoint);  И много всего полезного в пространстве имен Microsoft.SharePoint.Administration.Claims  http://msdn.microsoft.com/en-us/library/ee552954.aspx