oneidentity/oneim-api本镜像运行One Identity Manager API Server实例。它在启动时从配置的数据库下载必要文件,其行为可通过密钥值和环境变量控制。
所有标记为windows-amd64的镜像均兼容Windows Server主机。请使用下文列出的标签检查各标签支持的Windows Server版本。
所有标记为linux-amd64的镜像均兼容Linux操作系统主机。
latest, 9.3, 9.2, 9.1, 9.0, 8.2, windows-amd64-9.2-windowsservercore-ltsc2022, windows-amd64-9.1-windowsservercore-ltsc2022, windows-amd64-9.0-windowsservercore-ltsc2022, windows-amd64-8.2-windowsservercore-ltsc2022, windows-amd64-latest-windowsservercore-ltsc2022latest, 9.3, 9.2, 9.1, 9.0, 8.2, windows-amd64-9.2-windowsservercore-ltsc2019, windows-amd64-9.1-windowsservercore-ltsc2019, windows-amd64-9.0-windowsservercore-ltsc2019, windows-amd64-8.2-windowsservercore-ltsc2019, windows-amd64-latest-windowsservercore-ltsc20199.2, 9.1, 9.0, 8.2, windows-amd64-9.2-windowsservercore-ltsc2016, windows-amd64-9.1-windowsservercore-ltsc2016, windows-amd64-9.0-windowsservercore-ltsc2016, windows-amd64-8.2-windowsservercore-ltsc2016latest, 9.3, 9.2, 9.1, 9.0, 8.2, linux-amd64-9.2, linux-amd64-9.1, linux-amd64-9.0, linux-amd64-8.2, linux-amd64-latestLinux镜像免责声明
请注意,并非Identity Manager的所有功能在Linux容器中都受支持。 Identity Manager < 9.3运行在Mono上,且并非所有底层组件在Mono中都可用。
Identity Manager 9.3运行在.NET 8上,且并非所有底层组件在Linux上的.NET 8中都兼容。
注意: 在Linux上,API服务器镜像不会自动更新。当
QBMFileRevision的条目因更新或迁移而更改时,您必须启动新实例。
Web.configWeb.config文件配置API服务器的所有设置。容器会探测两个位置以查找Web.config文件:
Windows
C:\ProgramData\Docker\secrets\Web.config:如果存在此文件,将直接使用,不会用环境变量替换任何占位符。可使用以下命令创建Web.config模板:
powershell$P = $PWD.Path.Replace("\", "/") $VERSION = "latest" docker run -it --rm ` -v $P:C:/Data ` -e "CONNSTRING=Data Source=..." ` -e "UPDATEPWD=..." ` -e BASEURL=http://localhost:9999/ ` -e APPSERVERCONNSTRING=URL=http://localhost/AppServer ` oneidentity/oneim-api:$VERSION ` --createwebcfg C:\data
或者,连接字符串可来自密钥文件夹,且web.config可立即放置在那里:
powershell$P = $PWD.Path.Replace("\", "/") $VERSION = "latest" docker run -it --rm ` -v $P/secrets:C:/ProgramData/Docker/secrets ` -e BASEURL=http://localhost:9999/ ` oneidentity/oneim-api:$VERSION ` --createwebcfg C:/ProgramData/Docker/secrets
注意: 在生成web.config以及启动使用所创建web.config的容器期间,您需要指定相同的
UPDATEACCOUNT和UPDATEPWD值。
容器使用其模板,并使用密钥值或环境变量替换以下值:
| 替换模式 | 密钥值 | 环境变量 | 说明 |
|---|---|---|---|
#FACTORY# | C:\ProgramData\Docker\secrets\DBSYSTEM | DBSYSTEM | 值取决于DBSYSTEM值,但包含具体的数据库工厂类 |
#CONNSTR# | C:\ProgramData\Docker\secrets\CONNSTRING | CONNSTRING | |
%HDB_NAME_1% | C:\ProgramData\Docker\secrets\HDBNAME1 | HDBNAME1 | |
%HDB_CONNECTION_1% | C:\ProgramData\Docker\secrets\HDBCONN1 | HDBCONN1 | |
%HDB_NAME_2% | C:\ProgramData\Docker\secrets\HDBNAME2 | HDBNAME2 | |
%HDB_CONNECTION_2% | C:\ProgramData\Docker\secrets\HDBCONN2 | HDBCONN2 | |
%HDB_NAME_3% | C:\ProgramData\Docker\secrets\HDBNAME3 | HDBNAME3 | |
%HDB_CONNECTION_3% | C:\ProgramData\Docker\secrets\HDBCONN3 | HDBCONN3 | |
#TARGETS# | TARGETS | ||
#BASEURL# | C:\ProgramData\Docker\secrets\BASEURL | BASEURL | |
#ROOTDIR# | SRV_HOME | ||
#APPSERVERCONNSTRING# | C:\ProgramData\Docker\secrets\APPSERVERCONNSTRING | APPSERVERCONNSTRING | |
#UPDATEUSER# | C:\ProgramData\Docker\secrets\UPDATEUSER | UPDATEUSER | |
#APPLICATIONTOKEN# | C:\ProgramData\Docker\secrets\APPLICATIONTOKEN | APPLICATIONTOKEN | |
#FORCEAPPTOKEN# | FORCEAPPTOKEN | ||
#APPINSIGHTS_KEY# | C:\ProgramData\Docker\secrets\APPINSIGHTS_KEY | APPINSIGHTS_KEY | |
#APPINSIGHTS_LOGLEVEL# | C:\ProgramData\Docker\secrets\APPINSIGHTS_LOGLEVEL | APPINSIGHTS_LOGLEVEL | |
#LOG_TENANT# | C:\ProgramData\Docker\secrets\LOG_TENANT | LOG_TENANT | |
#FILE_LOGLEVEL# | C:\ProgramData\Docker\secrets\FILE_LOGLEVEL | FILE_LOGLEVEL | |
#TRUSTEDSOURCEKEY# | C:\ProgramData\Docker\secrets\TRUSTEDSOURCEKEY | TRUSTEDSOURCEKEY | |
#REGISTRATIONUSER# | C:\ProgramData\Docker\secrets\REGISTRATIONUSER | REGISTRATIONUSER | |
#ONELOGINAPI# | C:\ProgramData\Docker\secrets\ONELOGINAPI | ONELOGINAPI | |
#SUPPORTREADSCALEOUT# | C:\ProgramData\Docker\secrets\SUPPORTREADSCALEOUT | SUPPORTREADSCALEOUT |
密钥值优先于环境变量。
Linux
/run/secrets/web.config:如果存在此文件,将直接使用,不会用环境变量替换任何占位符。可使用以下命令创建web.config模板:
shVERSION=latest docker run -it --rm -v $PWD:/data -e "CONNSTRING=Data Source=..." -e BASEURL=http://localhost:9999/ -e APPSERVERCONNSTRING=URL=http://localhost/AppServer oneidentity/oneim-api:linux-amd64-$VERSION --createwebcfg /data
或者,连接字符串可来自密钥文件夹,且web.config可立即放置在那里:
shVERSION=latest docker run -it --rm -v $PWD/secrets:/run/secrets -e BASEURL=http://localhost:9999/ oneidentity/oneim-api:linux-amd64-$VERSION --createwebcfg /run/secrets
容器使用其模板,并使用密钥值或环境变量替换以下值:
| 替换模式 | 密钥值 | 环境变量 | 说明 |
|---|---|---|---|
#FACTORY# | /run/secrets/DBSYSTEM | DBSYSTEM | 值取决于DBSYSTEM值,但包含具体的数据库工厂类 |
#CONNSTR# | /run/secrets/CONNSTRING | CONNSTRING | |
%HDB_NAME_1% | /run/secrets/HDBNAME1 | HDBNAME1 | |
%HDB_CONNECTION_1% | /run/secrets/HDBCONN1 | HDBCONN1 | |
%HDB_NAME_2% | /run/secrets/HDBNAME2 | HDBNAME2 | |
%HDB_CONNECTION_2% | /run/secrets/HDBCONN2 | HDBCONN2 | |
%HDB_NAME_3% | /run/secrets/HDBNAME3 | HDBNAME3 | |
%HDB_CONNECTION_3% | /run/secrets/HDBCONN3 | HDBCONN3 | |
#TARGETS# | TARGETS | ||
#BASEURL# | /run/secrets/BASEURL | BASEURL | |
#ROOTDIR# | SRV_HOME | ||
#APPSERVERCONNSTRING# | /run/secrets/APPSERVERCONNSTRING | APPSERVERCONNSTRING | |
#UPDATEUSER# | /run/secrets/UPDATEUSER | UPDATEUSER | |
#APPLICATIONTOKEN# | /run/secrets/APPLICATIONTOKEN | APPLICATIONTOKEN | |
#FORCEAPPTOKEN# | FORCEAPPTOKEN | ||
#APPINSIGHTS_KEY# | /run/secrets/APPINSIGHTS_KEY | APPINSIGHTS_KEY | |
#APPINSIGHTS_LOGLEVEL# | /run/secrets/APPINSIGHTS_LOGLEVEL | APPINSIGHTS_LOGLEVEL | |
#LOG_TENANT# | /run/secrets/LOG_TENANT | LOG_TENANT | |
#CONSOLE_LOGLEVEL# | /run/secrets/CONSOLE_LOGLEVEL | CONSOLE_LOGLEVEL | |
#TRUSTEDSOURCEKEY# | /run/secrets/TRUSTEDSOURCEKEY | TRUSTEDSOURCEKEY | |
#REGISTRATIONUSER# | /run/secrets/REGISTRATIONUSER | REGISTRATIONUSER | |
#ONELOGINAPI# | /run/secrets/ONELOGINAPI | ONELOGINAPI | |
#SUPPORTREADSCALEOUT# | /run/secrets/SUPPORTREADSCALEOUT | SUPPORTREADSCALEOUT |
密钥值优先于环境变量。
用于加密会话信息的证书将在以下位置查找:
C:\ProgramData\Docker\secrets\SessionCertificate.pfx/run/secrets/SessionCertificate.pfx以下文件夹:
C:\ProgramData\Docker\secrets\/run/secrets可挂载为卷,其中可放置同名的现有证书;如果文件夹可写,服务将尝试在该位置创建新证书。
会话证书需要在API服务器实例之间共享,以便在API服务器更新后或在API服务器集群中重新打开会话。
Windows
可通过以下命令创建会话证书:
powershell$P = $PWD.Path.Replace("\", "/") $VERSION = "latest' docker run -it --rm -v $P/secrets:C:/Data oneidentity/oneim-api:$VERSION --createcert C:\Data
或使用PowerShell:
powershell$outfile = "Path\to\SessionCertificate.pfx" $date = (Get-Date).Date.AddDays(1000) $cert = New-SelfSignedCertificate ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -HashAlgorithm SHA1 ` -KeyExportPolicy Exportable ` -NotAfter $date ` -Subject "CN=API Server" ` -Type DocumentEncryptionCert [System.IO.File]::WriteAllBytes( ` $outfile, ` $cert.Export( ` [System.Security.***graphy.X509Certificates.X509ContentType]::Pkcs12, ` $null))
Linux
可通过以下命令创建会话证书:
shVERSION=latest docker run -it --rm -v $PWD:/data oneidentity/oneim-api:linux-amd64-$VERSION --createcert /data
或使用OpenSSL:
shopenssl genrsa 2048 > private.pem openssl req -x509 -sha1 -days 1000 -new -subj "/CN=API Server" -key private.pem -out public.pem openssl pkcs12 -export -in public.pem -inkey private.pem -password pass: -out config/SessionCertificate.pfx
DBSYSTEM要在安装和运行时连接的数据库或应用服务器系统。有效值为:
MSSQL:Microsoft SQL ServerAPPSERVER:通过应用服务器连接如果未提供DBSYSTEM值,默认使用MSSQL。
可在密钥文件夹中提供。
CONNSTRING用于连接系统的连接字符串。此参数为必填项。内容取决于所用的数据库系统。
不同系统的连接字符串示例:
MSSQL:
connectionstringData Source=[Server];Initial Catalog=[DB];User ID=[User];Password=[Password]
APPSERVER:
connectionstringUrl=[***]
可在密钥文件夹中提供。
APPSERVERCONNSTRING如果主连接使用直接Microsoft SQL Server连接,则为附加的应用服务器连接字符串。当DBSYSTEM等于MSSQL时,此参数为必填项。
connectionstringUrl=[***]
可在密钥文件夹中提供。
TARGETS要安装的部署目标的逗号分隔列表。默认目标为:Server\Web\BusinessAPIServer。
UPDATEUSER用于自动更新处理和在启动期间创建QBMWebApplication条目的用户的身份验证字符串。
可在密钥文件夹中提供。
BASEURL用于创建(如不存在)和使用QBMWebApplication条目的标识符。
可
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务