ABOUT ME

Today
Yesterday
Total
  • [Keycloak] Schema Extention 및 Claim 추가 설정
    Tutorials & Tips/KeyCloak Server 2022. 12. 27. 18:19

     

    Keycloak admin Console에서

    Clinet scopes에서 create client scope로 생성합니다.

    Create client scope 처음 화면
    phone_number라는 이름으로 Client scopes 생성


    Type을 Defalut/Optional로 생성이 가능합니다.

    Save를 누르고 Client scope를 만들고 나면

     

    Mappers 탭에서 mapper를 추가할 수 있습니다.

    사전 정의된 매퍼를 사용할 수도 있고 매퍼를 새로 생성할 수도 있습니다.

    Configure a new mapper를 클릭하게 되면 여러가지 속성을 사용하여 mapper를 생성할 수 있습니다.

    여기서 User Attribute 속성을 사용하여 mapper를 생성해줍니다.

     

     

    1-1. User Attribute의 값이 user Attributes의 key값과 매칭됩니다.

    Claim JSON Type은 String, long, int, boolean, JSON 값을 설정할 수 있습니다.

     

     

    해당 Client 을 클릭한 후 Client scopes탭에서 Add client scope를 클릭한 후 방금 만든 phone_number

    값을 추가해줍니다. 추가할 때 Assigned type은 무조건 Default값으로 추가해줍니다.

     

    https://jwt.io/

    jwt.io에서 idToken 값을 확인해보면 

     


     

    1-2.  Token Claim name 값을 phone123.phone 점(.)을 사용해서 이름을 정의하면

    중첩된 JSON 객체로 생성됩니다.

     


    1-3. Claim JSON Type : JSON 형식으로 보내려면

     

    user Attributes value 값도 JSON 형식으로 맞춰줘야 합니다.

    그렇지않으면 에러가 발생합니다.

     


    2. Mapper type : Hardcoded claim으로도 claim을 생성할 수 있습니다.

    Hardcoded claim으로 매퍼를 생성하면 user Attributes에 속성을 추가하지 않아도 바로 claim에 추가됩니다.

     

    Token Claim Name : today

    Claim value : 값을 여기에서 지정해주면 됩니다.

    Claim JSON Type : JSON

     

    만약 JSON Type이 JSON이면 Claim value값을  JSON 형식으로 만들어 주어야합니다.

    그렇지않으면 에러가 발생합니다.




    3. Claim에 address값 추가하기

    Client scope에서  address를 클릭하고 난 후

    Mappers 탭을 보게되면 기존에 만들어진 address mapper가 있습니다.

     

    user Attributes Name 값을 user Attributes Key값에 맞게 넣어주면 됩니다.

    'Tutorials & Tips > KeyCloak Server' 카테고리의 다른 글

    댓글

Designed by Tistory.