将 Oracle Access Management 与 Oracle Advanced Authentication 集成

简介

本教程展示如何将 Oracle Access Management (OAM) 与 Oracle 高级身份验证 (OAA) 集成,以便访问受保护应用程序的用户可以使用单点登录 (SSO) 登录到 OAM,然后使用另一个因子进行多因素身份验证。

还将说明如何配置用户迁移。用户迁移是一个流程,用户登录到 OAM,用户自动迁移到 OAA,并且根据定义的 LDAP 属性注册了因素。为每个用户注册的因素基于 OAA 验证插件中定义的 LDAP 属性。如果用户在 OAM 的默认用户身份存储库中设置了其中的任何 LDAP 属性,则会自动在 OAA 中为用户注册这些因素。在本教程中,LDAP 属性 mailmobile 用于为用户设置电子邮件和 SMS 因素。

目标

在本教程中,您将执行以下任务:

  1. 在 OAM 中将 OAA 注册为 TAP 合作伙伴
  2. 在 OAA 中配置 OAM 代理
  3. 在 OAM 中安装和配置 OAA 插件和模块
  4. 测试 OAM amd OAA 集成是否成功

Oracle Access Management 先决条件

在讲授本教程之前,您必须:

为了演示目的,本教程以教程系列 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 并为具有有效值的每个用户更新 mailmobile<password>。这样您可以测试,当用户登录 OAM 时(例如 testuser),用户将迁移到 OAA,并将他们的因素设置为 SMS 和电子邮件。对 OUD 运行 ldapmodify -f oaausers.ldif 以加载用户和组。

Oracle 高级验证先决条件

在讲授本教程之前,您必须:

在 OAM 中将 OAA 注册为 TAP 合作伙伴

在此部分中,您将 OAA 注册为 OAM 中的可信验证协议 (TAP) 合作伙伴。

目标

将 OAA 注册为 OAM 中的 TAP 合作伙伴。

在 OAM 中注册 TAP 合作伙伴

  1. 在 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> 
    
  2. 按如下方式连接到 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/> 
    
  3. 运行以下命令以重新生成 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 注册为代理时,将使用此密钥和密码。

  4. 运行以下命令以退出 wlst:

    wls:/oam_domain/serverConfig/> exit()
    Exiting WebLogic Scripting Tool.
    

在 OAA 中配置 OAM 代理

在此部分中,您将在 OAM 管理控制台中为 OAM 配置代理。

目标

在 OAA 中配置 OAM 的代理。

在 OAA 中配置 OAM 代理

  1. 使用管理员身份证明登录 OAA 管理控制台。例如:https://oaa.example.com/oaa-admin

  2. 快速操作下,选择创建 OAM 集成代理

  3. 创建集成代理详细信息选项卡中,输入以下内容:

    • 名称<partner_name>,其中值与之前注册的 TAP 合作伙伴名称相同,例如:OAM-MFAPartner
    • 说明OAM TAP Partner for OAA
    • 集成代理类型Oracle Access Management
    • 客户机 ID:单击 Re-Generate
    • 客户端密钥:单击 Re-Generate
    • 私有密钥文件:拖放注册 TAP 合作伙伴时创建的密钥文件,例如 /tmp/OAMOAAKeyStore.jks,或者单击 + 从文件系统中选择密钥文件
    • 私有密钥密码<password> 注册 TAP 合作伙伴时为密钥库输入的密码

    例如:

    插图 createagent.jpg 的说明

  4. 将客户端 ID(例如 e1d7dd2d-83e2-4ac8-b338-5dbc6348b526 和客户端密钥,例如 34e360cf-3ccc-4dcd-911e-0b00e367dcee9)复制到安全位置,因为以后配置 OAM 时需要这些 ID。

  5. 单击保存

  6. 集成代理屏幕中,单击刚刚创建的代理,例如:OAM-MFAPartner

  7. 保险级别中,单击创建

  8. 创建保障级别中,输入以下内容,然后单击创建

    • 名称OAM-MFA-Level
    • 说明OAM-MFA-Level for OAM Integration

    例如:

    插图 uredlevel.jpg 的说明

    注意:为名称输入的值将在 ASSURANCE_LEVEL 的 OAM OAA 插件配置中稍后使用。

  9. Assurance Levels 选项卡中,单击 OAM-MFA-Level

  10. 使用下,选择要分配给保证级别的因素,例如:Oracle Mobile Authenticator电子邮件质询SMS 质询,然后单击保存

    例如:

    插图 definitionpolicy.jpg 的说明

在 OAM 中安装和配置 OAA 插件

在本节中,您将在 OAM 中配置 OAA 插件。

目标

要在 OAM 中配置 OAA 插件并创建关联的验证模块,以便与 OAA 集成以进行第二个因素验证。

为 OAM 安装 OAA 插件

:如果将 OAM 与 4 月 22 日的捆绑补丁程序 (12.2.1.4.220404) 或更高版本结合使用,则可以跳过此部分并移至为 OAA 创建验证模块,因为默认情况下该插件包含在 OAM 中。

  1. 在运行 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
    
  2. 启动浏览器并访问 OAM 管理控制台:http://oam.example.com:7001/oamconsole。以 weblogic/<password> 身份登录。

  3. OAAAuthnPlugin.jar 复制到运行浏览器的计算机。

  4. 导航到 Application Security(应用程序安全性) -> Plug-ins(插件) -> Authentication Plug-ins(验证插件)

  5. 插件选项卡中,选择导入插件

  6. 导入插件窗口中,选择选择文件以选择插件文件 (*.jar)。选择 OAAAuthnPlugin.jar 的位置,然后单击导入

  7. 在同一页上,导航到搜索字段,然后输入 OAAAuthnPlugin。突出显示插件,然后选择分布所选项

  8. 在插件的激活状态显示 Distributed 后,选择 Activate Selected激活状态应更改为已激活

    例如:

    插图 oaaauthnplugin.jpg 的说明

  9. 关闭 Plugins-tab

为 OAA 创建验证模块

  1. 在 OAM 控制台中,导航到 Application Security(应用程序安全性) -> Plug-ins(插件) -> Authentication Modules(验证模块)

  2. Authentication Modules 选项卡中,依次单击 Create Authentication ModuleCreate Custom Authentication Module

  3. Authentication Module -> General 选项卡中,输入以下内容:

    • 名称OAA-MFA-Auth-Module
    • 说明OAA MFA Authentication Module
  4. 单击步骤链接,然后在步骤选项卡中单击添加

  5. 添加新步骤窗口中,输入以下内容,然后单击确定

    • 步骤名UserIdentificationStep
    • 说明Identify User
    • 插件名称UserIdentificationPlugIn
  6. 再次单击添加,输入以下内容,然后单击确定

    • 步骤名称User OAA MFA Step
    • 说明MFA with OAA
    • 插件名称OAAAuthnPlugin
  7. 再次单击添加,输入以下内容,然后单击确定

    • 步骤名PasswordValidation
    • 说明Validate user password on OAM
    • 插件名称UserAuthenticationPlugin

    模块当前应如下所示:

    插图 modulesteps.jpg 的说明

  8. 单击 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 中,也是如此。

    例如:

    插图 useoaamfastep.jpg 的说明

  9. 单击保存

  10. 单击步骤业务流程,然后从初始步骤下拉列表中选择用户 OAA MFA 步骤

  11. 在表中,按如下方式选择值:

    名称 说明 成功时 失败时 出错时
    UserIdentificationStep 确定用户 口令验证 失败 失败
    使用 OAA MFA 步骤 使用 OAA 的 MFA 成功 UserIdentificationStep 失败
    PasswordValidation 在 OAM 上验证用户密码 使用 OAA MFA 步骤 失败 失败

    例如:

    插图 Steporchestration.jpg 的说明

  12. 单击应用

创建 OAA 验证方案

  1. Application Security Launchpad -> Access Manager 中,单击 Authentication Schemes

  2. 验证方案选项卡上,选择创建验证方案

  3. 在 "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

    插图 authnscheme.jpg 的说明

  4. 单击应用

更新 WebGate 以将 OAA MFA 方案用于受保护应用程序

注意:在下面的示例中,使用了 webgate webgate_7777,受保护的应用程序 URL 为 /mybank。如果使用不同的内容,请相应地进行更改。

  1. 应用程序安全启动板 -> 访问管理器中,单击应用程序域

  2. 应用程序域选项卡中,单击搜索

  3. 单击 WebGate 可更新,例如:webgate_7777

  4. 在 WebGate 选项卡 (webgate_7777) 中,单击 Authentication Policies。单击创建

  5. 创建验证策略中,输入以下内容,然后单击 "Apply"(应用):

    • 名称OAA_MFA-Policy
    • 验证方案OAA-MFA-Scheme
  6. 在 WebGate 选项卡 (webgate_7777) 选项卡中,选择资源选项卡,单击搜索,然后单击创建

  7. 创建资源选项卡中,输入以下内容,然后单击应用

    • 类型HTTP
    • 说明OAA Resource
    • 主机标识符webgate_7777
    • 资源 URL/mybank/**
    • 操作ALL
    • 保护级别Protected
    • Authentication Policy:OAA_MFA-Policy
    • 授权策略Protected Resource Policy

    :如果您有其他已受保护的 /mybank URI,请更新这些 URI,并将验证策略更改为 OAA_MFA_Policy

  8. 重新启动 OAM 服务器以选取新的 OAA 插件配置。

测试 OAM 和 OAA 集成

在此部分中,您将访问受保护的应用程序,登录到 OAM 并测试第二个因素验证是否有效。

目标

要测试 OAA 和 OAM 集成,请执行以下操作:

测试 OAM 和 OAA 集成

  1. 启动浏览器并访问受保护的应用程序,例如:http://oam.example.com:7777/mybank。由于此应用程序受保护,因此您应该重定向到 OAM 登录页面。以新用户 testuser/<password> 身份登录。

    插图 oamlogin.jpg 的说明

  2. 如果登录成功,您将重定向到 OAA 端点,例如:https://oaa.example.com/oaa/authnui。由于 OAM 中 OAA 插件的 LDAP_ATTRS 设置为 mail,mobile,并且这些 LDAP 属性是针对测试用户填充的,因此会显示质询选择页供用户选择电子邮件或 SMS。在 Email Challenge(电子邮件质询)下,选择 Send OTP to te**@**.com

    插图 allengechoice.jpg 的说明

  3. 您将重定向到电子邮件页,要求您从注册的电子邮件 Device1 输入 OTP。在输入 OTP 字段中,输入通过电子邮件发送到用户电子邮件地址的一次性验证码,然后单击验证

    插图 emailotp.jpg 的说明

  4. 如果验证成功,则应重定向到受保护的应用程序页,例如 /mybank

    插图 mybank.jpg 的说明

  5. 关闭现有浏览器并启动新浏览器。再次访问受保护的应用程序,例如:http://oam.example.com:7777/mybank

  6. 由于通过验证方案 OAA-MFA-Scheme 中的 initial_command=NONE 参数启用无密码登录,因此不会要求用户输入 OAM 用户和密码,并指示用户选择其第二个因子验证方法。在 SMS 质询下,选择将 OTP 发送到电话 0****3

    插图 allengechoice.jpg 的说明

  7. 您将重定向到 SMS 页面,要求您从注册的 SMS 设备输入 OTP。在输入 OTP 字段中,输入发送到用户移动设备的一次性验证码,然后单击验证

  8. 如果验证成功,则应重定向到受保护的应用程序页,例如 /mybank

了解更多

反馈

要提供有关本教程的反馈,请联系 idm_user_assistance_ww_grp@oracle.com

致谢

更多学习资源

docs.oracle.com/learn 上浏览其他实验室,或者在 Oracle Learning YouTube 渠道上访问更多免费学习内容。此外,访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心