将 Oracle Access Management 与 Oracle Advanced Authentication 集成
简介
本教程展示如何将 Oracle Access Management (OAM) 与 Oracle 高级身份验证 (OAA) 集成,以便访问受保护应用程序的用户可以使用单点登录 (SSO) 登录到 OAM,然后使用另一个因子进行多因素身份验证。
还将说明如何配置用户迁移。用户迁移是一个流程,用户登录到 OAM,用户自动迁移到 OAA,并且根据定义的 LDAP 属性注册了因素。为每个用户注册的因素基于 OAA 验证插件中定义的 LDAP 属性。如果用户在 OAM 的默认用户身份存储库中设置了其中的任何 LDAP 属性,则会自动在 OAA 中为用户注册这些因素。在本教程中,LDAP 属性 mail
和 mobile
用于为用户设置电子邮件和 SMS 因素。
目标
在本教程中,您将执行以下任务:
- 在 OAM 中将 OAA 注册为 TAP 合作伙伴
- 在 OAA 中配置 OAM 代理
- 在 OAM 中安装和配置 OAA 插件和模块
- 测试 OAM amd OAA 集成是否成功
Oracle Access Management 先决条件
在讲授本教程之前,您必须:
- 正在运行的 Oracle Access Management 12c (12.2.1.4) 安装。安装在 OAM 使用的默认用户身份存储库中必须具有样例用户。
- Oracle HTTP Server 和 Oracle WebGate 的安装
- 受 WebGate 保护的应用程序
为了演示目的,本教程以教程系列 Getting Started with Oracle Access Management 12c 中创建的环境为基础。在此环境中,Oracle Access Management 使用 Oracle Unified Directory (OUD) 作为其默认用户身份存储库。名为 mybank
的应用程序部署到 WebLogic 服务器并通过 Oracle WebGate 进行保护。本教程中对 OAM 主机名, URL, PATH 和用户的任何引用都基于Oracle Access Management 12c 入门教程中使用的引用。
如果将以上教程用于 OAM 环境,则需要下载示例 oaausers.ldif。此文件包含安装 OAA 之前所需的用户和组。编辑 oaausers.ldif
并为具有有效值的每个用户更新 mail
、mobile
和 <password>
。这样您可以测试,当用户登录 OAM 时(例如 testuser
),用户将迁移到 OAA,并将他们的因素设置为 SMS 和电子邮件。对 OUD 运行 ldapmodify -f oaausers.ldif
以加载用户和组。
Oracle 高级验证先决条件
在讲授本教程之前,您必须:
- 正在运行的 Oracle 高级身份验证 (OAA) 实例。有关如何安装 OAA 的说明,请参见Administering Oracle Advanced Authentication and Oracle Adaptive Risk Management
- OAA 实例已安装并配置为对上面列出的相同 OAM 安装使用 OAUTH。您必须知道在 OAA 安装期间在
installOAA.properties
文件中传递的oauth.applicationid
的值。 - 必须将 OAA 配置为与消息传送提供程序一起使用,以允许通过 SMS 和 / 或 EMAIL 进行验证。请参阅为电子邮件和 SMS 配置 Oracle UMS 服务器和定制电子邮件和 SMS 消息传送提供程序。
- OAA 管理 URL,例如:
https://oaa.example.com/oaa-admin
和管理员凭据,例如:oaadmin/<password>
- OAA 用户首选项 (SPUI) URL:例如:
http://oaa.example.com/oaa/rui
在 OAM 中将 OAA 注册为 TAP 合作伙伴
在此部分中,您将 OAA 注册为 OAM 中的可信验证协议 (TAP) 合作伙伴。
目标
将 OAA 注册为 OAM 中的 TAP 合作伙伴。
在 OAM 中注册 TAP 合作伙伴
-
在 OAM 服务器上,以
oracle
身份启动终端窗口,然后输入以下命令:cd /u01/app/oracle/product/middleware/oracle_common/common/bin ./wlst.sh
输出将如下所示:
Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands wls:/offline>
-
按如下方式连接到 OAM 管理服务器:
wls:/offline> connect ('weblogic','<password>')
输出将如下所示:
Successfully connected to Admin Server "AdminServer" that belongs to domain "oam_domain". Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire security, the SSL port or Admin port should be used instead. wls:/oam_domain/serverConfig/>
-
运行以下命令以重新生成 OAA TAP 合作伙伴:
wls:/oam_domain/serverConfig/> registerThirdPartyTAPPartner(partnerName = "<partner_name>", keystoreLocation= "<path_to_keystore>", password="<keystore_password>", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="<URL>")
其中:
<partner_name>
是您要为合作伙伴应用程序提供的名称。<path_to_keystore>
是要生成的密钥库的位置和文件名。<keystore_password>
是生成的密钥库的密码。tapRedirectUrl
是任何有效的 http URL。URL 必须可访问并返回 200 OK 响应。请勿使用 https URL,否则将出现错误消息。
例如:
registerThirdPartyTAPPartner(partnerName = "OAM-MFAPartner", keystoreLocation= "/tmp/OAMOAAKeyStore.jks", password="********", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="http://oam.example.com:7777")
输出将如下所示:
Registration Successful wls:/oam_domain/serverConfig/>
在上面的示例中,将生成密钥库
/tmp/OAMOAAKeyStore.jks
。以后在 OAA 中将 OAM 注册为代理时,将使用此密钥和密码。 -
运行以下命令以退出 wlst:
wls:/oam_domain/serverConfig/> exit() Exiting WebLogic Scripting Tool.
在 OAA 中配置 OAM 代理
在此部分中,您将在 OAM 管理控制台中为 OAM 配置代理。
目标
在 OAA 中配置 OAM 的代理。
在 OAA 中配置 OAM 代理
-
使用管理员身份证明登录 OAA 管理控制台。例如:
https://oaa.example.com/oaa-admin
-
在快速操作下,选择创建 OAM 集成代理。
-
在创建集成代理的详细信息选项卡中,输入以下内容:
- 名称:
<partner_name>
,其中值与之前注册的 TAP 合作伙伴名称相同,例如:OAM-MFAPartner
- 说明:
OAM TAP Partner for OAA
- 集成代理类型:
Oracle Access Management
- 客户机 ID:单击
Re-Generate
- 客户端密钥:单击
Re-Generate
- 私有密钥文件:拖放注册 TAP 合作伙伴时创建的密钥文件,例如
/tmp/OAMOAAKeyStore.jks
,或者单击 + 从文件系统中选择密钥文件 - 私有密钥密码:
<password>
注册 TAP 合作伙伴时为密钥库输入的密码
例如:
- 名称:
-
将客户端 ID(例如
e1d7dd2d-83e2-4ac8-b338-5dbc6348b526
和客户端密钥,例如34e360cf-3ccc-4dcd-911e-0b00e367dcee9
)复制到安全位置,因为以后配置 OAM 时需要这些 ID。 -
单击保存
-
在集成代理屏幕中,单击刚刚创建的代理,例如:OAM-MFAPartner
-
在保险级别中,单击创建。
-
在创建保障级别中,输入以下内容,然后单击创建:
- 名称:
OAM-MFA-Level
- 说明:
OAM-MFA-Level for OAM Integration
例如:
注意:为名称输入的值将在
ASSURANCE_LEVEL
的 OAM OAA 插件配置中稍后使用。 - 名称:
-
在 Assurance Levels 选项卡中,单击 OAM-MFA-Level
-
在使用下,选择要分配给保证级别的因素,例如:Oracle Mobile Authenticator、电子邮件质询和 SMS 质询,然后单击保存。
例如:
在 OAM 中安装和配置 OAA 插件
在本节中,您将在 OAM 中配置 OAA 插件。
目标
要在 OAM 中配置 OAA 插件并创建关联的验证模块,以便与 OAA 集成以进行第二个因素验证。
为 OAM 安装 OAA 插件
注:如果将 OAM 与 4 月 22 日的捆绑补丁程序 (12.2.1.4.220404) 或更高版本结合使用,则可以跳过此部分并移至为 OAA 创建验证模块,因为默认情况下该插件包含在 OAM 中。
-
在运行
oaamgmt
pod 的 OAA 环境中,将 OAA 插件OAAAuthnPlugin.jar
从 pod/u01/oracle/libs
目录复制到主机上的目录(例如/scratch/OAA
):$ kubectl cp <namespace>/<oaamgmt_pod>:/u01/oracle/libs/OAAAuthnPlugin.jar <directory>/OAAAuthnPlugin.jar
例如:
$ kubectl cp oaans/oaamgmt-oaa-mgmt-5c68dc9c57-t2h6w:/u01/oracle/libs/OAAAuthnPlugin.jar /scratch/OAA/OAAAuthnPlugin.jar
-
启动浏览器并访问 OAM 管理控制台:
http://oam.example.com:7001/oamconsole
。以weblogic
/<password>
身份登录。 -
将
OAAAuthnPlugin.jar
复制到运行浏览器的计算机。 -
导航到 Application Security(应用程序安全性) -> Plug-ins(插件) -> Authentication Plug-ins(验证插件)。
-
在插件选项卡中,选择导入插件。
-
在导入插件窗口中,选择选择文件以选择插件文件 (*.jar)。选择
OAAAuthnPlugin.jar
的位置,然后单击导入。 -
在同一页上,导航到搜索字段,然后输入
OAAAuthnPlugin
。突出显示插件,然后选择分布所选项。 -
在插件的激活状态显示 Distributed 后,选择 Activate Selected。激活状态应更改为已激活。
例如:
-
关闭 Plugins-tab。
为 OAA 创建验证模块
-
在 OAM 控制台中,导航到 Application Security(应用程序安全性) -> Plug-ins(插件) -> Authentication Modules(验证模块)。
-
在 Authentication Modules 选项卡中,依次单击 Create Authentication Module 和 Create Custom Authentication Module。
-
在 Authentication Module -> General 选项卡中,输入以下内容:
- 名称:
OAA-MFA-Auth-Module
- 说明:
OAA MFA Authentication Module
- 名称:
-
单击步骤链接,然后在步骤选项卡中单击添加。
-
在添加新步骤窗口中,输入以下内容,然后单击确定:
- 步骤名:
UserIdentificationStep
- 说明:
Identify User
- 插件名称:
UserIdentificationPlugIn
- 步骤名:
-
再次单击添加,输入以下内容,然后单击确定:
- 步骤名称:
User OAA MFA Step
- 说明:
MFA with OAA
- 插件名称:
OAAAuthnPlugin
- 步骤名称:
-
再次单击添加,输入以下内容,然后单击确定:
- 步骤名:
PasswordValidation
- 说明:
Validate user password on OAM
- 插件名称:
UserAuthenticationPlugin
模块当前应如下所示:
- 步骤名:
-
单击
User OAA MFA Step
并填充以下字段:- OAA_URL:
<SPUI_URL/authn/v1>
,例如https://oaa.example.com/oaa/rui/authn/v1
- TAP_AGENT:
<partner_name>
。此值应该是向 OAM 注册 TAP 合作伙伴时提供的名称,例如OAM-MFAPartner
- APPLICATION_ID:
<app_id>
。这是要与迁移到 OAA 的 OAM 用户关联的 OAA 组的名称,例如Default
。此值应与安装 OAA 时使用的oauth.applicationid
匹配,否则最终用户将无法访问“用户首选项”UI。 - IDENTITY_STORE_REF:
<default_user_identity_store>
。这应设置为在 OAM 控制台中设置的默认存储值 -> 配置 -> 用户身份存储库。例如OUDStore
- ASSURANCE_LEVEL:
<assurance_level>
。此值应设置为先前在 OAA 中创建的保险级别,例如OAM-MFA-Level
- CLIENT_ID:
<client_id>
。这是先前创建代理时复制的客户端 ID 的值,例如:e1d7dd2d-83e2-4ac8-b338-5dbc6348b526
- CLIENT_SECRET:
<client_secret>
。这是先前创建代理时复制的客户端 ID 的值,例如:34e360cf-3ccc-4dcd-911e-0b00e367dcee
- LDAP_ATTRS:
mail,mobile
.这些是 LDAP 服务器中用户的电子邮件地址和移动电话号码的 LDAP 属性集。这样,用户数据就可以迁移到 OAA。注:必须以小写形式指定 LDAP_ATTRS。即使 LDAP 属性以camelCase
身份存储在 LDAP 中,也是如此。
例如:
- OAA_URL:
-
单击保存。
-
单击步骤业务流程,然后从初始步骤下拉列表中选择用户 OAA MFA 步骤。
-
在表中,按如下方式选择值:
名称 说明 成功时 失败时 出错时 UserIdentificationStep 确定用户 口令验证 失败 失败 使用 OAA MFA 步骤 使用 OAA 的 MFA 成功 UserIdentificationStep 失败 PasswordValidation 在 OAM 上验证用户密码 使用 OAA MFA 步骤 失败 失败 例如:
-
单击应用。
创建 OAA 验证方案
-
在 Application Security Launchpad -> Access Manager 中,单击 Authentication Schemes。
-
在验证方案选项卡上,选择创建验证方案
-
在 "Create Authentication Schema"(创建验证方案)选项卡中,输入:
- 名称:
<scheme_name>
,例如OAA-MFA-Scheme
- 说明:
OAA MFA Authentication Scheme
- 验证级别:
2
- 质询方法:
Form
- 质询重定向 URL:
/oam/server/
- 验证模块:
OAA-MFA-Auth-Module
- 质询 URL:
/pages/login.jsp
- 上下文类型:
Default
- 上下文值:
/oam
- 质询参数:
initial_command=NONE
。此参数允许无密码登录。请参见Passwordless Login
- 名称:
-
单击应用。
更新 WebGate 以将 OAA MFA 方案用于受保护应用程序
注意:在下面的示例中,使用了 webgate webgate_7777
,受保护的应用程序 URL 为 /mybank
。如果使用不同的内容,请相应地进行更改。
-
在应用程序安全启动板 -> 访问管理器中,单击应用程序域。
-
在应用程序域选项卡中,单击搜索。
-
单击 WebGate 可更新,例如:
webgate_7777
。 -
在 WebGate 选项卡 (webgate_7777) 中,单击 Authentication Policies。单击创建。
-
在创建验证策略中,输入以下内容,然后单击 "Apply"(应用):
- 名称:
OAA_MFA-Policy
- 验证方案:
OAA-MFA-Scheme
- 名称:
-
在 WebGate 选项卡 (webgate_7777) 选项卡中,选择资源选项卡,单击搜索,然后单击创建。
-
在创建资源选项卡中,输入以下内容,然后单击应用:
- 类型:
HTTP
- 说明:
OAA Resource
- 主机标识符:
webgate_7777
- 资源 URL:
/mybank/**
- 操作:
ALL
- 保护级别:
Protected
- Authentication Policy:
OAA_MFA-Policy
- 授权策略:
Protected Resource Policy
注:如果您有其他已受保护的
/mybank
URI,请更新这些 URI,并将验证策略更改为OAA_MFA_Policy
- 类型:
-
重新启动 OAM 服务器以选取新的 OAA 插件配置。
测试 OAM 和 OAA 集成
在此部分中,您将访问受保护的应用程序,登录到 OAM 并测试第二个因素验证是否有效。
目标
要测试 OAA 和 OAM 集成,请执行以下操作:
测试 OAM 和 OAA 集成
-
启动浏览器并访问受保护的应用程序,例如:
http://oam.example.com:7777/mybank
。由于此应用程序受保护,因此您应该重定向到 OAM 登录页面。以新用户testuser
/<password>
身份登录。 -
如果登录成功,您将重定向到 OAA 端点,例如:
https://oaa.example.com/oaa/authnui
。由于 OAM 中 OAA 插件的LDAP_ATTRS
设置为mail,mobile
,并且这些 LDAP 属性是针对测试用户填充的,因此会显示质询选择页供用户选择电子邮件或 SMS。在 Email Challenge(电子邮件质询)下,选择 Send OTP to te**@**.com。 -
您将重定向到电子邮件页,要求您从注册的电子邮件 Device1 输入 OTP。在输入 OTP 字段中,输入通过电子邮件发送到用户电子邮件地址的一次性验证码,然后单击验证。
-
如果验证成功,则应重定向到受保护的应用程序页,例如
/mybank
。 -
关闭现有浏览器并启动新浏览器。再次访问受保护的应用程序,例如:
http://oam.example.com:7777/mybank
。 -
由于通过验证方案
OAA-MFA-Scheme
中的initial_command=NONE
参数启用无密码登录,因此不会要求用户输入 OAM 用户和密码,并指示用户选择其第二个因子验证方法。在 SMS 质询下,选择将 OTP 发送到电话 0****3。 -
您将重定向到 SMS 页面,要求您从注册的 SMS 设备输入 OTP。在输入 OTP 字段中,输入发送到用户移动设备的一次性验证码,然后单击验证。
-
如果验证成功,则应重定向到受保护的应用程序页,例如
/mybank
。
了解更多
- Oracle Advanced Authentication 和 Oracle Adaptive Risk Management
- 将 Oracle Advanced Authentication REST API 与 Postman 结合使用
- WebLogic 身份和访问管理的脚本工具命令引用
反馈
要提供有关本教程的反馈,请联系 idm_user_assistance_ww_grp@oracle.com
致谢
- 作者 - Russ Hodgson
更多学习资源
在 docs.oracle.com/learn 上浏览其他实验室,或者在 Oracle Learning YouTube 渠道上访问更多免费学习内容。此外,访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Integrate Oracle Access Management with Oracle Advanced Authentication
F39325-06
January 2023
Copyright © 2023 Oracle and/or its affiliates.