Внимание! |
---|
Не выбирайте в контекстном меню проекта службы STS ASP.NET команду "Добавить ссылку на службу STS...". Это приведет к перезаписи метаданных службы STS. |
В Visual Studio откройте меню "Файл" и выберите "Создать", "Веб-сайт". Выберите пункт "Веб-сайт службы STS ASP.NET".
В файле web.config можно заметить ряд отличий от файла web.config для типичного веб-сайта ASP.NET.
- В этот файл добавлены указанные ниже
параметры приложения.
Копировать код <appSettings> <add key="IssuerName" value="PassiveSigninSTS"/> <add key="SigningCertificateName" value="CN=STSTestCert"/> <add key="EncryptingCertificateName" value=""/> </appSettings>
- Всем пользователям предоставляется доступ к
метаданным федерации. В метаданных федерации содержатся сведения об
открытом ключе сертификата для подписи маркера, конечных точках,
предоставляемых службой STS, и выданных утверждениях.
Копировать код <location path="FederationMetadata"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
- Элемент
<system.Web>/<assemblies>
содержит ссылку на сборку Microsoft.IdentityModel.dll:
Копировать код <add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
- Выбор проверки подлинности на основе форм и
страницы входа.
Копировать код <authentication mode="Forms"> <forms loginUrl="Login.aspx" protection="All" timeout="30" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" /> </authentication> <!-- Deny Anonymous users. --> <authorization> <deny users="?" /> </authorization>
- Добавлена поддержка трассировки; чтобы ее
включить, раскомментируйте соответствующий блок. Дополнительные
сведения см. в разделах Трассировка WIF и
Инструкции:
включение трассировки.
Копировать код <!-- Раскомментируйте следующие строки, чтобы включить трассировку WIF: WIFTrace.e2e. Откройте файл трассировки с помощью средства SvcTraceViewer.exe (входит в состав пакета SDK для WCF корпорации Майкрософт) или средства просмотра XML. Сведения о включении трассировки WCF см. в MSDN. --> <!--<system.diagnostics> <sources> <source name="Microsoft.IdentityModel" switchValue="Verbose"> <listeners> <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="WIFTrace.e2e" /> </listeners> </source> </sources> <trace autoflush="true" /> </system.diagnostics>-->
Откройте файл CustomSecurityTokenService.cs в папке App_Code.
- Обновите строку
static readonly string[] PassiveRedirectBasedClaimsAwareWebApps
, включив в нее URL-адреса приложений проверяющей стороны, для которых данная служба STS будет выдавать маркеры.
- Добавьте в переопределенный метод
GetOutputClaimsIdentity утверждения, необходимые приложению
проверяющей стороны от службы STS, а также настраиваемые
утверждения, которые должна выдавать служба STS.
Ниже перечислены обязательные методы, реализованные в файле CustomSecurityTokenService.cs.
- GetScope. Этот метод получает интерфейс IClaimsPrincipal
вызывающей стороны и входящий маркер безопасности запроса и
возвращает конфигурацию для запроса выдачи маркера, представленную
классом Scope.
В этом методе можно нормализовать адрес проверяющей стороны и
выбрать ключи для подписи и шифрования. Как правило, маркеры
безопасности шифруются таким образом, чтобы их могла прочитать
только проверяющая сторона.
- GetOutputClaimsIdentity. Этот метод получает интерфейс
IClaimsPrincipal
вызывающей стороны, входящий маркер безопасности запроса и объект
Scope,
возвращаемый методом GetScope, и возвращает объект IClaimsIdentity,
который будет включен в выданный маркер. Это позволяет определить,
какие утверждения включены в маркер.