簡體   English   中英

使用keycloak按角色保護Web資源

[英]Secure a web resource by roles using keycloak

我目前正在檢查keycloak示例:servlet-authz。 並了解到它通過web.xml保護了一個Web資源:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>All Resources</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
        <role-name>admin</role-name>
        <role-name>user_premium</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>KEYCLOAK</auth-method>
    <realm-name>servlet-authz</realm-name>
</login-config>

<security-role>
    <role-name>admin</role-name>
</security-role>

<security-role>
    <role-name>user</role-name>
</security-role>

<security-role>
    <role-name>user_premium</role-name>
</security-role>

我的問題是,它可以動態實現嗎? 不使用web.xml? 例如,我有一個新角色role_guest,只能訪問/ guest / * url。 如何配置? 我檢查了所有的例子,但到目前為止都沒有。

如果要動態加載所有角色,則必須在auth-constraintsecurity-role包含web.xml(不幸)和通配符(*)。

所有角色都允許使用web.xml片段:

...
<security-constraint>
    <web-resource-collection>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>KEYCLOAK</auth-method>
    <realm-name>servlet-authz</realm-name>
</login-config>

<security-role>
    <role-name>*</role-name>
</security-role>
...

我不知道是否有辦法自動將每個角色附加到一個url-pattern ,其中包含角色名稱。

使用Keycloak適配器版本4.4.0.Final在Wildfly 11上測試流量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM