найти URL-адрес входа в систему

Я хочу реализовать onelogin concpet.

У меня есть приложение APP-A1, и оно содержит ссылку на другое приложение APP-A2

Когда пользователь вошел в мое приложение APP-A1, когда пользователь нажимает ссылку APP-A2 *

Он не должен снова запрашивать логин.

Я нашел ниже URL

https://developers.onelogin.com/saml/c-and-aspnet

Я предполагаю, что когда пользователь нажимает ссылку APP-A2, должен запускаться приведенный ниже код и перенаправляться на idp_sso_target_url

using OneLogin.Saml;

  public partial class _Default : System.Web.UI.Page
  {
      protected void Page_Load(object sender, EventArgs e)
      {
          AccountSettings accountSettings = new AccountSettings();

          OneLogin.Saml.AuthRequest req = new AuthRequest(new AppSettings(), 
          accountSettings);

          Response.Redirect(accountSettings.idp_sso_target_url + "?SAMLRequest=" +
              Server.UrlEncode(req.GetRequest(AuthRequest.AuthRequestFormat.Base64)));
      }
  }




public class AccountSettings
{
    public string certificate = "-----BEGIN CERTIFICATE-----\nMIIBrTCCAaGgAwIBAgIBATADBg
    EAMGcxCzAJBgNVBAYTAlVTMRMwEQYDAQQIDApD\nYWxpZm9ybmlhMRUwEwYDVQQHDAxTYW50YSBNb25pY2Ex
    ETAPBgNVBAoMCE9uZUxv\nZ2luMRkwFwYDVQQDDBBhcHAub25lbG9naW4uY29tMB4XDTEwMDMwOTA5NTgzNF
    oX\nDTE1MDMwATA5NTgzNFowZzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3Ju\naWExFTATBgNVBA
    cMDFNhbnRhIE1vbmljYTERMA8GA1UECgwIT25lTG9naW4xGTAX\nBgNVBAMMEGFwcC5vbmVsA2dpbi5Ab20w
    gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBANtmwriqGBbZy5Dwy2CmJEtHEENVPoATCZP3UDESRDQmXy
    9Q0Kq1lBt+KyV4\nkJNHYAAQ9egLGWQ8/1atkPBye5s9fxROtf8VO3uk/x/X5VSROEIrhFISGmKUnVXa\nUh
    LFIXkGSCAIVfoR5S2ggdfpINKUWGsWS/lEzLNYMBkURXuVAgMBAAEwAwYBAAMB\nAA==\n-----END CERTI
    FICATE-----";

    public string idp_sso_target_url = "https://app.onelogin.com/saml/signon/12345";
}

На странице APP-A2 должна быть указанная ниже база кода, чтобы аутентифицировать входящий ответ и позволить пользователю войти в приложение.

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // replace with an instance of the users account.
        AccountSettings accountSettings = new AccountSettings();

        OneLogin.Saml.Response samlResponse = new Response(accountSettings);
        samlResponse.LoadXmlFromBase64(Request.Form["SAMLResponse"]);

        if (samlResponse.IsValid())
        {
            Response.Write("OK!");
            Response.Write(samlResponse.GetNameID());
        }
        else
        {
            Response.Write("Failed");
        }
    }
}

Если мое предположение верно, где я должен получить URL-адрес в учетной записи разработчика, спасибо


person Md. Parvez Alam    schedule 24.03.2017    source источник


Ответы (1)


В SAML есть 2 участника: - Поставщики удостоверений. Где аутентифицируются пользователи. - Поставщики услуг. Защитите приложения и перенаправьте на IdP, когда пользователь хочет войти в приложение.

В вашем случае вам необходимо добавить поддержку SAML в APP-A1 и APP-A2 (превратив их в поставщиков услуг) и подключить их к поставщику удостоверений.

Службам Peoviders необходимо отправить AuthNRequest (первый код, который вы упомянули) на URL-адрес SSO IdP.

А также необходимо иметь службу потребителей утверждений (URL-адрес SP ACS, второй код, который вы упомянули), чтобы получать и обрабатывать ответ SAMLResponse.

Если вы используете Onelogin в качестве поставщика удостоверений и у вас есть учетная запись разработчика, вы сможете перейти в «Приложения»> «Добавить приложение», а затем найти «SAML Test Connector».

В разделе «Конфигурация» вы должны предоставить информацию о SP, а в разделе SSO вы получите данные IdP ... вы можете создать один коннектор приложения для каждого SP. Дополнительная информация на https://support.onelogin.com/hc/en-us/articles/202673944-How-to-Use-the-OneLogin-SAML-Test-Connector

ВАЖНО: набор инструментов dotnet является подтверждением концепции, вы не должны использовать его в производственной среде, как указано в описании его репозитория на github: https://github.com/onelogin/dotnet-saml Используйте альтернативы, упомянутые там.

person smartin    schedule 24.03.2017