Advay Pandya Ответов: 1

Аутентификация на основе токенов с использованием ADFS


Всем Привет,

Я работаю с функциональностью для интеграции страницы входа ADFS с моим приложением.

Поток

Пользователь попытается зайти на страницу. Здесь система попытается аутентифицировать пользователя.

Система перенаправит пользователя на страницу входа в ADFS.

Пользователь введет регистрационную информацию. Если пользователь аутентифицирован, то он будет перенаправлен обратно в приложение с авторизованной информацией о токене.

Я сталкиваюсь с трудностями при чтении информации о токене, когда страница перенаправляется обратно.

Что я уже пробовал:

Я могу перенаправить страницу на страницу входа ADFS, а также могу перенаправить обратно в свою систему, если пользователь аутентифицирован с использованием приведенного ниже формата url:

https://adfs-domain-name/adfs/ls

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

ClaimsPrincipal claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;
bool IsAuthenticated = claimsPrincipal.Identity.IsAuthenticated;
int ClaimCount = claimsPrincipal.Claims.Count();


Здесь я получаю IsAuthenticated как false и ClaimCount как 0 результат.

Есть ли что-то неправильное в моем коде или способе подключения страницы входа ADFS ?

Кто-нибудь может помочь мне это исправить ?

Пожалуйста, дайте мне знать, если у вас есть какие-либо проблемы или вопросы, или если я что-то упускаю.

Graeme_Grant

Вы проводили какие-нибудь исследования в интернете? Я вижу, что есть много примеров и руководств, которые могут ответить на этот вопрос начинающих для вас:

проверка подлинности на основе маркеров asp.net с помощью служб ADFS - поиск в Google [^]

Advay Pandya

Привет Грэм,

Да, я и мой партнер по проекту исследуем это с последних 2 дней.
У нас есть несколько статей, в которых говорится, что объект класса "ClaimsPrincipal" будет работать для нашего сценария. После реализации многих поисковых запросов google я, наконец, разместил здесь свой пост.

Atlapure Ambrish

Вот статья, для которой она не предназначена asp.net но объясняет шаги..

http://blog.scottlogic.com/2015/03/09/OAUTH2-Authentication-with-ADFS-3.0.html

1 Ответов

Рейтинг:
2

Advay Pandya

Я сделал некоторые настройки в конфигурационном файле и теперь система собирается получить информацию о претензиях


<system.identityModel>  
    <identityConfiguration>  
        <audienceUris>  
            <add value="http://localhost:28503/" />  
        </audienceUris>  
        <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">  
            <trustedIssuers>  
                <add thumbprint="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234" name="YourSTSName" />  
            </trustedIssuers>   
        </issuerNameRegistry>  
        <certificateValidation certificateValidationMode="None" />  
    </identityConfiguration>  
</system.identityModel>  
<system.identityModel.services>  
    <federationConfiguration>  
        <cookieHandler requireSsl="false" />  
        <wsFederation passiveRedirectEnabled="true" issuer="http://localhost:13922/wsFederationSTS/Issue" realm="http://localhost:28503/" reply="http://localhost:28503/" requireHttps="false" />  
    </federationConfiguration>  
</system.identityModel.services>  



Здесь я получаю ниже ошибку:

"ID4175: эмитент токена безопасности не был признан IssuerNameRegistry. Чтобы принять токены безопасности от этого эмитента, настройте IssuerNameRegistry так, чтобы она возвращала действительное имя для этого эмитента."

Во всех статьях предлагается проверить информацию о сертификате (отпечаток большого пальца и имя субъекта)

Я должен дважды проверить имя субъекта и отпечаток большого пальца сертификата, чтобы они были правильными.

Может ли кто-нибудь помочь мне исправить то же самое ?

Я считаю, что после исправления ошибки я смогу получить информацию о претензиях.

Пожалуйста, посоветуйте.


Richard Deeming

Если вы хотите обновить свой вопрос, Нажмите зеленую ссылку "улучшить вопрос" в нижней части вашего вопроса.

НЕ опубликуйте обновление как "решение"!