SimpleIdServer 核心
SimpleIdServer 是一个开源框架,支持 OPENID、OAUTH2.0、SCIM2.0、UMA2.0、FAPI 和 CIBA。它简化了自定义访问控制服务器的开发、配置和部署。 得益于其模块化和可扩展性,SimpleIdServer 可以根据您组织的特定需求进行定制,用于身份认证、授权等。
包
准备工作
安装 SimpleIdServer 模板。
dotnet new --install SimpleIdServer.Templates
这将添加以下模板
命令行 | 描述 |
---|---|
dotnet new idserver | 创建身份服务器。默认情况下,Entity Framework 配置为使用 SQLServer |
dotnet new idserverwebsite | 创建身份服务器网站。默认情况下,Entity Framework 配置为使用 SQLServer |
dotnet new scim | 创建 SCIM 服务器。 |
dotnet new credissuer | 创建凭证颁发者 API。 |
dotnet new credissueradminui | 创建凭证颁发者管理 UI。 |
创建 Visual Studio 解决方案
打开命令提示符并执行以下命令来创建解决方案的目录结构。
mkdir Quickstart
cd Quickstart
mkdir src
dotnet new sln -n Quickstart
创建 IdentityServer 项目
要创建一个名为 IdServer
的 Web 项目并安装 SimpleIdServer.IdServer
包,执行以下命令行:
cd src
dotnet new idserver -n IdServer
以下文件将在新的 src/IdServer
目录中创建:
IdServer.csproj
:添加了SimpleIdServer.IdServer
NuGet 包的项目文件。appsettings.json
:包含连接字符串。Program.cs
:主应用程序入口点。IdServerConfiguration.cs
:包含Clients
和Resources
。
接下来,将 IdServer
项目添加到 Visual Studio 解决方案中
cd ..
dotnet sln add ./src/IdServer/IdServer.csproj
运行 IdServer 项目,确保它监听 URL https://localhost:5001
。
cd src/IdServer
dotnet run --urls=https://localhost:5001
IdentityServer 现在已准备就绪可以使用。
默认情况下,配置了一个管理员账户。您可以通过导航到 URL https://localhost:5001/master
并使用以下凭据进行身份验证来访问其个人资料:
- 登录:administrator
- 密码:password
IdentityServer UI 预览
IdentityServer UI 使用 Bootstrap 5。
创建 IdentityServer 网站项目
创建一个名为 IdServerWebsite
的 Web 项目,并安装 SimpleIdServer.IdServer.Website
包,执行以下命令行:
cd src
dotnet new idserverwebsite -n IdServerWebsite
运行 IdServerWebsite
项目,它必须监听 URL https://localhost:5002
。
cd src/IdServerWebsite
dotnet run --urls=https://localhost:5002
IdentityServer 网站现在已准备就绪可以使用。
该网站可用于管理 Identity Server 解决方案的所有方面,如管理客户端、用户和作用域。
Identity Server 网站 UI 预览
IdentityServer 网站 UI 使用 Radzen。
SCIM 安全性
默认情况下,SCIM 配置为使用 API KEY 身份验证。
客户端要执行任何操作,必须在 HTTP HEADER Authorization Bearer
字段中包含以下其中一个密钥。
所有者 | 值 |
---|---|
IdServer | ba521b3b-02f7-4a37-b03c-58f713bf88e7 |
AzureAd | 1595a72a-2804-495d-8a8a-2c861e7a736a |
创建带有 EF 支持的 SCIM 项目
创建一个名为 ScimEF
的 Web 项目,安装 SimpleIdServer.Scim.Persistence.EF
包,并配置 Entity Framework (EF) 使用 SQLServer,执行以下命令行:
cd src
dotnet new scim -n ScimEF --connectionString "Data Source=.;Initial Catalog=SCIM;Integrated Security=True;TrustServerCertificate=True" -t "SQLSERVER"
接下来,将 ScimEF
项目添加到 Visual Studio 解决方案中
cd ..
dotnet sln add ./src/ScimEF/ScimEF.csproj
运行 ScimEF 项目,确保它监听 URL https://localhost:5003
。
cd src/SCIMEF
dotnet run --urls=https://localhost:5003
现在 SCIM 服务器正在运行,您可以通过访问 https://localhost:5003/Schemas 来检查其架构端点。
创建带有 MongoDB 支持的 SCIM 项目
要创建一个名为 ScimMongoDB 的 Web 项目,安装 SimpleIdServer.Scim.Persistence.MongoDB 包并支持 MongoDB,执行以下命令行:
cd src
dotnet new scim -n ScimMongoDB --connectionString "mongodb://localhost:27017" -t "MONGODB"
接下来,将 ScimMongoDB
项目添加到 Visual Studio 解决方案中
cd ..
dotnet sln add ./src/ScimMongoDB/ScimMongoDB.csproj
运行 ScimMongoDB 项目,确保它监听 URL https://localhost:5003
。
cd src/ScimMongoDB
dotnet run --urls=https://localhost:5003
现在 SCIM 服务器正在运行,您可以通过访问 https://localhost:5003/Schemas 来检查其架构端点。
创建凭证颁发者项目
要创建一个名为 CredentialIssuer
的 Web 项目并安装 SimpleIdServer.CredentialIssuer
包,执行以下命令行:
cd src
dotnet new credissuer -n CredentialIssuer
以下文件将在新的 src/CredentialIssuer
目录中创建:
CredentialIssuer.csproj
:添加了SimpleIdServer.CredentialIssuer
NuGet 包的项目文件。appsettings.json
:包含配置 Openid 身份验证的属性,如 ClientId、ClientSecret 和 Issuer。Program.cs
:主应用程序入口点。CredentialIssuerConfiguration.cs
:包含CredentialConfigurations
。
运行 CredentialIssuer 项目,确保它监听 URL https://localhost:5005
。
cd src/IdServer
dotnet run --urls=https://localhost:5005
CredentialIssuer 现在已准备就绪可以使用。
凭证颁发者 UI 预览
CredentialIssuer UI 使用 Bootstrap 5。
创建凭证颁发者网站项目
要创建一个名为 CredentialIssuerAdminui
的 Web 项目并安装 SimpleIdServer.CredentialIssuer.Website
包,执行以下命令行:
cd src
dotnet new credissueradminui -n CredentialIssuerAdminui
运行 CredentialIssuerAdminui
项目,它必须监听 URL https://localhost:5006
。
cd src/IdServerWebsite
dotnet run --urls=https://localhost:5006
凭证颁发者管理界面现在已准备就绪可以使用。
该网站可用于管理凭证配置。
凭证颁发者网站 UI 预览
CredentialIssuer 网站 UI 使用 Radzen。
使用 Docker 运行
要在 Docker 中执行所有项目,请执行以下命令:
psake dockerBuild
psake dockerUp
贡献
请阅读 CONTRIBUTING.md 了解我们的行为准则以及向我们提交拉取请求的流程详情。
联系我们
要联系团队,您可以发送电子邮件至 agentsimpleidserver@gmail.com
或在 gitter.im 上分享您的想法。
邀请链接是 https://app.gitter.im/#/room/#simpleidserver:gitter.im