OAM 和 SP 中的 JIT 使用者佈建

本文探討如何將使用者佈建新增至 OAM/SP,如果使用者還沒有帳戶,則可讓伺服器在 Federation SSO 期間快速建立使用者記錄。

在「聯合 SSO」作業期間,OAM/SP 會驗證內送 SSO 回應 (SAML 或 OpenID),並嘗試根據 SSO 回應中包含的資訊將它對應至本機 LDAP 使用者記錄 (通常是使用者屬性):

OAM/SP 會驗證 SSO 回應、使用 IdP 夥伴之 IdP 屬性設定檔中定義的規則來處理屬性,並視需要呼叫 OAM/SP 中設定的「使用者佈建」模組:

呼叫「使用者啟動設定」模組 (預設或自訂) 之後,伺服器會為使用者建立階段作業。相同使用者的後續聯合 SSO 作業會導致 OAM/SP 對應 SSO 回應至該新建立的 LDAP 記錄。

內建使用者佈建模組

內建的「使用者啟動設定」模組可在對應失敗時,在 LDAP 目錄中建立使用者記錄:

重要備註:上述演算法有點複雜,但允許管理員

在 OAM/SP 中啟用使用者佈建

執行下列步驟以在 OAM/SP 中啟用 / 停用使用者佈建:

  1. 執行下列動作以輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh

  2. 連線「WLS 管理」伺服器:connect()

  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()

  4. userprovisioningenabled 特性更新為:

  5. 結束 WLST 環境:exit()

測試設定

使用先前設定的相同 SAML 2.0 聯合設定,其中:

在與遠端 IdP 夥伴進行 SAML 2.0 同盟 SSO 時,由 IdP 傳送之宣告的「XML SAML 回應」會是:

<samlp:Response ..>
    <saml:Issuer ...>http://acme.com/idp</saml:Issuer>
    <samlp:Status>
        <samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion ...>
        <saml:Issuer ...>http://acme.com</saml:Issuer>
        <dsig:Signature ...>
        ...
        </dsig:Signature>
        <saml:Subject>
<saml:NameID ...>alice</saml:NameID>
            ...
        </saml:Subject>         <saml:Conditions ...>
         ...
        </saml:Conditions>         <saml:AuthnStatement ...>
        ...
        </saml:AuthnStatement>
        <saml:Attributestatement ...>
            <saml:Attribute Name="email" ...>
                <saml:AttributeValue
...>alice@oracle.com</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="title" ...>
                <saml:AttributeValue
...>manager</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="surname" ...>
                <saml:AttributeValue
...>Appleton</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="fname" ...>
                <saml:AttributeValue
...>Alice</saml:AttributeValue>
            </saml:Attribute>
        </saml:Attributestatement>
    </saml:Assertion>
</samlp:Response>

OAM/SP 處理 SAML 2.0 宣告的結果顯示轉換的屬性以及 NameID

Operation_Result.jpg 圖解說明

測試案例

測試案例會顯示「使用者佈建」模組的不同組態,而使用者對 OAM/SP 不存在於每次測試之前:

使用案例 #1:

使用案例 #2:

使用案例 #3:

使用案例 #4:

使用案例 #5:

在每個 Federation SSO 作業之後,列印所建立使用者的 LDAP 使用者記錄,接著在下次測試之前刪除該記錄。

重要注意事項:IdP 屬性設定檔必須將內送「SAML 屬性」名稱對應至 LDAP 目錄中使用的屬性名稱。這就是我們的測試 IdP 屬性設定檔 fname 對應至 givenname 的原因。內建的「使用者啟動設定」Plugin 會從已處理屬性清單中取得屬性名稱,然後將它們新增到 LDAP 使用者記錄 (如果設定為這樣做):沒有其他屬性名稱對應。

使用案例 #1

在此使用案例中,設定如下:

同盟 SSO 之後,建立別名的使用者記錄:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: top
uid: alice
cn: alice
sn: alice

LDAP 使用者記錄具有下列特性:

使用案例 #2

在此使用案例中,設定如下:

同盟 SSO 之後,建立別名的使用者記錄:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice

LDAP 使用者記錄具有下列特性:

使用案例 #3

在此使用案例中,設定如下:

若要這麼做,請執行下列步驟:

  1. 移至「OAM 管理主控台」:http(s)://oam-admin-host:oam-adminport/oamconsole

  2. 瀏覽至 Access ManagerPlugin

  3. 選取 FedUserProvisioningPlugin

  4. 在 KEY_USER_RECORD_ATTRIBUTE_LIST 欄位中,以逗號區隔的清單輸入 givennamesn 和郵件 (不含空格):givennamesnmail

  5. 按一下儲存 (Save)

Plug_ins_Screen.jpg 圖解說明

同盟 SSO 之後,便會建立 alice 的使用者記錄:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
givenName: Alice
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice
sn: Appleton

LDAP 使用者記錄具有下列特性:

使用案例 #4

在此使用案例中,設定如下:

若要這麼做,請執行下列步驟:

  1. 移至「OAM 管理主控台」:http(s)://oam-admin-host:oam-adminport/oamconsole

  2. 瀏覽至 Access ManagerPlugin

  3. 選取 FedUserProvisioningPlugin

  4. KEY_USER_RECORD_ATTRIBUTE_LIST 欄位設為空白值

  5. KEY_USERID_ATTRIBUTE_NAME 欄位設為 givenname

  6. 按一下儲存 (Save)

Access_mngt.jpg 圖解說明

同盟 SSO 之後,便會建立 alice 的使用者記錄:

dn: uid=Alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: Alice
cn: Alice
sn: Alice

LDAP 使用者記錄具有下列特性:

使用案例 #5

在此使用案例中,設定如下:

若要這麼做,請執行下列步驟:

  1. 移至「OAM 管理主控台」:http(s)://oam-admin-host:oam-adminport/oamconsole

  2. 瀏覽至 Access ManagerPlugin

  3. 選取 FedUserProvisioningPlugin

  4. KEY_USER_RECORD_ATTRIBUTE_LIST 欄位設為 (以逗號分隔的清單,不含空格):givennamesn

  5. KEY_USERID_ATTRIBUTE_NAME 欄位設為 fed.nameidvalue,這是 NameID 值的屬性名稱

  6. 按一下儲存 (Save)

Access_mngt_nameID_Value.jpg 圖解說明

同盟 SSO 之後,便會建立 alice 的使用者記錄:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
givenName: Alice
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice
sn: Appleton

LDAP 使用者記錄具有下列特性:

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,瀏覽 education.oracle.com/learning-explorer 成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center