ПредишенСледващото

В повечето сценарии, не можете да използвате прости думи като AccessToken, като ключа за кеш, тъй като е необходимо надстройката да се съхранява уникални символи за всеки потребител и SharePoint ферма или район на клиентите. Ако добавката използва контекст знак поток. SharePoint предвижда специален ключ CacheKey. които можете да използвате, за да се разграничат кеширани маркери. Този раздел описва проблемите и начините за решаването им, ако добавката не използва контекст знак поток.

Кеширане токена за достъп в състояние на сесия за повечето сценарии. Ако дистанционното уеб-базирано приложение има достъп до другите услуги, които използват OAuth протокол (в допълнение към SharePoint), както и различни символи кеш за сигурност в държавната сесия, използват различни ключове кеш за маркерите. Например, вместо да се използва AccessToken SharePoint_AccessToken, Facebook_AccessToken, SAP_Gateway_AccessToken. (Ако не използвате държавна сесия, или друг начин на кеша, което автоматично разделя кешовете на всички потребители трябва също така да се отнасят ключовете за всеки потребител.)

Приложението може да отваряте няколко SharePoint ферми или клиентски области. В този случай, използвайте SharePoint домейна като част от първичния ключ кеша приложение ( "SharePoint_<мой_домен> .sharepoint.com_AccessToken ") или площта на стопанството или клиент (" SharePoint_ _AccessToken "), който може да се чете от означението за достъп. Моля, обърнете внимание, че кодът трябва да конвертирате Base64 кодиране маркер, за да го прочетете. За да направите това в управляван код файл TokenHelper (с разширение CS или VB) съдържа примерен код, който използва на места за имена класове Microsoft.IdentityModel.S2S.Tokens и System.IdentityModel.Tokens. Друг вариант, който е възможно, ако приложението използва контекстното знак поток, е описано в следващия параграф.

Ако mezhseansovy кеш, който използвате, също се използват множество приложения, кеш ключове трябва да се съпоставят приложения, потребителите и SharePoint работни пространства. Ключови кеш, предоставена в контекста на символа е уникален за всяко приложение, потребителите, и SharePoint работни пространства.

И накрая, ако си добавка в работещ SharePoint предизвикателства двете разрешения за изпитване за кандидатстване и проверка на потребителски разрешения, както и добавките, то ще има две различни означение за достъп. Затова се нуждаят от различни ключове кеш. Идентифициране на главния ключ кеш, просто добавете "_add-в-единствено" (само добавка) или "_add-в + потребител" (надстройка и потребителя).

Дръжте означение в бисквитка е безопасна. По-добре е да се избегне предаването на токена за достъп от браузъра.

Означението за прехвърляне на достъп в сървърни системи

Обработка на символите изтекъл

Примери за означения за достъп

Политика за потребителя и добавките

Площ SharePoint - GUID SharePoint Online площ клиент или местната SharePoint фермата за достъп, използвайки означение за достъп. Това действа като GUID идентификатор поле за издателя на маркер, в този случай - Azure ACS услуга.

Съкращение от "емитент" (издател). Това е една тема, която е създадена жетона. Формат: GUID издател @ област GUID SharePoint.

Уникален идентификационен номер на потребител, за които е издаден жетона. Форматът зависи от доставчика на самоличност. В този пример, продавачът - Microsoft Online. Ако е така, Active Directory, ID ще изглежда така: "S-1-5-21-2127521184-1604012920-1887927527-415149".

Предметът, който се опитва да получи достъп до една ферма или зона за SharePoint клиент. Формат: Заявление Client ID @ SharePoint регион.

Уникалната името на доставчика на самоличност, регистрирано в организацията IANA (Internet Организацията за присвояване на).

За изграждането инсталиран в SharePoint Online, определената стойност е обикновено в този пример.

За добавки, които са инсталирани на местното стопанство, обикновено местен доставчик на идентичност, като например "урна: офис: IDP: activedirectory".

Политика е само за добавката

контекст-мейл за потвърждение, използвайки тайната на добавката клиент.

Кеширане контекст знак или добив на актуализации маркер или някои други елементи и разделното им кеширане.

Използвайте маркери новини и друга информация, за да заявите означение за достъп от контрол на достъпа на услугите, и след това да го кешира.

Кеширане ключ CacheKey от контекст жетона.

Първите две проблемите е важно да се изпълняват преди потребителят се придвижва към друга страница или презареждане на текущата, така че маркерът ще бъдат загубени. Например, мрежата за кандидатстване ASP.NET образува тези задачи трябва да се изпълняват от Page_Load на метод (състояние, представени в код блок, който се изпълнява, ако искането не се изпраща обратно). В ASP.NET MVC приложение, тези задачи трябва да се извършват по метода на контролера по подразбиране.

Ако използвате управляван код, примерен код за някои от задачите, представени в SharePointContext и TokenHelper файлове (разширение CS или VB), които са включени в инструментите за програмисти на Microsoft Office за Visual Studio. Трябва само да изпълнява прости разговори TokenHelper членове на класа. Например, вашият код може да се справи с първата задача, с помощта на един ред:

Изчакват контекст знак или части от тях

Можете да кешира целия контекст на маркера или само част от сървър или клиент магазин. Например, тя включва маркер актуализация и някои други елементи, с което кодът става за означения за достъп. За по-лесно, в тази статия ще приемем, че сте кешира целия контекст на маркера.

Спомнете си за пореден път, тъй като това е много важно: да не се използва от страна на клиента за кеширане за означение за достъп. Тя може да се използва само за връзка с жетон.

опции за кеширане на една и съща страна на сървъра, както са изброени по-горе за маркер за достъп. Опции от страна на клиента да включват и бисквитка и скрита форма поле на HTML-страницата. В допълнение, можете да съхранявате контекст знак в сесията на кеш паметта и ключът CacheKey. получена от него, - от страна на клиента.

Ако приложението се обръща към SharePoint, след като излезете, не можете да използвате всяка сесия кеш, или от страна на клиента за кеширане. Това се дължи на факта, че жалбата трябва да имат достъп до знак ъпгрейд, за всеки случай изтича оригинални достъп символични дейности по време на работата, след като на сесията. В този сценарий, ние се нуждаем от стабилен (mezhseansovy) кеш, което се споделя от няколко потребители, зоните за SharePoint или приложения. Поради това, че кодът е да се използват ключовете кеш, които правят разлика между потребители, приложения и областта на SharePoint, както е описано по-горе в токен за достъп до раздел за кеширане. Можете да използвате специален ключ от контекста на кеш знак, както и за маркер за достъп. (Вж. Раздел представа за кеш ключ по-долу.)

Концепцията за ключов кеш

Ключови кеш - непрозрачен низ, който е уникален за комбинации от потребителя, потребителското име на издателя, на SharePoint добавка и ферма или SharePoint Online клиент. По-долу е формата му, преди криптиране, когато пространството - това GUID SharePoint или SharePoint Online клиент областта на местното стопанство.

ID_imeni_polzovatelya + "," + izdatel_ID_imeni_polzovatelya + "," + ID_prilozheniya + "," + област

Тъй като с един ключ от кеша на приложението може да кешира повече елементи в един кеш, като маркер за защита и контекст ключов знак кеш да се използва като база. Ако е необходимо към него в началото или в края на определен низ може да се добави, например AccessToken или ContextToken, за да се образува пълен ключ кеш. Друг вариант - да се създаде клас с различни свойства за елементите да се кешират, а след това да кешира обект от този тип. Има и трети вариант. в случай, че използвате база данни като кеш. Това включва използването на таблица с CacheKey колона и допълнителни колони за кеширани елементи (AccessToken, ContextToken и т. Д).

Разбира се, приложението не трябва да използвате на кеша за всички операции за кеширане. Обикновено знак кеш за кеширане контекст сесия жетона (или актуализиране на маркера от нея) - в база данни, както и ключ CacheKey - в бисквитка.

Получаването означение за достъп с използване контекст знак

За да получите означение за достъп, прилагането изпраща заявка директно до контрол на достъпа услугата. Искането включва три вида данни, извлечени от контекста на маркера, както и друга информация:

Заявление GUID подлежи на SharePoint.

GUID SharePoint ферма или SharePoint Online клиент район, който иска достъп до надстройката.

Приложението може да се получи зона клиент или SharePoint фермата по време на работа, вместо след изваждането му от контекст жетона. Ако използвате управляван код, за района, метод има TokenHelper.GetRealmFromTargetUrl. Стойността, която се кешират, така че кодът не се препредава разговора по мрежата, за да го изтеглите.

Първи нов контекст знак

client_id. SharePoint добавка в клиентски идентификационен номер.

контекст знак Пример

Твърдения ауд. бр. NBF и ехр са същите, както в причина за достъп (показано по-горе). Одобрение appctxsender. appctx. CacheKey. SecurityTokenServiceUri. refreshtoken isbrowserhostedapp и описани в таблицата по-долу.

Таблица 3. Изявления контекст знак и информация за тях

Ограничаване на достъпа до потребители на SharePoint само с помощта на контекстното означение

опресняване знак е включена в контекста на маркер, който се публикува на уеб приложение SharePoint услуга, когато го стартирате. актуализация Marker криптирана и SharePoint добавка не може да го разшифровате. Кодът него и други данни, които използва за получаване на ново означение за достъп, когато текущата изтече. С него също така е възможно да се получи на първия токен в контекст знак поток. (По време на това писание, продължителността на съществуването на маркер актуализация, издаден от контрола на достъп за услугата SharePoint, е 6 месеца, но това може да са се променили.)

Тъй символа е валидна само за няколко часа (сега - 12) и потребителят получава нов SharePoint добавка всеки път, когато стартирате в SharePoint, ъпдейти маркерни само в тези сценарии:

Членове открили дълго сесии надстройка, в който тя изпълнява SharePoint призовава в рамките на няколко часа (повече от 12) след старта.

надстройка дизайн позволява на потребителите да планират достъпа му до SharePoint, след като излезете.

Подкрепете проекта - споделете линка, благодаря!