通过SCIM 2.0标准协议,结合阿里云OAuth应用的安全授权,您可以将Okta中的用户同步到阿里云访问控制(RAM)中。
前提条件
本文中所有RAM控制台的操作,推荐使用RAM管理员或具有OAuth管理权限的RAM用户完成。
本文中所有Okta的操作,请使用Okta管理员(Super Administrator)账号完成。
背景信息
新建用户:Okta分配用户到应用后,RAM会自动创建同名用户,Okta用户名的域名后缀将会自动替换为RAM用户域名。
更新用户属性:当您在Okta更改用户属性,将自动同步更新RAM用户属性,该功能取决于Okta是否配置开启属性自动更新。当前仅支持UserName、DisplayName。
当您在Okta删除用户或取消用户分配,Okta会将用户状态置为
“active=false”
。RAM用户无启用、禁用状态,不支持Okta对用户Inactive的状态同步,因此同步至RAM的用户不做变更。不支持同步Okta的用户组。
步骤一:在RAM控制台创建OAuth应用并授权
创建OAuth应用。
登录RAM控制台。
在左侧导航栏,选择 。
在企业应用页签,单击创建应用。
在创建应用面板,设置应用参数。
输入应用名称和显示名称。
选择应用类型为NativeApp。
设置访问令牌有效期。
设置刷新令牌有效期。
单击保存。
授权应用范围。
在企业应用页签,单击目标应用名称。
在应用OAuth范围页签,单击添加OAuth范围。
在添加OAuth范围面板,选择/acs/scim。
单击确定。
创建应用密钥。
单击应用密钥页签,然后单击创建密钥。
在创建应用密钥对话框,查看并复制创建成功的应用密钥,然后单击关闭。
重要应用密钥内容仅在创建时可见,不支持查询,请及时保存。
步骤二:在Okta创建应用
- 登录Okta门户。
- 单击页面右上方的账号图标,然后单击Your Org。
- 在左侧导航栏,选择 。
- 在Applications页面,单击Create App Integration。
- 在Create a new app integration对话框,单击SAML 2.0,然后单击Next。
- 配置应用名称为AliyunSSODemo,单击Next。
- 配置SAML,然后单击Next。
- Single sign on URL为步骤一:在阿里云获取SAML服务提供商元数据中记录的
Location
。 - Audience URI为步骤一:在阿里云获取SAML服务提供商元数据中记录的
entityID
。 - Default RelayState用来配置用户SSO登录成功后跳转到的阿里云页面。 说明 出于安全原因,您只能填写阿里巴巴旗下的域名URL作为Default RelayState的值,例如:*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com,否则配置无效。若不配置,默认跳转到阿里云控制台首页。
- Name ID format选择Persistent。
- Application username选择Email。
- Single sign on URL为步骤一:在阿里云获取SAML服务提供商元数据中记录的
- 在Feedback页面,根据需要选择合适的应用类型,然后单击Finish。
步骤三:在Okta配置SCIM同步
启用SCIM同步。
在步骤二:在Okta创建应用创建的应用中,单击General页签。
在App Settings区域,单击Edit。
选中Enable SCIM provisioning,然后单击Save,启用SCIM同步。
配置SCIM连接参数。
单击Provisioning页签。
在左侧导航栏,单击Integration。
在SCIM Connection区域,单击Edit,配置以下参数。
SCIM connector base URL:输入
https://scim.aliyun.com
。Unique identifier field for users:输入
userName
。Supported provisioning actions:选中Import New Users and Profile Updates和Push New Users。
说明Push Profile Updates为可选,表示属性变更是否自动更新。
Authentication Mode:选择OAuth 2。
配置OAuth 2参数。
Access token endpoint URI:输入
https://oauth.alibabacloud.com/v1/token
。Authorization endpoint URI:输入
https://signin.alibabacloud.com/oauth2/v1/auth
。Client ID:输入在步骤一:在RAM控制台创建OAuth应用并授权中创建的阿里云OAuth应用ID。
Client Secret:输入在步骤一:在RAM控制台创建OAuth应用并授权中创建的应用密钥。
单击Save。
获取回调地址。
在Provisioning页签,单击左侧导航栏的Integration。
在页面最底端,单击Authenticate with xxx。
在弹出的页面中,复制回调地址(redirect url)。
登录阿里云RAM控制台,在步骤一:在RAM控制台创建OAuth应用并授权创建的应用中填入回调地址。
返回Okta当前配置页面,单击Authenticate with xxx,然后登录阿里云控制台,完成验证。
配置用户同步参数。
在Provisioning页签,单击左侧导航栏的To App。
在Provisioning to App区域,单击Edit。
在Create User区域,选中Enable,然后单击Save。
说明如果SCIM Connection中配置了Push Profile Updates,您还需要在此处将Push Profile Updates也设置为Enable。
在<App Name> Attribute Mappings区域,配置属性映射,删除不需要的属性,仅保留下图所示的属性。
在Sign on页签,单击Edit。
将Application username format设置为Okta username prefix,然后单击Save。
为应用分配用户。
在Assignments页签,单击Assign。
单击Assign to People,分配用户到应用。
同步过程中如果遇到异常,您可以单击View Logs查看日志信息,帮助您解决问题。
验证结果
上述步骤完成后,Okta用户会自动同步到RAM中。您可以登录RAM控制台,在RAM用户列表中,查看同步成功的用户,同步成功的用户同步类型标识为SCIM 同步。