@ Keycloak后台配置如下图,相关内容根据实际情况修改
- 其中Connection URL中的ip修改一下。
- Users DN:根据AD的域定义,能指定到Users目录
- Bind DN:填写管理员的mapping。比如这里keycloak1在AD里属于管理员组。
- Bind Credential是keycloak1的密码
@ Active Directory创建管理员账户:
- 在AD中创建用户keycloak1,组设置为Administrators, Domain Admins, Domain Users。如图所示
@ 由于Keycloak要更新AD用户密码,AD要求使用SSL安全连接,所以要配置AD SSL连接。
@ AD配置证书服务
- 开始菜单->管理工具->服务器管理
- 角色->添加角色
- 点击“下一步”,在“服务器角色”,选择“Active Directory 证书服务”,点击“下一步”
- 点击“下一步”,默认,选择“证书授权”
- 点击“下一步”,默认,选择“企业”证书
- 点击“下一步”,默认,选择“根证书”
- 下一步,默认,选择“创建新的私有秘钥”
- 下一步,默认内容即可
- 下一步,证书有效期,5年到99年都可以
- 下一步,证书数据地址,默认即可
- 下一步,确认信息,安装
- 重启Windows Server 2008
@ 安装完证书,将证书导出,供客户端(Keycloak所在的机器)使用
打开一个cmd,执行命令certutil -ca.cert ad-client.crt
,到"C:\Users\Administrator"文件夹,将ad-client.crt拷贝到Keycloak主机。
@ 开启”对安全通道数据进行数字加密或数字签名“
- 开始->管理工具->组策略管理器。然后依次打开”林:bejond.org"->域->bejond.org->Domain Controller->Default Domain Controllers Policy,右键,编辑。
- 在“组策略管理编辑器”中,依次打开,计算机配置->策略->Windows 设置->本地策略->安全选项,找到”域成员:对安全通道数据进行数字加密或数字签名(始终)“,双击,选择”已启用“。确定。
- 打开cmd,执行
gpupdate
,更新域控制器的策略。
@ 在Keycloak主机,打开cmd,执行命令keytool -importcert -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file ad-client.crt
。其中%JAVA_HOME%是Java环境变量,如果没有配置或找不到变量,到Java安装目录,定位到cacerts文件,将路径拷贝到命令里就行,比如keytool -importcert -keystore C:\jdk1.8\jre\lib\security\cacerts -file ad-client.crt
。然后会提示输入证书密码,输入"changeit"。然后会询问是否添加证书,输入"y"即可。
- 此时,已经配置完成。重启Keycloak。