2017-02-03 4 views
0

Я создаю прототип со следующим контекстом.ADFS + IdentityServer3 + Mobile + MVC

  • Два клиентских приложений (MVC & Mobile)
  • IdentityServer3 в качестве проверяющей стороны
  • ADFS 3.0 в качестве поставщика удостоверений
  • IdentityServer3.WsFederation плагин для оказания поддержки SAML

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

В моей предыдущей попытке использовалась конечная точка веб-API и ADFS «adfs/services/trust/13/usernamemixed». Это позволило мобильному устройству отправлять учетные данные в API, который затем аутентифицировал пользователя с использованием конечной точки ADFS. Затем он вернул токен JWT в мобильное приложение.

Мы должны получить токены SAML от Idp (может быть ADFS или другой Idp), но наши приложения не зависят от типа токена.

У меня есть два вопроса.

  1. IdentityServer3 не поддерживает доверие ws, используя указанную выше конечную точку (насколько я знаю), так какой правильный подход для этого сценария для входа в мобильный телефон?
  2. Необходим плагин WsFederation, так как IdentityServer3 может обрабатывать преобразование токена SAML в JWT для клиентских приложений.
+0

Как вы агностикны, если вам нужны жетоны SAML? –

+0

Мы можем использовать токен JWT или SAML. – user1424660

ответ

0

Во-первых, я бы не рекомендовал SAML для мобильных устройств (специально родных приложений), поскольку SAML предполагает, что клиенты являются браузерами. В мобильных приложениях он открывает браузер для проверки подлинности, который не самый лучший подход, который я чувствую. Я бы предложил использовать OpenID/Oauth для мобильных устройств.

Idp может поддерживать несколько протоколов входа в систему, таких как WS -Fed, SAML 2.0 или OAuth. Клиент может использовать соответствующий протокол.

Приходит к WS - Fed с IdentityServer3, существует промежуточное программное обеспечение OWIN, которое помогает в его достижении.

using Microsoft.Owin.Security.WsFederation; 

     app.UseWsFederationAuthentication(
        new WsFederationAuthenticationOptions 
         { 
          Wtrealm = "https://localhost:44309/core", //identityserver3 
          Wreply = "replyaddress", 
          MetadataAddress = "https://localhost/federationmetadata.xml", 
          AuthenticationType = "adfs", 
          Caption = "ADFS", 
          SignInAsAuthenticationType = "sometype" 
         }); 

Приведенный выше код приведет вас к экрану входа в ADFS, после успешной аутентификации, вы будете перенаправлены обратно на Wreply адресу, указанному выше, Retuns SAML 1.1 ответ. Вам нужно разобрать его и использовать.

Смежные вопросы