asp.Netcore認証とライセンスの初期認識--claim、claimsidentity、claimsprincipal

1805 ワード


Claimは、ClaimsIdentityを構成する宣言ユニットを表します.ClaimsIdentityは身分証明書、例えば身分証明書を表し、身分証明書の上の名前はClaimを表し、身分証明書番号もClaimを表し、これらのClaimは身分証明書、すなわちClaimsIdentityを構成する.一人で身分を表すことができるものだけでなく、運転免許証、戸籍簿などもあります.これらはCLaimsIdentityですが、私たち自身はClaimsPrincipalです.プログラムで表すと、
            Claim nameClaim = new Claim(ClaimTypes.Name, "pangjianxin");
            Claim idClaim = new Claim(ClaimTypes.Sid, "1502xxxxxxxxxx");
            Claim genderClaim = new Claim(ClaimTypes.Gender, "female");
            Claim countryClaim = new Claim(ClaimTypes.Country, "china");
            //....            ....
            ClaimsIdentity id = new ClaimsIdentity("   ");
            id.AddClaim(nameClaim);
            id.AddClaim(idClaim);
            id.AddClaim(genderClaim);
            id.AddClaim(countryClaim);
            ClaimsPrincipal principal = new ClaimsPrincipal(id);

上のコードはアイデンティティマスターの構築プロセスを示していますが、このアイデンティティマスターの構築が完了したら、どのようにお客様に保存しますか?この情報が保存されている限り、次回サイトにログインするときにこれを持ってこそ、アクセスすべきリソース(Authorize)にアクセスできることを知っておく必要があります.asp.Netcoreでは、上記のClaimsPrincipalをAuthenticationTicketにシーケンス化します.つまりチケットのルートですNetcoreはこの手形をあなたに送ります.もちろんあなたではなく、あなたのブラウザです.ブラウザは適切に保管してくれます.そして、再びウェブサイトにアクセスすると、ブラウザは自動的にこの手形(Cookie)を持ってリソースにアクセスします.AuthenticationTicketには認証(Authentication)の方式(Scheme:スキーム)を表すAuthenticationSchemeがある.例えば、私たちの既存の技術にはCookie認証、jwtbear認証、OATH 2&openIdConnectなどがあり、Schemeの役割はHandlerを探して最終的な認証を実現することです.このHandlerはCookieAuthenticationHandler、JwtbearerHandlerなどかもしれません.もう一つ重要なことはAuthenticationOptionsです.これはSchemeを構成するために使用され、optionモード(具体的には、services.configure(Action))を使用して構成され、あるステップでこのoptionが必要になると、構造関数にIOptionのものを注入して注入構成されます.柔軟ですよ.これは氷山の一角にすぎない.この物語を全部話すには、長い時間と精力が必要だ.また補充する時間があります.
 
転載先:https://www.cnblogs.com/pangjianxin/p/9125041.html