nzta / silverstripe-okta
Okta 集成模块
Requires
- onelogin/php-saml: dev-feature/sign-logout-request
- silverstripe/cms: ^4.0
- silverstripe/framework: ^4.0
- silverstripe/subsites: ^2.6
- symbiote/silverstripe-queuedjobs: ^4.2
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3
README
Okta 提供安全身份管理和单点登录服务,适用于云端、本地或移动设备上的每位员工。
要求
SilverStripe 4.x
版本信息
此模块的主分支目前旨在与 SilverStripe 4.x 兼容
配置
您需要为单次登录和单次登出设置 SAML 断言的签名证书。
开发时,可以使用此辅助工具生成自签名证书: https://developers.onelogin.com/saml/online-tools/x509-certs/obtain-self-signed-certs
这些证书可以使用您喜欢的任何名称定义,并可以存储在服务器上的任何位置。您还需要将证书上传到您的 Okta 应用程序。
然后,您需要在您的 .env
文件中添加以下环境变量
变量 | 示例值 | 说明 |
---|---|---|
SS_OKTA_SP_ISSUER | https://yourdomain.co.nz | 您的应用程序域名 |
SS_OKTA_SP_LOGOUT_URL | https://yourdomain.co.nz/okta/slo | - |
SS_OKTA_SP_X509 | '/var/www/certs/org-sp.crt' | 示例 SLO 生成证书的路径 |
SS_OKTA_SP_PEM | '/var/www/certs/org-sp.pem' | 示例 SLO 证书的私钥生成路径 |
SS_OKTA_IDP_X509CERT | '/var/www/certs/org-idp.crt' | 从 Okta 下载此证书 |
SS_OKTA_IDP_ISSUER | http://okta.com/XYZ123 | - |
SS_OKTA_IDP_LOGIN_URL | https://org.okta.com/app/appname/XYZ123/sso/saml | - |
SS_OKTA_IDP_LOGOUT_URL | https://org.okta.com/app/appname/XYZ123/slo/saml | - |
SS_OKTA_IP_WHITELIST | 127.0.0.1,192.168.0.10 | 通过添加您的 IP 地址来绕过 Okta 登录进行开发 |
您可以从 Okta 获取 SS_OKTA_IDP_X509CERT、SS_OKTA_IDP_ISSUER、SS_OKTA_IDP_LOGIN_URL 和 SS_OKTA_IDP_LOGOUT_URL 信息,例如 https://{org}.okta.com/app/{appname}/{XYZ123}/setup/help/SAML_2_0/instructions
在哪里
org: 组织名称 appname: Okta 定义的应用程序名称 XYZ123: Okta 定义的随机应用程序 ID
或者
- 登录到您的 okta 账户
- 点击管理员按钮
- 点击应用程序菜单中的应用程序
- 从应用程序列表中点击您的应用程序
- 点击“登录”选项卡
- 点击“查看设置介绍”按钮
您将看到证书的详细信息和下载选项。
在 Okta 中设置 SAML 设置
- 登录到您的 Okta 账户,并遵循最后一步进入您的应用程序
- 点击“常规”选项卡
- 点击 SAML 设置中的“编辑”按钮
- 点击“下一步”
- 点击“显示高级设置”
更新以下设置
字段 | 值 |
---|---|
单点登录 URL | https://yourdomian.co.nz/okta/sso |
受众 URI (SP 实体 ID) | https://yourdomain.co.nz |
名称 ID 格式 | 未指定 |
应用程序用户名 | 电子邮件 |
响应 | 签名 |
断言签名 | 签名 |
签名算法 | RSA-SHA256 |
摘要算法 | SHA256 |
断言加密 | 未加密 |
密钥传输算法 | RSA-OAEP |
设置属性声明
名称 | 值 |
---|---|
FirstName | user.firstName |
Surname | user.lastname |
电子邮件 | user.email |
登录 | user.login |
SID | user.uniqueID |
在okta中分配人员/账号
登录到您的okta账号,并按照最后一步进入您的应用程序,然后从人员部分添加人员/账号以获得应用程序的访问权限。
安装
为了使此模块工作,您需要将onelogin/php-saml
模块导入到当前项目中。您可以通过将以下内容添加到您的composer.json
文件中来实现
"require": { "onelogin/php-saml": "dev-sign-logout-request" }, "repositories": [ { "type": "vcs", "url": "git@github.com:micmania1/php-saml.git" } ]
原始的onelogin/php-saml
模块在注销时最初引起了一些问题。因此,这个分支的目的在于解决原始模块引起的问题,并确保不会出现进一步的问题。
最后,运行composer install