2017-06-09 21 views
0

この機能に問題があります。 サインインアクションはADFSでうまく動作し、ACS /AuthServicesに戻るしかし、ログアウトのアクションは、ADFSを呼び出すとにreturnurlパラメータ(シオマネキでそれをチェックする)に直接リダイレクトされません。 私はこのリンクを呼んでいる:/AuthServices/Logout?ReturnUrl=~/&Status=LoggedOutKentor MVCログアウトでログアウトURLが呼び出されない

web.configファイルをこのように設定されている:私は別のタブにhttps://ADFS DOMAIN/adfs/ls/?wa=wsignout1.0を起動した場合

<kentor.authServices entityId="https://localhost:2181/AuthServices" returnUrl="https://localhost:2181/"> 
    <identityProviders> 
     <add 
     entityId="https://ADFS DOMAIN/adfs/services/trust" 
     signOnUrl="https://ADFS DOMAIN/adfs/ls" 
     logoutUrl="https://ADFS DOMAIN/adfs/ls/?wa=wsignout1.0" 
     binding="HttpPost" 
     allowUnsolicitedAuthnResponse="true" 
     metadataLocation="https://ADFS DOMAIN/FederationMetadata/2007-06/FederationMetadata.xml" 
     wantAuthnRequestsSigned="true"> 
     <signingCertificate fileName="~/App_Data/*****.cer" /> 
     </add> 
    </identityProviders> 
    </kentor.authServices> 

、それが働いている、私は私のウェブサイトからのサインインページに戻ります。

したがって、logouturlを取得して送信するのは内部的な問題ですか?

ありがとうございました。

答えて

0

ログアウト要求が発行される前に満たされる必要がある多くの要件があります。

  1. あなたがhttp://kentor.se/AuthServices/LogoutNameIdentifier主張を持っている必要があり、その発行者は、あなたがログアウトしようとしているIDPと一致する必要がありますがから。
  2. http://kentor.se/AuthServices/SessionIndexのクレームが必要です。
  3. あなたAuthServices IDPの構成はあなたが署名のいずれかまたは用法(すなわちだけでなく、暗号化の両方でServiceCertificateを指定しているlogoutUrl(私はあなたがこれを指定したが、おそらくそれはAuthServicesは、メタデータから、それを読み聞かせする方が簡単です参照)
  4. を必要としますあなたはログイン時に起こっていくつかのクレーム変換を持っているか、そうでない場合)
  5. あなたAuthServices IDPの構成はDisableOutboundLogoutRequests = 偽(デフォルト)

欠落クレーム(最初の2点は)最も可能性の高い問題でありました元のクレームity。 ClaimsAuthenticationManagerに関するドキュメントも参照してください。 https://github.com/KentorIT/authservices/blob/master/doc/ClaimsAuthenticationManager.md

あなたは、ロギングをオンにして、失敗しているこれらの点のかを確認することができます https://github.com/KentorIT/authservices/blob/v0.21.2/Kentor.AuthServices/WebSSO/LogOutCommand.cs#L155-L170

+0

はご回答いただきありがとうございます。 ADFSはclaimtypeをhttp://kentor.se/AuthServices/LogoutNameIdentifierまたはhttp://kentor.se/AuthServices/SessionIndexとして送信しません。これを行うにはどうすればweb.config(または多分adfs)を設定できますか?しかし、私の側には広告はありません。 –

+0

ADFSはそれらを送信しませんが、デフォルトのAuthServices ACSコードはログイン時にIDに追加します。私はデフォルトのMVCの接続を使用していhttps://github.com/KentorIT/authservices/issues/665 – explunit

+0

を参照してください上記の回答でClaimsAuthenticationManagerへのリンクを追加しました。サインインプロセスがうまく実行され、復帰はAuthServices/Acsのですが、何も((ClaimsIdentity)(User.Identity))。特許請求の範囲に追加されません。既定のClaimsAuthenticationManagerがあるか、カスタムを作成する必要がありますか? – explunit

関連する問題