2017-06-06 21 views
8

OpenProject OmniAuth SAML Single-Sign On eklentisini kullanarak OpenProject ile SSO (Single Sign-On) entegrasyonunu kurmaya çalışıyorum. İlgili detaylarla yapılandırdım. Meta verileri oluşturdu ve Shibboleth tarafından desteklenen IDP ile kaydetti. Eklenti, openproject giriş formunda ek bir giriş düğmesi gösterir. Tıklandığında IDP'nin giriş sayfasına doğru yönlendiriliyor. Kimlik bilgilerini verdikten sonra, belirttiğim AssertionConsumerService URL'sine doğru bir şekilde yönlendiriliyor. Bu https://example.com/openproject/auth/saml/callback şeklindedir. Ancak sayfa kötü bir istek hatası gösteriyor. app/controllers/concerns/omniauth_login.rb dosyasını hata ayıklaması, omniauth_login işlevinin içinde aşağıdaki kod satırlarının 400 hatasıyla sonuçlandığını gösterdi.OpenProject OmniAuth SAML Tek Oturum Açma On Entegrasyonu

auth_hash = request.env['omniauth.auth'] 

return render_400 unless auth_hash.valid? 

auth_hash değeri boş görünüyor. Bu özellik eşleme veya başka bir şey yüzünden bir sorun olabilir mi? Ben PHP bacnkground gelen ve raylar üzerinde yakut deneyimim yok. Bu yüzden sorunu ayıklamak zor bulmak. Ben çok googling denedim ama yararlı bir şey bulamadı.

Her türlü yardım büyük beğeni topluyor.

Teşekkür

cevap

1

aşağıdaki kodla

stratejileri içine

uid do 
     if options.uid_attribute 
      ret = find_attribute_by([options.uid_attribute]) 
      if ret.nil? 
      raise OmniAuth::Strategies::SAML::ValidationError.new("SAML response missing '#{options.uid_attribute}' attribute") 
      end 
      ret 
     else 
      @name_id 
     end 
     end 

/saml.rb

ile aşağıdaki kodu

uid { @name_id } 

yerine

dosya. Aşağıdaki github linke https://github.com/omniauth/omniauth-saml/blob/master/lib/omniauth/strategies/saml.rb satır numarası 90

içine lütfen bir göz Başvuru için def other_phase fonksiyonu

içindedir