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

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

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

      keycloak~巧用client-scope實(shí)現(xiàn)token字段和userinfo接口的授權(quán)

      keycloak中的client-scope允許你為每個客戶端分配scope,而scope就是授權(quán)范圍,它直接影響了token中的內(nèi)容,及userinfo端點(diǎn)可以獲取到的用戶信息,這塊我們可以通過自定義scope/mapper,來實(shí)現(xiàn)粒度的控制,并且這個mapper可以控制添加到token,或者添加到userinfo端點(diǎn),這兩塊配置也是獨(dú)立的,下面我們通過一個登錄IP地址的mapper,來實(shí)現(xiàn)將登錄ip添加到token和userinfo端點(diǎn)。

      添加Mapper對象

      public class ExtensionLoginIpMapper
              extends AbstractOIDCProtocolMapper
              implements OIDCAccessTokenMapper, OIDCIDTokenMapper, UserInfoTokenMapper {
          public static final String CONFIG_NAME = "ExtensionLoginIp";//配置里的名稱
          public static final String PROVIDER_ID = "oidc-extension-login-ip-mapper";
          private static final List<ProviderConfigProperty> configProperties = new ArrayList<ProviderConfigProperty>();
          private static final String LOGIN_IP = "loginIp";
      
          static {
              configProperties.add(createConfigProperty(CONFIG_NAME, "Token申請名", "在jwt中的屬性名稱,默認(rèn)loginIp"));
              OIDCAttributeMapperHelper.addIncludeInTokensConfig(configProperties, ExtensionLoginIpMapper.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) {
              try {
                  String key = LOGIN_IP;
                  if (mappingModel.getConfig().containsKey(CONFIG_NAME)) {
                      key = mappingModel.getConfig().get(CONFIG_NAME);
                  }
      
                  if (userSession.getNotes().containsKey(LOGIN_IP)) {
                      String val = userSession.getNote(LOGIN_IP);
                      token.setOtherClaims(key, val);
                  }
      
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      
          public List<ProviderConfigProperty> getConfigProperties() {
              return configProperties;
          }
      
          @Override
          public String getId() {
              return PROVIDER_ID;
          }
      
          @Override
          public String getDisplayType() {
              return CONFIG_NAME;
          }
      
          @Override
          public String getDisplayCategory() {
              return TOKEN_MAPPER_CATEGORY;
          }
      
          @Override
          public String getHelpText() {
              return "Maps Extension Login Ip Address.";
          }
      }
      
      

      將Mapper添加到Client Scope

      • 添加 client scope

      • 在client scope中添加mapper

      設(shè)置access_token可見和userinfo可見

      • Add to ID token
      • Add to access token
      • Add to access token

      為客戶端指定scope

      • 這對于根據(jù)客戶端來控制token和userinfo端點(diǎn)是非常必要的功能
      • 這是oauth2授權(quán)的重要組成部分

      通過oauth2中的密碼認(rèn)證時的注意點(diǎn)

      • 客戶端不能是同意必選的,這種客戶端需要通過瀏覽器認(rèn)證,由用戶自己確認(rèn)它公開的信息

      通過token獲取用戶信息

      • userinfo端點(diǎn):/auth/realms/{realms}/protocol/openid-connect/userinfo
      • 獲取到時的用戶信息中的字段,是通過scope來控制的

      posted @ 2025-01-13 17:38  張占嶺  閱讀(394)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 色吊丝二区三区中文写幕| 亚洲一区二区在线av| 国产精品天堂蜜av在线播放| 国产人妇三级视频在线观看| 国产成人精品永久免费视频| 99久久激情国产精品| 国内精品卡一卡二卡三| 国产女人在线视频| av天堂久久精品影音先锋 | 欧美精欧美乱码一二三四区| 无码av中文一区二区三区桃花岛| 永久免费无码av在线网站| 国产av第一次处破| 久久精品国产亚洲av天海翼| 亚洲男人第一无码av网| 日韩精品一卡二卡三卡在线| 国产视频有码字幕一区二区| 国产精品午夜无码AV天美传媒| 日韩精品 在线 国产 丝袜| 高清中文字幕国产精品| 亚洲午夜精品久久久久久抢| 亚洲国产精品久久久久秋霞| 真人性囗交视频| 久久免费精品国自产拍网站| 国产综合精品一区二区三区| 国产精品普通话国语对白露脸 | 亚洲午夜天堂| 日本一区午夜艳熟免费| 无码成人精品区在线观看| 欧美成人无码a区视频在线观看| a片免费视频在线观看| 在线综合亚洲欧洲综合网站| 亚洲一区二区三成人精品| 久久久久99精品成人片牛牛影视| 中文激情一区二区三区四区| 丰满少妇被猛烈进入av久久| 日韩精品av一区二区三区| 日韩精品一区二区三区在| 躁躁躁日日躁| 国产无遮挡真人免费视频| 国产精品午夜av福利|