2017-03-24 6 views
0

私はonelogin concpetを実装したいと思います。onelogin login urlを見つける

私はアプリケーションAPP-A1持っており、ユーザーが自分のアプリケーションAPP-A1、APP-のリンク上のユーザのクリックでログインしたとき、それはAPP-A2

を別のアプリケーションのリンクを保持していますA2 *

再度ログインする必要はありません。

私は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"; 
} 

にリダイレクトする必要がある場合は、私が想定したURL

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

下回りました着信応答を認証するには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を取得する必要があり、私の仮定が正しければ、SAMLで おかげ

答えて

1

2人の役者があります。 - アイデンティティプロバイダが。ユーザーが認証される場所。 - サービスプロバイダ。ユーザーがアプリにログインしたいときは、アプリを保護し、IdPにリダイレクトします。

あなたの場合、APP-A1とAPP-A2にSAMLサポートを追加して(サービスプロバイダに変えて)、両方をIDプロバイダに接続する必要があります。

サービスPeovidersはAuthNRequest(あなたが言及した最初のコード)をIdP SSO URLに送信する必要があります。

また、SAMLResponseを受信して​​処理するために、アサーションコンシューマサービス(SP ACS URL、前述の2番目のコード)が必要です。

あなたはIDプロバイダとしてOnelogin使用して、あなたは> Appsに行くのアプリを追加して、後であなたがすべき「設定」セクションで、「SAMLテストコネクタ」

を探すことができるようになりますAA開発者アカウントを持っている場合SP情報を提供し、SSOセクションでIdPデータを取得します。各SPごとに1つのAppコネクタを作成できます。 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 が挙げ選択肢を使用してください。

関連する問題