IdentityServer4-參考

1、Identity Resource前端

2、API Resourcegit

3、Clientgithub

4、GrantValidationResultsql

5、Profile Service數據庫

6、IdentityServer Interaction Serviceapi

7、IdentityServer Options瀏覽器

8、Entity Framework Support緩存

9、ASP.NET Identity Support安全

1、Identity Resource服務器

Enabled

指示此資源是否已啓用且能夠請求。 默認爲true。

Name

身份資源的惟一名稱。 這是客戶端將用於受權請求中的scope參數的值。

DisplayName

該值將用於例如 用在consent顯示上。

Description

該值將用於例如 用在consent顯示上。

Required

是否在consent頁面必須選擇。 默認爲false。

Emphasize

指定consent頁面是否會強調此範圍(若是consent頁面要實現此類功能)。 將此設置用於敏感或重要範圍。 默認爲false。

ShowInDiscoveryDocument

指定此範圍是否顯示在發現文檔中。 默認爲true。

UserClaims

應包含在身份令牌中的關聯用戶聲明類型的列表。

 

2、API Resource

Enabled

指示此資源是否已啓用且能夠請求。 默認爲true。

Name

API的惟一名稱

DisplayName

該值將用於例如 用在consent顯示上。

Description

該值將用於例如 用在consent顯示上。

ApiSecrets

API密鑰用於自檢端點。 API可使用API名稱和密鑰進行自檢驗證。

UserClaims

應包含在訪問令牌中的關聯用戶聲明類型的列表。

Scopes

API必須至少有一個範圍。 每一個範圍能夠有不一樣的設置。

Scopes

在簡單的狀況下,API只有一個範圍。 可是在某些狀況下,您可能但願細分API的功能,並讓不一樣的客戶端訪問不一樣的部分。

Name

scope的惟一名稱。 這是客戶端將用於受權/令牌請求中的scope參數的值。

DisplayName

顯示名稱,通常用在consent頁面展現

Description

描述,通常用在consent頁面展現

Required

是否必選,若是設置爲true,則consent頁面則不可取消此scope( 默認爲false)

Emphasize

指定consent頁面是否會強調此範圍(若是consent頁面要實現此類功能)。 將此設置用於敏感或重要範圍。 默認爲false。

ShowInDiscoveryDocument

指定此範圍是否顯示在發現文檔中。 默認爲true。

UserClaims

應包含在訪問令牌中的關聯用戶聲明類型的列表。 此處指定的聲明將添加到爲API指定的聲明列表中。

便捷構造行爲

只是關於爲ApiResource類提供的構造函數的註釋。

要徹底控制ApiResource中的數據,請使用不帶參數的默認構造函數。 若是要爲每一個API配置多個範圍,可使用此方法。 例如:

new ApiResource
{
    Name = "api2",

    Scopes =
    {
        new Scope()
        {
            Name = "api2.full_access",
            DisplayName = "Full access to API 2"
        },
        new Scope
        {
            Name = "api2.read_only",
            DisplayName = "Read only access to API 2"
        }
    }
}

對於每一個API只須要一個範圍的簡單方案,則提供了幾個接受名稱的便捷構造函數。 例如:

new ApiResource("api1", "Some API 1")

使用便捷構造函數等同於:

new ApiResource
{
    Name = "api1",
    DisplayName = "Some API 1",

    Scopes =
    {
        new Scope()
        {
            Name = "api1",
            DisplayName = "Some API 1"
        }
    }
}

 

3、Client

Client類爲OpenID Connect或OAuth 2.0客戶端建模 - 例如 本機應用程序,Web應用程序或基於JS的應用程序。 

基本

Enabled

指定是否啓用客戶端。 默認爲true。

ClientId

客戶端的惟一ID

ClientSecrets

客戶端密鑰列表 - 訪問令牌端點的憑據。

RequireClientSecret

指定此客戶端是否須要密鑰才能從令牌端點請求令牌(默認爲true)

AllowedGrantTypes

指定容許客戶端使用的受權類型。 使用GrantTypes類進行常見組合。

RequirePkce

指定使用基於受權代碼的受權類型的客戶端是否必須發送校驗密鑰

AllowPlainTextPkce

指定使用PKCE的客戶端是否可使用純文本代碼質詢(不推薦 - 默認爲false)

RedirectUris

指定容許的URI以返回令牌或受權碼

AllowedScopes

默認狀況下,客戶端無權訪問任何資源 - 經過添加相應的範圍名稱來指定容許的資源

AllowOfflineAccess

指定此客戶端是否能夠請求刷新令牌(請求offline_accessscope)

AllowAccessTokensViaBrowser

指定是否容許此客戶端經過瀏覽器接收訪問令牌。 這對於強化容許多種響應類型的流是有用的(例如,不容許混合流客戶端使用code id_token添加令牌響應類型,從而將令牌泄露給瀏覽器。)

Properties

字典可根據須要保存任何自定義客戶端特定值。

認證/註銷

PostLogoutRedirectUris

指定在註銷後重定向到的容許URI。

FrontChannelLogoutUri

指定客戶端的註銷URI,以用於基於HTTP的前端通道註銷。

FrontChannelLogoutSessionRequired

指定是否應將用戶的會話ID發送到FrontChannelLogoutUri。 默認爲true。

BackChannelLogoutUri

指定客戶端的註銷URI,以用於基於HTTP的反向通道註銷。

BackChannelLogoutSessionRequired

指定是否應在請求中將用戶的會話ID發送到BackChannelLogoutUri。 默認爲true。

EnableLocalLogin

指定此客戶端是否能夠僅使用本地賬戶或外部IdP。 默認爲true。

IdentityProviderRestrictions

指定能夠與此客戶端一塊兒使用的外部IdP(若是列表爲空,則容許全部IdP)。 默認爲空。

Token

IdentityTokenLifetime

Identity令牌的生命週期(以秒爲單位)(默認爲300秒/ 5分鐘)

AccessTokenLifetime

訪問令牌的生命週期(以秒爲單位)(默認爲3600秒/ 1小時)

AuthorizationCodeLifetime

受權代碼的生命週期(以秒爲單位)(默認爲300秒/ 5分鐘)

AbsoluteRefreshTokenLifetime

刷新令牌的最長生命週期,以秒爲單位。 默認爲2592000秒/ 30天

SlidingRefreshTokenLifetime

刷新令牌的生命週期以秒爲單位。 默認爲1296000秒/ 15天

RefreshTokenUsage

  ReUse 刷新令牌時刷新令牌句柄將保持不變

  OneTime 刷新令牌時將更新刷新令牌句柄。 這是默認值。

RefreshTokenExpiration

  Absolute 刷新令牌將在固定時間點到期(由AbsoluteRefreshTokenLifetime指定)

  Sliding 刷新令牌時,將刷新刷新令牌的生命週期(按SlidingRefreshTokenLifetime中指定的數量)。 生命週期不會超過AbsoluteRefreshTokenLifetime。

UpdateAccessTokenClaimsOnRefresh

獲取或設置一個值,該值指示是否應在刷新令牌請求上更新訪問令牌(及其聲明)。

AccessTokenType

指定訪問令牌是引用令牌仍是自包含JWT令牌(默認爲Jwt)。

IncludeJwtId

指定JWT訪問令牌是否應具備嵌入的惟一ID(經過jti聲明)。

AllowedCorsOrigins

若是指定,將由默認CORS策略服務實現(In-Memory和EF)用於爲JavaScript客戶端構建CORS策略。

Claims

容許客戶端的設置聲明(將包含在訪問令牌中)。

AlwaysSendClientClaims

若是設置,將爲每一個流發送客戶端聲明。 若是不是,僅用於客戶端憑證流(默認爲false)

AlwaysIncludeUserClaimsInIdToken

在請求id令牌和訪問令牌時,若是用戶聲明始終將其添加到id令牌而不是請求客戶端使用userinfo端點。 默認值爲false。

ClientClaimsPrefix

若是設置,前綴客戶端聲明類型將被加上前綴。默認爲client_。目的是確保它們不會意外地與用戶聲明發生衝突。

PairWiseSubjectSalt

對於此客戶端的用戶,在成對的subjectId生成中使用的salt值。

Consent Screen

RequireConsent

指定是否須要贊成屏幕。 默認爲true。

AllowRememberConsent

指定用戶是否能夠選擇存儲贊成決策。 默認爲true。

ConsentLifetime

用戶贊成的生命週期,以秒爲單位。 默認爲null(無到期)。

ClientName

客戶端顯示名稱(用於記錄和贊成頁面顯示)

ClientUri

有關客戶端的更多信息的URI(在贊成屏幕上使用)

LogoUri

URI到客戶端圖標(在贊成屏幕上使用)

 

4、GrantValidationResult

GrantValidationResult類爲extensions grants和resource owner password grants的受權驗證結果建模。 

最多見的用法是使用身份(成功案例)新建它:

context.Result = new GrantValidationResult(
    subject: "818727",
    authenticationMethod: "custom",
    claims: optionalClaims);

...或使用錯誤和描述(失敗案例):

context.Result = new GrantValidationResult(
    TokenRequestErrors.InvalidGrant,
    "invalid custom credential");

在這兩種狀況下,您均可以傳遞將包含在令牌響應中的其餘自定義值。

 

5、Profile Service

IdentityServer一般在建立令牌或處理對userinfo或內省端點的請求時須要有關用戶的身份信息。 默認狀況下,IdentityServer僅在身份驗證cookie中具備聲明,以便爲此身份數據進行繪製。 

將用戶所需的全部可能聲明放入cookie中是不切實際的,所以IdentityServer定義了一個擴展點,容許根據用戶須要動態加載聲明。 此擴展點是IProfileService,開發人員一般能夠實現此接口來訪問包含用戶身份數據的自定義數據庫或API。

IProfileService APIs

GetProfileDataAsync

預期爲用戶加載聲明的API。 它傳遞一個ProfileDataRequestContext的實例。

IsActiveAsync

預期用於指示當前是否容許用戶獲取令牌的API。 它傳遞一個IsActiveContext的實例。

ProfileDataRequestContext

模擬用戶聲明的請求,而且是返回這些聲明的工具。 它包含如下屬性:

Subject

ClaimsPrincipal爲用戶建模。

Client

被請求claims的客戶。

RequestedClaimTypes

要求收集claim類型。

Caller

正在請求聲明的上下文的標識符(例如,身份令牌,訪問令牌或用戶信息端點)。 常量IdentityServerConstants。

ProfileDataCallers

包含不一樣的常量值。

IssuedClaims

將返回的Claim的列表。 預計這將由自定義IProfileService實現填充。

AddRequestedClaims

ProfileDataRequestContext上的擴展方法用於填充IssuedClaims,但首先根據RequestedClaimTypes過濾聲明。

請求的範圍和聲明映射

客戶端請求的範圍控制用戶聲明在令牌中返回給客戶端的內容。 GetProfileDataAsync方法負責根據ProfileDataRequestContext上的RequestedClaimTypes集合動態獲取這些聲明。

RequestedClaimTypes集合基於在對做用域建模的資源上定義的用戶聲明進行填充。 若是請求的做用域是標識資源,則將根據IdentityResource中定義的用戶聲明類型填充RequestedClaimTypes中的聲明。 若是請求的範圍是API資源,則將根據ApiResource和/或Scope中定義的用戶聲明類型填充RequestedClaimTypes中的聲明。

IsActiveContext

對請求進行建模以肯定用戶當前是否容許獲取令牌。它包含這些屬性:

Subject

ClaimsPrincipal爲用戶建模。

Client

要求提出claims的客戶。

Caller

正在請求聲明的上下文的標識符(例如,身份令牌,訪問令牌或用戶信息端點)。 常量IdentityServerConstants.ProfileDataCallers包含不一樣的常量值。

IsActive

指示是否容許用戶獲取令牌的標誌。 預計這將由自定義IProfileService實現分配。

 

6、IdentityServer Interaction Service

IIdentityServerInteractionService接口旨在提供用戶界面用於與IdentityServer通訊的服務,主要與用戶交互有關。 它能夠從依賴注入系統得到,一般做爲構造函數參數注入到IdentityServer的用戶界面的MVC控制器中。 

IIdentityServerInteractionService APIs

GetAuthorizationContextAsync

基於傳遞給登陸頁面或贊成頁面的returnUrl返回AuthorizationRequest。

IsValidReturnUrl

指示在登陸或贊成後returnUrl是否爲重定向的有效URL。

GetErrorContextAsync

根據傳遞給錯誤頁面的errorId返回ErrorMessage。

GetLogoutContextAsync

根據傳遞給註銷頁面的logoutId返回LogoutRequest。

CreateLogoutContextAsync

若是當前沒有logoutId,則用於建立logoutId。 這將建立一個cookie,捕獲註銷所需的全部當前狀態,logoutId標識該cookie。 這一般在沒有當前logoutId時使用,而且註銷頁面必須捕獲當前用戶在重定向到外部身份提供程序以進行註銷以前註銷所需的狀態。 新建立的logoutId須要在註銷時往返外部身份提供者,而後在註銷回調頁面上使用,就像在普通註銷頁面上同樣。

GrantConsentAsync

接受ConsentResponse以通知IdentityServer用戶贊成特定的AuthorizationRequest。

GetAllUserConsentsAsync

返回用戶的Consent集合。

RevokeUserConsentAsync

撤消用戶對用戶的全部贊成和受權。

RevokeTokensForCurrentSessionAsync

撤消用戶在當前會話期間簽署的客戶的全部贊成和受權。

AuthorizationRequest

ClientId

發起請求的客戶端標識符。

RedirectUri

成功受權後將用戶重定向到的URI。

DisplayMode

顯示模式從受權請求傳遞。

UiLocales

從受權請求傳遞的UI語言環境。

IdP

請求的外部標識提供程序。這是用來繞過國內領域發現(HRD)。這是經過受權請求上的acr_values參數的「idp:」前綴提供的。

Tenant

租客要求。 這是經過「tenant:」前綴提供給受權請求的acr_values參數。

LoginHint

用戶將用於登陸的預期用戶名。 這是經過受權請求上的login_hint參數從客戶端請求的。

PromptMode

從受權請求請求的提示模式。

AcrValues

從受權請求傳遞的acr值。

ScopesRequested

受權請求請求的範圍。參數傳遞給受權請求的整個參數集合。

ErrorMessage

DisplayMode

從受權請求中傳遞的顯示模式。

UiLocales

從受權請求中傳遞的UI區域。

Error

錯誤代碼。

RequestId

每一個請求標識符。這能夠用於向最終用戶顯示,也能夠用於診斷。

LogoutRequest

ClientId

發起請求的客戶端標識符。

PostLogoutRedirectUri

用戶在註銷後將其重定向到的URL。

SessionId

用戶當前的會話ID。

SignOutIFrameUrl

要在註銷頁面上的<iframe>中呈現以啓用單點註銷的URL。

Parameters

整個參數集合傳遞給結束會話端點。

ShowSignoutPrompt

指示是否應根據傳遞到結束會話端點的參數提示用戶註銷。

ConsentResponse

ScopesConsented

用戶贊成的範圍集合。

RememberConsent

指示是否持久保留用戶贊成的標誌。

Consent

SubjectId

授予贊成的subjectID。

ClientId

客戶端標識符。

Scopes

範圍。

CreationTime

得到贊成日期和時間

Expiration

贊成過時的日期和時間。

 

7、IdentityServer Options

  • IssuerUri
    設置將在發現文檔和已頒發的JWT令牌中顯示的頒發者名稱。 建議不要設置此屬性,該屬性從客戶端使用的主機名中推斷頒發者名稱。
  • PublicOrigin
    此服務器實例的來源,例如https://myorigin.com。 若是未設置,則從請求推斷出原始名稱。

Endpoints

容許啓用/禁用各個端點,例如 令牌,受權,用戶信息等

默認狀況下,全部端點都已啓用,但您能夠經過禁用不須要的端點來鎖定服務器。

Discovery

容許啓用/禁用發現文檔的各個部分,例如 端點,範圍,聲明,受權類型等

CustomEntries字典容許向發現文檔添加自定義元素。

Authentication

  • CookieLifetime
    身份驗證cookie生存期(僅在使用IdentityServer提供的cookie處理程序時有效)。
  • CookieSlidingExpiration
    指定cookie是否應該滑動(僅在使用IdentityServer提供的cookie處理程序時有效)。
  • RequireAuthenticatedUserForSignOutMessage
    指示是否必須對用戶進行身份驗證以接受結束會話端點的參數。 默認爲false。
  • CheckSessionCookieName
    用於檢查會話端點的cookie的名稱。
  • RequireCspFrameSrcForSignout
    若是設置,將要求frame-src CSP標頭在結束會話回調端點上發出,該端點向客戶端呈現iframe以進行前端通道註銷通知。 默認爲true。

Events

容許配置是否應將哪些事件提交到已註冊的事件接收器。 有關活動的更多信息,請參見此處。

InputLengthRestrictions

容許設置各類協議參數的長度限制,如客戶端ID,範圍,重定向URI等。

UserInteraction

  • LoginUrlLogoutUrlConsentUrlErrorUrl
    設置登陸,註銷,贊成和錯誤頁面的URL。
  • LoginReturnUrlParameter
    設置傳遞給登陸頁面的返回URL參數的名稱。 默認爲returnUrl。
  • LogoutIdParameter
    設置傳遞給註銷頁面的註銷消息id參數的名稱。 默認爲logoutId。
  • ConsentReturnUrlParameter
    設置傳遞給贊成頁面的返回URL參數的名稱。 默認爲returnUrl。
  • ErrorIdParameter
    設置傳遞給錯誤頁面的錯誤消息id參數的名稱。 默認爲errorId。
  • CustomRedirectReturnUrlParameter
    設置從受權端點傳遞給自定義重定向的返回URL參數的名稱。 默認爲returnUrl。
  • CookieMessageThreshold
    IdentityServer和某些UI頁面之間的某些交互須要cookie來傳遞狀態和上下文(上面的任何具備可配置「message id」參數的頁面)。 因爲瀏覽器對cookie的數量及其大小有限制,所以該設置用於防止建立過多的cookie。 該值設置將建立的任何類型的消息cookie的最大數量。 一旦達到限制,將清除最先的消息cookie。 這有效地表示用戶在使用IdentityServer時能夠打開多少個選項卡。

Caching

這些設置僅在啓動時在服務配置中啓用了相應的緩存時才適用。

  • ClientStoreExpiration
    從客戶端存儲加載的客戶端配置的緩存持續時間。
  • ResourceStoreExpiration
    緩存從資源存儲加載的標識和API資源配置的持續時間。

CORS

IdentityServer支持某些端點的CORS。 底層CORS實現由ASP.NET Core提供,所以它在依賴注入系統中自動註冊。

  • CorsPolicyName
    將針對進入IdentityServer的CORS請求評估的CORS策略的名稱(默認爲「IdentityServer4」)。 處理此問題的策略提供程序是根據在依賴項注入系統中註冊的ICorsPolicyService實現的。 若是您但願自定義容許鏈接的CORS源集,那麼建議您提供ICorsPolicyService的自定義實現。
  • CorsPaths
    IdentityServer中支持CORS的端點。 默認爲發現,用戶信息,令牌和吊銷端點。
  • PreflightCacheDuration
    Nullable <TimeSpan>指示在預檢Access-Control-Max-Ageresponse標頭中使用的值。 默認爲null,表示未在響應上設置緩存標頭。

CSP(內容安全政策)

在適當的狀況下,IdentityServer會爲某些響應發出CSP標頭。

  • Level
    要使用的CSP級別。 默認狀況下使用CSP級別2,但若是必須支持舊版瀏覽器,則將其更改成CspLevel.One以容納它們。
  • AddDeprecatedHeader
    指示是否還應發出舊的X-Content-Security-Policy CSP標頭(除了基於標準的標頭值以外)。 默認爲true。

 

8、Entity Framework Support

爲IdentityServer中的配置和操做數據擴展點提供了基於EntityFramework的實現。 EntityFramework的使用容許任何EF支持的數據庫與此庫一塊兒使用。 

這個庫的repo位於這裏,NuGet包在這裏

此庫提供的功能分爲兩個主要區域:配置存儲和操做存儲支持。 根據託管應用程序的須要,這兩個不一樣的區域能夠獨立使用或一塊兒使用。

Configuration Store支持客戶端,資源和CORS設置

若是但願從EF支持的數據庫加載客戶端,標識資源,API資源或CORS數據(而不是使用內存配置),則可使用配置存儲。 此支持提供IClientStore,IResourceStore和ICorsPolicyService可擴展性點的實現。 這些實現使用名爲ConfigurationDbContext的DbContext派生類來對數據庫中的表進行建模。

要使用配置存儲支持,請在調用AddIdentityServer後使用AddConfigurationStore擴展方法:

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    const string connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;database=IdentityServer4.EntityFramework-2.0.0;trusted_connection=yes;";
    var migrationsAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().Name;

    services.AddIdentityServer()
        // this adds the config data from DB (clients, resources, CORS)
        .AddConfigurationStore(options =>
        {
            options.ConfigureDbContext = builder =>
                builder.UseSqlServer(connectionString,
                    sql => sql.MigrationsAssembly(migrationsAssembly));
        });
}

要配置配置存儲,請使用傳遞給配置回調的ConfigurationStoreOptions選項對象。

ConfigurationStoreOptions

此選項類包含用於控制配置存儲和ConfigurationDbContext的屬性。

ConfigureDbContext

Action <DbContextOptionsBuilder>類型的委託用做回調以配置基礎ConfigurationDbContext。 若是EF直接與AddDbContext一塊兒使用,則委託能夠以相同的方式配置ConfigurationDbContext,這容許使用任何EF支持的數據庫。

DefaultSchema

容許爲ConfigurationDbContext中的全部表設置默認數據庫模式名稱。

Operational Store對受權受權,贊成和令牌的支持(刷新和引用)

若是但願從EF支持的數據庫(而不是默認的內存數據庫)加載受權授予,贊成和令牌(刷新和引用),則可使用操做存儲。 此支持提供IPersistedGrantStore擴展點的實現。 該實現使用名爲PersistedGrantDbContext的DbContext派生類來對數據庫中的表進行建模。

要使用操做存儲支持,請在調用AddIdentityServer後使用AddOperationalStore擴展方法:

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    const string connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;database=IdentityServer4.EntityFramework-2.0.0;trusted_connection=yes;";
    var migrationsAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().Name;

    services.AddIdentityServer()
        // this adds the operational data from DB (codes, tokens, consents)
        .AddOperationalStore(options =>
        {
            options.ConfigureDbContext = builder =>
                builder.UseSqlServer(connectionString,
                    sql => sql.MigrationsAssembly(migrationsAssembly));

            // this enables automatic token cleanup. this is optional.
            options.EnableTokenCleanup = true;
            options.TokenCleanupInterval = 30; // interval in seconds
        });
}

要配置操做存儲,請使用傳遞給配置回調的OperationalStoreOptions選項對象。

OperationalStoreOptions

此選項類包含用於控制操做存儲和PersistedGrantDbContext的屬性。

ConfigureDbContext

Action <DbContextOptionsBuilder>類型的委託用做回調以配置基礎PersistedGrantDbContext。 若是EF直接與AddDbContext一塊兒使用,則委託能夠以相同的方式配置PersistedGrantDbContext,這容許使用任何EF支持的數據庫。

DefaultSchema

容許爲PersistedGrantDbContext中的全部表設置默認數據庫模式名稱。

EnableTokenCleanup

指示是否將從數據庫中自動清除過期條目。 默認值爲false。

TokenCleanupInterval

令牌清理間隔(以秒爲單位)。 默認值爲3600(1小時)。

跨不一樣版本的IdentityServer數據庫建立和模式更改

跨不一樣版本的IdentityServer(以及EF支持)極可能會更改數據庫架構以適應新的和不斷變化的功能。

咱們不爲建立數據庫或將數據從一個版本遷移到另外一個版本提供任何支持。 您須要以組織認爲合適的任何方式管理數據庫建立,架構更改和數據遷移。

使用EF遷移是一種可行的方法。 若是您確實但願使用遷移,請參閱EF快速入門以獲取有關如何入門的示例,或參閱有關EF遷移的Microsoft文檔。

咱們還爲當前版本的數據庫模式發佈了示例SQL腳本

9、ASP.NET Identity Support

提供了基於ASP.NET身份的實現,用於管理IdentityServer用戶的身份數據庫。 此實現實現IdentityServer中的擴展點,以便爲用戶加載身份數據以將聲明發送到令牌。 

https://github.com/IdentityServer/IdentityServer4.AspNetIdentity/

要使用此庫,請正常配置ASP.NET標識。 而後在調用AddIdentityServer以後使用AddAspNetIdentity擴展方法:

public void ConfigureServices(IServiceCollection services)
{
    services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

    services.AddIdentityServer()
        .AddAspNetIdentity<ApplicationUser>();
}

AddAspNetIdentity須要將用戶建模爲ASP.NET標識的類(以及傳遞給AddIdentity的同一個用於配置ASP.NET標識的類)做爲通用參數。 這會將IdentityServer配置爲使用IUserClaimsPrincipalFactory,IResourceOwnerPasswordValidator和IProfileService的ASP.NET Identity實現。 它還配置了一些用於IdentityServer的ASP.NET Identity選項(例如要使用的聲明類型和身份驗證cookie設置)。

相關文章
相關標籤/搜索