2015-04-30 16 views
6

Tôi đã tạo một ứng dụng web OWIN đang sử dụng OpenId Connect để xác thực qua Microsoft.Owin.Security.OpenIdConnect.Cách đặt NameClaimType trong một ứng dụng bằng cách sử dụng phần mềm bảo mật OWIN

Trong khi xác thực hoạt động, tôi thấy rằng ClaimsIdentity được tạo ra.Name là null. Dường như ClaimsIdentity dự kiến ​​tên được cung cấp trong khẳng định:

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

Tuy nhiên, Thinktecture IdentityServer v3 cung cấp tên như chỉ:

tên

I find this is configurable via NameClaimType in older ASP.Net applications nhưng không rõ cách tôi làm điều này với OWIN.

Làm cách nào để định cấu hình xác nhận quyền sở hữu nào được ánh xạ tới ClaimsIdentity.Name khi sử dụng OWIN?

Trả lời

13

Đào qua mã tôi tìm thấy điều này có thể được định cấu hình trên đối tượng TokenValidationParameters sử dụng NameClaimType hoặc NameClaimTypeRetriever (nếu loại xác nhận quyền sở hữu không cố định).

TokenValidationParameters tồn tại trên đối tượng tùy chọn khi định cấu hình phần mềm trung gian. Những thay đổi sau đây để các công trình cấu hình trong trường hợp được mô tả,

app.UseOpenIdConnectAuthentication(
    new OpenIdConnectAuthenticationOptions 
     { 
     <existing configuration snipped>, 
     TokenValidationParameters = 
      { 
      NameClaimType = Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Name 
      } 
     }); 

Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Namename. Một giá trị khác có thể được cung cấp để cho biết một yêu cầu khác nhau nên được sử dụng.

Các vấn đề liên quan