Microsoft for.NET Framework 4发布的OpenID Connect标准库与OpenKeystone不兼容。OpenAthens已经发布了一个更新的库,可以连接到.NET4.5或更高版本的OpenAthens Keystone。其不支持早期版本。
开始
新建项目
首先我们建立一个 ASP.Net MVC 的项目并安装下列包.
1Install-Package Microsoft.AspNet.Identity.Owin2Install-Package Microsoft.Owin.Host.SystemWeb3Install-Package OpenAthens.Owin.Security.OpenIdConnect添加StartUp启动类
在项目根目录下添加 StartUp 类.
添加 > 新建项 搜索
startup,选择OWIN StartUp 类选型新建。
1using Microsoft.IdentityModel.Protocols.OpenIdConnect;2using Microsoft.Owin;3using Microsoft.Owin.Security;4using Microsoft.Owin.Security.Cookies;5using Owin;6using OpenAthens.Owin.Security.OpenIdConnect;7using System.Configuration;8
9[assembly: OwinStartup(typeof(WebApplication1.Startup))]10namespace WebApplication111{12 public partial class Startup13 {14 public void Configuration(IAppBuilder app)15 {22 collapsed lines
16 ConfigureAuth(app);17 }18
19 public void ConfigureAuth(IAppBuilder app)20 {21 app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);22 app.UseCookieAuthentication(new CookieAuthenticationOptions());23 var oidcOptions = new OpenIdConnectAuthenticationOptions24 {25 Authority = "授权服务器地址",26 ClientId = "客户端Id",27 ClientSecret = "客户端秘钥",28 GetClaimsFromUserInfoEndpoint = true,29 PostLogoutRedirectUri = "登出重定向uri",30 RedirectUri = "重定向Uri",31 ResponseType = OpenIdConnectResponseType.Code,32 Scope = OpenIdConnectScope.OpenId // 按自己需要自行添加即可33 };34 app.UseOpenIdConnectAuthentication(oidcOptions);35 }36 }37}如果启动时StartUp类没有加载,可在Web.config 配置文件 appSettings 节点下添加下列配置
1<appSettings>2 <add key="owin:AppStartup" value="<namespace>.Startup, <assembly>" />3</appSettings>读取用户Claims信息
1var claims = System.Security.Claims.ClaimsPrincipal.Current.Claims;参考 https://docs.openathens.net/pages/releaseview.action?pageId=2228523#app-switcher