Forms認証とカスタムデータベースを使用してユーザーを認証するASP.NET(4.5)Webアプリケーションがあります。クライアントはADFS Active Directoryフェデレーションサービスを使用し、ADFSユーザーを使用してWebアプリケーションにログインしたいと考えています。私は、それらのADFSユーザーをアプリケーション独自のデータベースのカスタムユーザーにマップする方法を理解する必要があります。 ユーザーが自分のアプリのログインページにアクセスしようとすると、ADFSログインにリダイレクトされ、認証されたユーザーはログインページに戻って、認証されたユーザーに関するいくつかの情報にアクセスするオブジェクトを返します私たちのWebアプリケーションのユーザー。 このシナリオで使用できる簡単なコード例を本当にありがとうと思います。具体的には、返されたユーザー/プリンシパルオブジェクトまたは何かに関する情報が必要であり、私たちのデータベースからユーザーを取得するために自分のコードを書き込むよりも、ユーザーおよびおそらくユーザーを所属するグループを一意に識別できます。私は本当にWebアプリケーションをADFSに認識させたくないのですが、私は単純なことをしています。このシナリオではうまくいくでしょう。asp.net WebアプリケーションでカスタムユーザーにマッピングするADFSユーザーユーザー
1
A
答えて
0
ADFSにユーザーの身元確認に役立つ追加の申し立てを返させることができます。メール - 詳細はanswerをご覧ください。 一度設定、ADFS-認証されたユーザの電子メールを得るためにあなたのコントローラ内のコード次の使用:
<system.identityModel>
<identityConfiguration>
...
<certificateValidation certificateValidationMode="PeerOrChainTrust" />
<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
<authority name="http://your-adfs-domain.com/adfs/services/trust">
<keys>
<add thumbprint="the thumbprint" />
</keys>
<validIssuers>
<add name="http://your-adfs-domain.com/adfs/services/trust" />
</validIssuers>
</authority>
</issuerNameRegistry>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<wsFederation issuer="https://your-adfs-domain.com/adfs/ls" realm="https://your-service-domain.com"
requireHttps="true" reply="https://your-service-domain/StartPage" passiveRedirectEnabled="true" />
<serviceCertificate>
<!-- The sertificate should have a private key -->
<certificateReference x509FindType="FindBySubjectName" findValue="some subject" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>
</federationConfiguration>
</system.identityModel.services>
が最後にあなたがマップすることができます。
public static string GetAuthenticatedUserEmail()
{
return ClaimsPrincipal.Current?.Identity?.IsAuthenticated ?? false
? ClaimsPrincipal.Current.Claims
.SingleOrDefault(claim => claim.Type == ClaimTypes.Email)
?.Value
: null;
}
はまた、あなたがconfigセクション以下でのクレーム発行者を確認することができます取得した電子メール(または別の主張)によってユーザーをテーブルに追加します。
関連する問題
- 1. ASP.NetアプリケーションSSO with ADFS
- 2. asp.net Webアプリケーションのフォルダの再マッピング
- 3. ASP.netでのADFS 3.0のサインアウトMVCアプリケーション
- 4. ADFS 2.0 Webアプリケーションサインアウト
- 5. ADFS、Webアプリケーションプロキシ、アプリケーション認証、DNS分割
- 6. JavaベースのWebアプリケーションでADFSを使用する方法
- 7. ASP.NETとADFSによるロードバランシング
- 8. ADFSとASP.NET
- 9. ASP.NET WebアプリケーションからASP.NET MVCアプリケーションにリダイレクト
- 10. java webアプリケーションはadfs 2.0で認証します
- 11. ASP.NET WebサービスでWSDL列挙を文字列にマッピングする
- 12. ASP.NET Webアプリケーション
- 13. C#アプリケーションのカスタムユーザー設定
- 14. CRM Web Api ADFS OAuth
- 15. アプリケーションでADFSを実装する方法?
- 16. VS2008 ASP.NET Webサイトvs. Webアプリケーション
- 17. ASP.NET WebアプリケーションのWebテストフレームワーク
- 18. ASP.NETでWebアプリケーションを展開する
- 19. asp.netでWebアプリケーションをアップグレードするロジック?
- 20. ASP.NETアプリケーションでWebブラウザコントロールを使用する
- 21. Asp.netのRowfilter? Webアプリケーションで
- 22. ASP.NET Webアプリケーションでのコードインストルメンテーション
- 23. Asp.netのデータRowfilter? Webアプリケーションで
- 24. Azman操作と役割をADFSクレームにマッピングする
- 25. ASP.NET WebアプリケーションでのWebサービスの使用
- 26. ADFSとMVCアプリケーション - SSO
- 27. テンプレートASP.NET MVC2 Webアプリケーション
- 28. asp.net Webアプリケーションとサービス
- 29. VS2017 ASP.NETコアWebアプリケーション
- 30. ASP.NET Webアプリケーションのキューオブジェクト
あなたの答えと素晴らしいリンクをありがとう。 WIF SDKをインストールして既存のWebアプリケーションにSTSリファレンスを追加したので、アクセスしようとしているユーザーがいます。 Login.aspx.csにその資格情報を何とかSTSサービスに渡すにはどうすればよいですか?クレームを調べるために、返されたADFSトークンをどのように取り戻すのですか? – rafskiBob
@rafskiBob標準的なシナリオでは、Webアプリケーションはユーザーのパスワードを直接処理するべきではありません。認証に失敗した場合は、ユーザーをADFSログインページにリダイレクトすることができます。「system.identityModel.services」の設定セクションを参照してください( 'passiveRedirectEnabled =" true "')。ユーザーが認証されると、 'reply'リンクにリダイレクトされます。そして、すべてのクレームは、 'ClaimsPrincipal.Current'に現れ、コントローラ内で使用されます。 –
私はここで全体の概念を誤解しているかもしれません。私のアプリケーションにアクセスするには、ADSトークンで返されたものよりADSF STSによって認証されるようにリダイレクトされたユーザーですか?もしそうなら、どのようにして私のアプリケーションをspcific ADFSにリダイレクトするように設定する必要がありますかSTSはあなたが提供した設定の一部ですか? – rafskiBob