2016-06-21 5 views
0

Как создать запрос, в котором используется авторизация Saml или Google IDP? Я понимаю, что если я поставлю «acr_values ​​= idp: Google» в свой запрос, запрос будет маршрутизироваться через мой путь Idle Google. Точно так же, если я поставлю «acr_values ​​= idp: saml2p», он должен пройти через мой Saml Idp. Это другой путь? Сейчас запрос отправляется на localhost: 98575/connect/token.Идентификатор конфигурации ID ID IdentityServer

Вот мой текущий запрос:

POST /connect/token HTTP/1.1 
 
Host: localhost:98575 
 
Authorization: Basic SomethingEncrypted 
 
Cache-Control: no-cache 
 
Postman-Token: AGuid 
 
Content-Type: application/x-www-form-urlencoded 
 

 
grant_type=password&scope=customScope+openid+offline_access&[email protected]&password=SomePassword&acr_values=idp:Google

Вот отрывок из моего файла IdentityServer Starup.cs:

public static void ConfigureIdentityProviders(IAppBuilder app, string signInAsType) 

    { 
     var authServicesOptions = new KentorAuthServicesAuthenticationOptions(false) 
     { 
      SPOptions = new SPOptions 
      { 
       EntityId = new EntityId("http://sp.example.com") 
      }, 

      SignInAsAuthenticationType = signInAsType, 
      AuthenticationType = "saml2p", 
      Caption = "SAML2p", 
     }; 

     authServicesOptions.IdentityProviders.Add(new IdentityProvider(
      new EntityId("http://stubidp.kentor.se/Metadata"), 
      authServicesOptions.SPOptions) 
     { 
      LoadMetadata = true, 
     }); 

     app.UseKentorAuthServicesAuthentication(authServicesOptions); 

     var google = new GoogleOAuth2AuthenticationOptions 
     { 
      AuthenticationType = "Google", 
      Caption = "Google", 
      SignInAsAuthenticationType = signInAsType, 

      ClientId = "767400843187-8boio83mb57ruogr9af9ut09fkg56b27.apps.googleusercontent.com", 
      ClientSecret = "5fWcBT0udKY7_b6E3gEiJlze" 
     }; 
     app.UseGoogleAuthentication(google); 
+0

Я не понимаю, в чем проблема, можете ли вы отредактировать вопрос, чтобы быть более понятным, в чем проблема и чего вы пытаетесь достичь? –

+0

есть. Надеюсь, это прояснило это. Это было плохо сформулировано. На самом деле это неосведомленный вопрос. Как заставить запрос ударить моего желаемого IDP? Есть ли какая-то конфигурация пути, которую я не понимаю в IdentityServer, или просто положить acr_values ​​= idp: IDPName, как указано в https://identityserver.github.io/Documentation/docsv2/configuration/identityProviders.html – fowler

ответ

0

В acr_values ​​с "IDP: обув" используется только для конечной точки авторизации, а не конечной точки маркера. IOW, он используется только для автоматического перенаправления пользователя в браузере указанному поставщику внешних идентификаторов.

+0

Интересно. Это имело бы смысл, почему это не имело значения для того, что я делал. Как определить idp для аутентификации? Сценарий заключается в том, что я не хочу представлять пользователю несколько кнопок проверки подлинности. Я хочу иметь возможность программно определить, какой Idp отправит их на основе информации, имеющейся у меня в моей базе данных. Может быть, UserServiceBase? Спасибо за помощь! – fowler

+0

Значение, отправленное для idp, должно соответствовать схеме auth для зарегистрированного промежуточного программного обеспечения для проверки подлинности. –

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