<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      keycloak~scope客戶端模板的使用

      scope為何物?

      scope在oauth2中表示授權(quán)的范圍,另外也可以理解為,根據(jù)認證時scope的參數(shù),在構(gòu)建jwt時,返回更多的信息;比如在keycloak中,你的可選scope(optional scope)中添加了address這個模板,當(dāng)你通過/auth/realms/{realmId}/protocol/openid-connect/token進行認證時,你的參數(shù)scope中出現(xiàn)address,那么在生成的jwt token中,就會出現(xiàn)address這個內(nèi)容,如圖:

      這種按需求構(gòu)建jwt的方法就是client scope最大的作用,下面我們具體來說一下步驟。

      客戶端模板功能匯總

      1. 在客戶端模板中,可以看到所有的模板列表
      2. 可直接為所有新加的客戶端添加默認模板(Default Client Scopes)
      3. 可以在模板配置中,選擇可選模板,這個功能與認證參數(shù)scope配合使用,根據(jù)scope參數(shù)來擴展jwt token的內(nèi)容
      4. 通過繼承AbstractOIDCProtocolMapper來擴展客戶端模板

      配置客戶端模板

      模板列表,如圖:

      默認客戶端模板和可選客戶端模板

      • 默認客戶端模板(Default Client Scopes )
      • 可選客戶端模板(Optional Client Scopes )
      • 以上兩種模板互斥,即,當(dāng)一個模板select-user被選擇為“默認客戶端模板”后,它將會在“可選客戶端模板”列表中消失,反之,亦然。

      可選客戶端模板,可以添加address,openid來對原有jwt進行擴展,如圖:

      認證請求時,添加scope參數(shù),如openid,address等

      • openid:在jwt中添加id_token相關(guān)信息,即存放用戶的基本信息的token。
      • address:在jwt中添加address屬性,通過解析user_attribute中的street,locality,region等信息,來擴展jwt token。

      自定義客戶端模板

      例如,希望寫一個擴展,在token中輸出用戶昵稱,但這個昵稱是有業(yè)務(wù)邏輯的,通過復(fù)雜的邏輯計算出一個用戶昵稱,這時,需要你自定義一個模板

      1. 定義一個ExtensionNicknameMapper
      public class ExtensionNicknameMapper
          extends AbstractOIDCProtocolMapper
          implements OIDCAccessTokenMapper, OIDCIDTokenMapper, UserInfoTokenMapper {
      
        public static final String CONFIG_NAME = "extensionNickname";//配置里的名稱
        public static final String PROVIDER_ID = "oidc-extension-nick-name-mapper";
        private static final List<ProviderConfigProperty> configProperties = new ArrayList<ProviderConfigProperty>();
        private static final String NICKNAME = "nickname";
      
        static {
          configProperties.add(createConfigProperty(CONFIG_NAME, "Token申請名", "在jwt中的屬性名稱,默認nickname"));
          OIDCAttributeMapperHelper.addIncludeInTokensConfig(configProperties, ExtensionNicknameMapper.class);
        }
      
        protected static ProviderConfigProperty createConfigProperty(String claimName, String label, String help) {
          ProviderConfigProperty property = new ProviderConfigProperty();
          property.setName(claimName);
          property.setLabel(label);
          property.setHelpText(help);
          property.setType(ProviderConfigProperty.STRING_TYPE);
          return property;
        }
      
        @Override
        protected void setClaim(IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession,
                                KeycloakSession keycloakSession, ClientSessionContext clientSessionCtx) {
        
            String nickname="";
             // 復(fù)雜的業(yè)務(wù)方法,計算出nickname變量的值
            token.setOtherClaims(tokenAttribute, nickname);
        }
      
        public List<ProviderConfigProperty> getConfigProperties() {
          return configProperties;
        }
      
        @Override
        public String getId() {
          return PROVIDER_ID;
        }
      
        @Override
        public String getDisplayType() {
          return "Extension Nickname";
        }
      
        @Override
        public String getDisplayCategory() {
          return TOKEN_MAPPER_CATEGORY;
        }
      
        @Override
        public String getHelpText() {
          return "Maps Extension Nickname claim.";
        }
      
      }
      
      
      1. 將ExtensionNicknameMapper添加到Jboss的SPI中
      • /resources/META-INF/services/org.keycloak.protocol.ProtocolMapper文件
      your.package.ExtensionNicknameMapper
      
      1. 在keycloak管理后臺,添加一個新的模板,然后在模板里的mapper選項卡中,添加一個新的mapper中選你的ExtensionNicknameMapper

      好了,到這里,keycloak的client scope(客戶端模板)就介紹完了,希望對各位有所幫助。

      posted @ 2024-09-03 09:14  張占嶺  閱讀(349)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久精品国产99亚洲精品| 无码内射中文字幕岛国片| 一区二区三区AV波多野结衣| 安塞县| 亚洲成av人在线播放无码| 蜜桃亚洲一区二区三区四| 精品国产一区二区亚洲人| 亚洲欧美综合精品成人导航| 盐山县| 日韩人妻无码一区二区三区| 国产亚洲一区二区三区av| 国产对白熟女受不了了| 天堂在/线中文在线资源 官网| 久久久久四虎精品免费入口| 日韩精品专区在线影观看| 浮妇高潮喷白浆视频| 99re热视频这里只精品| 亚洲成人精品一区二区中| 日韩精品国产二区三区| 四虎国产精品永久免费网址| 多伦县| 九九热精品免费在线视频| 中文字幕在线亚洲日韩6页| 久久精品熟女亚洲av艳妇| 亚洲一区二区中文av| 久久亚洲精品中文字幕波多野结衣| A级孕妇高清免费毛片| 国产福利社区一区二区| 99国产午夜福利在线观看| 亚洲综合无码明星蕉在线视频| 国产精品欧美福利久久| 亚洲人成网站在线观看播放不卡| 久章草在线毛片视频播放| 定远县| 国产片av在线观看国语| 影音先锋2020色资源网| 元阳县| 成全高清在线播放电视剧| 亚洲日本VA午夜在线电影| 无码粉嫩虎白一线天在线观看| 婷婷成人丁香五月综合激情|