Example oidc
OIDC (OpenID Connect) Example for http://openid.net/connect/
- [Table of content](#table-of-content) - [CI](#ci) - [How to run?](#how-to-run) - [docker-compose.yml (docker platform)](#docker-composeyml-docker-platform) - [build.ps1 (windows platform)](#buildps1-windows-platform) - [Deployed web site](#deployed-web-site) - [OIDC Servers](#oidc-servers) - [OIDC Clients](#oidc-clients) - [OAuth2 Clients](#oauth2-clients) - [OAuth2 Resources Servers](#oauth2-resources-servers) - [OAuth2 Middleware](#oauth2-middleware) - [Global Config](#global-config) - [Blog... The project is written primarily in C#, distributed under the MIT License license, first published in 2017. Key topics include: identityserver4, oauth2, oauth2-client, oauth2-middleware, oauth2-resource-server.
Table of content
- Table of content
- CI
- How to run?
- OIDC Servers
- OIDC Clients
- OAuth2 Clients
- OAuth2 Resources Servers
- OAuth2 Middleware
- Blog
- Old version(ids3 and owin)
CI
| CI | Platform | Stauts |
|---|---|---|
| GitHub Action | Windows |
How to run?
** use ie11 to run**
https://github.com/linianhui/example-oidc/issues/34
<mark><b>⚠️ disable chrome samesite for test: </b></mark> <a href="chrome://flags/#same-site-by-default-cookies">chrome://flags/#same-site-by-default-cookies</a>
docker-compose.yml (docker platform)
bash## start docker docker-compose up --detach --build ## stop docker docker-compose down
Update local /etc/hosts.
bashcat <<EOF >> /etc/hosts 127.0.0.1 traefik.test 127.0.0.1 oidc-server.test 127.0.0.1 oidc-client-hybrid.test 127.0.0.1 oidc-client-js.test 127.0.0.1 oauth2-resources-nodejs.test 127.0.0.1 oauth2-resources-aspnetcore.test 127.0.0.1 oauth2-resources-java.test 127.0.0.1 oauth2-client-aspnetcore.test EOF
build.ps1 (windows platform)
Use administrator run build.ps1 to deploy demo web site to local IIS. Required :
- vs 2019 16.4 +
- .net framework 4.6.1 sdk
- .net core 3.1 sdk
- ASP.NET Core Module
powershellbuild.ps1 -help build.ps1 -target {Task} Task Description ================================================================================ clean 清理项目缓存 restore 还原项目依赖 build 编译项目 deploy-iis 部署到本机IIS open-browser 用浏览器打开部署的站点 default 默认执行open-browser
Deployed web site
| web site | docker | windows | description |
|---|---|---|---|
| http://traefik.test | ✔ | reverse proxy : traefik | |
| http://oidc-server.test | ✔ | ✔ | oidc server : asp.net core 3.1 |
| http://oidc-client-hybrid.test | ✔ | ✔ | oidc client : asp.net core 3.1 |
| http://oidc-client-implicit.test | ✔ | oidc client : asp.net owin 4 | |
| http://oidc-client-js.test | ✔ | ✔ | oidc client : html js(use access_token call resource api) |
| http://oauth2-resources-aspnetcore.test | ✔ | ✔ | oauth2 resources api : asp.net core 3.1 |
| http://oauth2-resources-nodejs.test | ✔ | oauth2 resources api : node.js | |
| http://oauth2-resources-java.test | ✔ | oauth2 resources api : java (spring boot) | |
| http://oauth2-resources-owin.test | ✔ | oauth2 resources api : asp.net webapi 2 | |
| http://oauth2-client-aspnetcore.test | ✔ | ✔ | oauth2 client : asp.net core 3.1 |
| http://oauth2-client-owin.test | ✔ | oauth2 client : asp.net owin 4 |
OIDC Servers
- src/web.oidc.server.ids4 : ids4 (https://github.com/IdentityServer/IdentityServer4) example (with github, qqconnect external login).
OIDC Clients
- src/web.oidc.client.hybrid : web site, hybrid flow.
- src/web.oidc.client.implicit : web site, implicit flow.
- src/web.oidc.client.js : web site(static), implicit flow .
- src/uwp.oidc.client.authorization-code : uwp app, authorization code flow.
- src/wpf.oidc.client.authorization-code : wpf app, authorization code flow.
OAuth2 Clients
- src/web.oauth2.client.aspnetcore : asp.net core 3.1.
- src/web.oauth2.client.owin : asp.net owin.
- src/console.oauth2.client.client-credentials : console app, client credentials flow(oauth2).
- src/console.oauth2.client.resource-owner-password-credentials : console app, resource owner password credentials flow(oauth2).
OAuth2 Resources Servers
- src/web.oauth2.resources.aspnetcore: asp.net core 3.1.
- src/web.oauth2.resources.owin: asp.net owin.
- src/web.oauth2.resources.nodejs: node.js.
- src/web.oauth2.resources.java: java (spring boot 2.2.1).
OAuth2 Middleware
- src/oauth2.github.aspnetcore: asp.net core 3.1.
- src/oauth2.qqconnect.aspnetcore: asp.net core 3.1.
- src/oauth2.qqconnect.owin: asp.net owin.
Global Config
If you want use QQ Connect or Github, please replace ClientId and ClientSercet in src/_shared/GlobalConfig.cs file.
csharppublic static class GlobalConfig { public static class QQConnect { public static readonly string ClientId = "You App Id"; public static readonly string ClientSecret = "You App Secret"; } public static class Github { public static readonly string ClientId = "You App Id"; public static readonly string ClientSecret = "You App Secret"; } }
Blog
Authentication and Authorization: http://www.cnblogs.com/linianhui/category/929878.html
OIDC in Action: http://www.cnblogs.com/linianhui/category/1121078.html
Old version(ids3 and owin)
Contributors
Showing top 2 contributors by commit count.
