ForgeRock


  • ForgeRock 은 κΈ°μ—…μš© IAM 을 μ œκ³΅ν•˜λŠ” ν”Œλž«νΌμœΌλ‘œ, μ£Όμš” μ»΄ν¬λ„ŒνŠΈλ‘œ AM, DS 등이 μžˆλ‹€.
  • IAM, Identity and Access Management 은 νšŒμ›κ°€μž…, 둜그인 인증, 인가, 둜그인 이λ ₯관리, νšŒμ› 정보 μˆ˜μ •, νƒˆν‡΄ λ“± 인증/인가 κΈ°λŠ₯이 λͺ¨λ‘ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” μ†”λ£¨μ…˜μ„ λ§ν•œλ‹€.
  • λ‹€λ₯Έ μ†”λ£¨μ…˜μœΌλ‘œ μ˜€ν”ˆμ†ŒμŠ€μΈ CNCF 의 KeyCloak을 μ‚¬μš©ν•  수 μžˆλ‹€.

ForgeRock AM


Introducing AM Core Concepts

  • ForgeRock Access Management λŠ” 인증, 인가λ₯Ό λ‹΄λ‹Ήν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ‹€.
  • SSO, OIDC, OAuth2, SAML, MFA 등을 μ§€μ›ν•œλ‹€.
  • API, μ›Ήμ‚¬μ΄νŠΈ, λͺ¨λ°”일 μ•± 등을 μ‚¬μš©ν•˜λ €λŠ” μœ μ €κ°€ λˆ„κ΅°μ§€, μ–΄λ–€ κΆŒν•œμ„ κ°€μ§€κ³  μžˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ μœ μ €λŠ” λ¨Όμ € 인증, 인가, SSO 등을 ForgeRock AM 을 톡해 κ±°μΉœλ‹€. 이 κ³Όμ •μ—μ„œ OAuth λ₯Ό ν™œμš©ν•΄ Google, Facebook λ“± Social Media μ—μ„œ μ œκ³΅ν•˜λŠ” μœ μ €μ˜ 이름, 이메일 등을 ForgeRock AM 에 μ €μž₯ν•  수 μžˆλ‹€.
  • μœ μ €κ°€ μ‚¬μš©ν•˜λ €λŠ” μ»΄ν¬λ„ŒνŠΈμ— 따라 AM κ³Ό ν†΅μ‹ ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€κ°€ λ‹€λ₯Έλ°, λͺ¨λ°”일 μ•±μ˜ 경우 SDK λ₯Ό ν™œμš©ν•΄ AM κ³Ό 톡신할 수 있고 API, μ›Ήμ‚¬μ΄νŠΈ 등은 Identity Gateway λ₯Ό 톡해 AM κ³Ό 톡신할 수 μžˆλ‹€.

Protecting an Application with Intelligent Authentication

  • μœ μ €λŠ” IG, Web agent, Java agent λ₯Ό 톡해 μ ‘κ·Όν•˜κ³ μž ν•˜λŠ” λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 인증을 μš”μ²­ν•  수 μžˆλ‹€.
    • IG λŠ” μœ μ €μ—κ²Œ AM 을 톡해 인증을 λ°›μ•„κ²Œλ”ν•˜λŠ”λ°, μœ μ €λŠ” AM μ—κ²Œ 지문인식, 얼꡴인식 등을 톡해 SSO token 을 λ°œκΈ‰λ°›μ„ 수 μžˆλ‹€.
    • 이후 μœ μ €λŠ” λ°œκΈ‰λ°›μ€ SSO token 을 IG μ—κ²Œ λ„˜κ²¨μ£Όκ³ , IG λŠ” ν•΄λ‹Ή token 이 μœ νš¨ν•œμ§€ AM 을 톡해 ν™•μΈν•œλ‹€.
    • SSO token 이 μœ νš¨ν•˜λ‹€λ©΄ IG λŠ” μœ μ €μ—κ²Œ λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 접근을 ν—ˆκ°€ν•œλ‹€.
  • AM 은 ACR level 을 톡해 μ—¬λŸ¬ λ‹¨κ³„μ˜ 인증 μ—­μ‹œ μ§€μ›ν•œλ‹€.
    • 예λ₯Ό λ“€μ–΄, 지문인식, 얼꡴인식 보닀 높은 μˆ˜μ€€μ˜ 인증을 μœ„ν•΄ SMS OTP 등을 ν™œμš©ν•  수 μžˆλ‹€.
  • AM 을 ν™œμš©ν•΄ 인증 ν”Œλ‘œμš°λ₯Ό μ„€κ³„ν•˜λŠ” κ΄€λ¦¬μžλŠ” AM 이 μ œκ³΅ν•˜λŠ” UI λ₯Ό 톡해 λ“œλž˜κ·Έ μ•€ λ“œλž 방식을 톡해 μ‹œκ°μ μœΌλ‘œ 인증 ν”Œλ‘œμš°λ₯Ό 섀계할 수 μžˆλ‹€.
    • Authentication Tree & Node λŠ” ForgeRock AM μ—μ„œ μœ μ € 인증 ν”Œλ‘œμš°λ₯Ό 섀계할 λ•Œ μ‚¬μš©λ˜λŠ” μ—”ν‹°ν‹°λ‹€.
    • Auth Tree λŠ” 인증 ν”Œλ‘œμš°μ˜ 전체 ꡬ쑰λ₯Ό μ˜λ―Έν•˜κ³ , Auth Tree λ₯Ό 더 큰 인증 ν”Œλ‘œμš°μ˜ μΌλΆ€λΆ„μœΌλ‘œ ν™œμš©ν•  수 μžˆλ‹€.
    • Auth Node λŠ” 인증 κ³Όμ •μ˜ 각 단계λ₯Ό κ΅¬μ„±ν•˜λŠ” λ…Έλ“œλ‘œ, Username Collector, Password Collector, OTP Validator 등이 μžˆλ‹€. κ΄€λ¦¬μžλŠ” Auth Node λ₯Ό μ‘°ν•©ν•˜μ—¬ Auth Tree λ₯Ό ꡬ성할 수 μžˆλ‹€.
  • ForgeRock AM μ—μ„œ μ œκ³΅ν•˜λŠ” MFA Auth Node λ₯Ό ν™œμš©ν•΄ 더 높은 μˆ˜μ€€μ˜ 인증을 κ΅¬ν˜„ν•  수 μžˆλ‹€.
    • MFA λŠ” 기본적인 ID, PW 인증 방식 외에 λ‹€λ₯Έ 채널(λ‹€λ₯Έ νƒ€μž…μ˜ ν”„λ‘œν† μ½œ, λ‹€λ₯Έ λ””λ°”μ΄μŠ€)μ—μ„œ 좔가적인 λͺ¨λ°”일 Authenticator 앱을 ν†΅ν•œ ν‘Έμ‹œ λ˜λŠ” 이메일, λ¬Έμžλ“±μ„ ν†΅ν•œ OTP λ₯Ό ν™œμš©ν•œ 인증을 κ±°μΉ˜λŠ” 과정을 μ˜λ―Έν•œλ‹€.
    • ForgeRock 이 μ œκ³΅ν•˜λŠ” MFA μ™Έ λ‹€λ₯Έ 도ꡬ듀도 손 μ‰½κ²Œ 연동 κ°€λŠ₯ν•˜λ‹€.

Controlling Access to an Application with AM Authorization

  • ForgeRock AM 은 Policy λ₯Ό 톡해 μœ μ € 그룹의 λ¦¬μ†ŒμŠ€ 접근을 μ œμ–΄ν•  수 μžˆλ‹€.
  • μœ μ €κ°€ IG/SDK 등을 톡해 λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 접근을 μš”μ²­ν•˜λ©΄, IG/SDK λŠ” AM μ—κ²Œ μ ‘κ·ΌκΆŒν•œμ— λŒ€ν•œ 확인을 μš”μ²­ν•˜κ³  AM 이 μ œκ³΅ν•˜λŠ” 응닡에 따라 λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 접근을 μ œμ–΄ν•  수 μžˆλ‹€.
  • Subject, Action, Resource, Condition 을 톡해 Policy λ₯Ό μ •μ˜ν•  수 μžˆλ‹€.
    • Subject: 룰이 적용될 λˆ„κ΅°κ°€
      • e.g. 인증된 μœ μ € 및 κ·Έλ£Ή, OIDC, JWT claim λ“±
    • Actions: 무엇을 ν•  수 μžˆλŠ”μ§€
      • e.g. 일반적인 HTTP Method GET, POST λ“± 외에도 Database INSERT, SELECT 등도 μ„€μ •ν•  수 있음
    • Resources: μ–΄λ–€ λ¦¬μ†ŒμŠ€λ₯Ό μ œν•œν•  것인지
      • e.g. 일반적인 URL https://fec.example.com μ΄λ‚˜, DB Table 도 κ°€λŠ₯
    • Conditions: 룰이 적용될 쑰건
      • e.g. IP κ°€ 192.168.100.22 일 경우

Protecting REST APIs and Integrating Mobile Applications

  • ForgeRock AM 이 인증 μ„œλ²„λ‘œμ¨ OIDC 와 OAuth 2.0 λ₯Ό μ–΄λ–»κ²Œ μ§€μ›ν•˜λŠ”μ§€ μ•Œμ•„λ³΄μž.
  • OAuth 2.0 은 인가λ₯Ό μœ„ν•œ ν”„λ‘œν† μ½œμ΄λ‹€. λ¦¬μ†ŒμŠ€ μ†Œμœ μžκ°€ λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 접근을 ν—ˆμš©ν•˜κ³  싢을 λ•Œ Access Token 을 λ°œκΈ‰ν•˜μ—¬ Access Token 을 κ°€μ§„ μ‚¬μš©μžκ°€ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•œλ‹€. λ•Œλ¬Έμ— λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜λ €λŠ” μœ μ €λŠ” μ•„λ¬΄λŸ° Credentials λ₯Ό μ œκ³΅ν•˜μ§€ μ•Šμ•„λ„λ˜λ©° λ¦¬μ†ŒμŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μͺ½ μ—­μ‹œ 본인이 λ°œκΈ‰ν•œ Access Token 의 validity 만 ν™•μΈν•˜λ©΄ λœλ‹€.
  • OIDC λŠ” 인증을 μœ„ν•œ ν”„λ‘œν† μ½œμ΄λ‹€. OAuth 2.0 handshake μœ„μ—μ„œ μž‘λ™ν•˜λ©° Access Token 이외에도 μΆ”κ°€μ μœΌλ‘œ ID Token 을 λ°œκΈ‰ν•˜μ—¬ 인증 κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ ForgeRock AM 에 μš”μ²­ν•˜λŠ” μ—”λ“œν¬μΈνŠΈλŠ” OAuth 2.0 κ³Ό κ°™μ§€λ§Œ, Scope λ₯Ό openid 둜 μ„€μ •ν•˜μ—¬ μš”μ²­ν•  경우 ID Token 을 λ°˜ν™˜ν•˜λŠ” 방식이닀.
  • Access Token 은 Bearer Token ν˜•μ‹μœΌλ‘œ 이루어져 있기 λ•Œλ¬Έμ— νƒˆμ·¨λ  경우 μ•„λ¬΄λ‚˜ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  수 μžˆκ²Œλœλ‹€. λ•Œλ¬Έμ— 항상 TLS/SSL 을 μ‚¬μš©ν•΄μ•Όν•˜λ©°, μΆ”κ°€μ μœΌλ‘œ Proof-of-Possession μ΄λΌλŠ” 방식을 톡해 μš”μ²­μ΄ μ‹€μ œλ‘œ Access Token 을 λ°œκΈ‰ν•΄μ€€ μœ μ €μ—κ²Œμ„œ 온 것인지 확인할 수 μžˆλ‹€. Access Token 을 λ°œκΈ‰ν•  λ•Œ ν΄λΌμ΄μ–ΈνŠΈμ˜ identity λ₯Ό ν•¨κ»˜ μ²¨κ°€ν•˜λŠ” λ°©μ‹μœΌλ‘œ AM κ³Ό Resource Server κ°€ 이λ₯Ό λŒ€μ‘°ν•˜μ—¬ λ™μΌν•œ μœ μ €κ°€ μš”μ²­ν•œ 것인지 ν™•μΈν•˜λŠ” 방법이닀.
  • Scope 의 경우 OIDC Provider, μ—¬κΈ°μ„  ForgeRock AM μ—κ²Œ μš”μ²­ μ‹œ, Claims λ₯Ό λ°˜ν™˜ν•œλ‹€.
    • Scope: Subscription 이라면,
    • Claims: Subscription Level, Subscription Expiry, λ“±λ“± 이 λ°˜ν™˜λœλ‹€.
    • OIDC λŠ” Scope: openid 둜 μš”μ²­ν•˜λŠ” 것이고, λ°˜ν™˜λ˜λŠ” Claims κ°€ sn, givenName, cn λ“± μœ μ € 정보λ₯Ό λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ— 인증 역할을 μˆ˜ν–‰ν•  수 μžˆλŠ” 것이닀.
  • λͺ¨λ°”일 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 경우 ForgeRock μ—μ„œ μ œκ³΅ν•˜λŠ” iOS, Android, JS SDKs 듀을 톡해 AM 에 μ‰½κ²Œ 연동할 수 μžˆλ‹€.

Realms

  • AM μ—μ„œ 인증 μ •μ±…κ³Ό μ‚¬μš©μž 그룹을 κ²©λ¦¬μ‹œν‚€κΈ° μœ„ν•œ λ³΄μ•ˆ 도메인이닀.
    • / : κΈ°λ³Έ realm
    • /banking : 은행 μ‚¬μš©μžμš© 인증/인가 realm
    • /admin : κ΄€λ¦¬μž μ „μš© realm
  • Realm λ³„λ‘œ Auth Tree, OAuth2, Policy λ“± 독립적인 섀정이 κ°€λŠ₯ν•˜λ‹€.

File-Based-Config, FBC

  • AM 을 μ„€μ •ν•˜κΈ° μœ„ν•΄ Config Store DS μ»¨ν…Œμ΄λ„ˆλ₯Ό ν™œμš© λŒ€μ•ˆμœΌλ‘œ λ‚˜μ˜¨ μ„€μ • 관리 λ°©μ‹μœΌλ‘œ, μ‰½κ²Œ 말해 νŒŒμΌν˜•μ‹μœΌλ‘œ 섀정값을 μ €μž₯ν•˜μ—¬ AM μ»¨ν…Œμ΄λ„ˆ 이미지에 ν¬ν•¨μ‹œν‚€λŠ” 것을 λœ»ν•œλ‹€. 이곳에 직접 μƒμ„±ν•œ Auth Tree, Auth Node 등이 JSON ν˜•νƒœμ˜ 파일둜 μ €μž₯λœλ‹€.
  • Admin UI μ—μ„œ λ³€κ²½ν•œ 섀정값듀은 AM Container 의 /home/forgerock/openam/config/ 에 파일 ν˜•νƒœλ‘œ μ €μž₯되고, 이 νŒŒμΌλ“€μ„ λ°”νƒ•μœΌλ‘œ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό κ΅¬μ„±ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆ 배포 μ‹œ λ™μΌν•œ 섀정을 μœ μ§€ν•  수 μžˆλ‹€.

Amster

  • Amster λŠ” AM 의 REST API λ₯Ό λž˜ν•‘ν•œ CLI 기반 ꡬ성 λ„κ΅¬λ‘œ, JSON 기반의 섀정을 Import, Export ν•  수 있고 이λ₯Ό ν™œμš©ν•œ 슀크립트 μžλ™ν™”κ°€ κ°€λŠ₯ν•˜λ‹€.
  • κ°„λ‹¨νžˆ 말해 Admin UI μ—μ„œ ν•  수 μžˆλŠ” μž‘μ—…μ„ Amster λ₯Ό μ΄μš©ν•΄ CLI 둜 μ„€μ •ν•  수 μžˆλ‹€.
    • Realm 생성/μˆ˜μ •
    • 인증 λͺ¨λ“ˆ ꡬ성
    • μ •μ±… μ •μ˜ λ“±
  • Amster 둜 Export 된 μ„€μ •νŒŒμΌλ“€μ€ JSON ν˜•νƒœλ‘œ μ €μž₯되고 이λ₯Ό FBC 라고 λΆ€λ₯Έλ‹€. ν•΄λ‹Ή νŒŒμΌλ“€μ„ VCS 에 μ €μž₯ν•΄ AM Container λ₯Ό μƒˆλ‘œ μ‹€ν–‰ν•  λ•Œ λ§ˆλ‹€ λ™μΌν•œ 섀정값을 μœ μ§€ν•  수 μžˆλ‹€.

ForgeRock DS


  • ForgeRock Directory Services λŠ” μ‚¬μš©μž, κ·Έλ£Ή, 토큰 λ“± λͺ¨λ“  아이덴티티 정보λ₯Ό μ €μž₯ν•˜λŠ” LDAP 기반의 디렉토리 μ„œλ²„λ‹€.
  • LDAP, Lightweight Directory Access Protocol 은 λ„€νŠΈμ›Œν¬ μƒμ—μ„œ μ‘°μ§μ΄λ‚˜ 쑰직 λ‚΄ 파일, κ°œμΈμ •λ³΄, λ””λ°”μ΄μŠ€ 정보 등을 μ°Ύμ•„λ³Ό 수 μžˆλ„λ‘ ν•˜λŠ” ν”„λ‘œν† μ½œμ΄λ‹€.

PingDS Concepts

  • Directory Service λŠ” LDAP ν˜Ήμ€ HTTP ν˜•νƒœλ‘œ μ ‘κ·Όν•  수 μžˆλŠ” λ””λ ‰ν„°λ¦¬ν˜• μ €μž₯μ†Œ μ •λ„λ‘œ λ³Ό 수 μžˆλ‹€. μ €μž₯λ˜λŠ” λ‚΄μš©μ€ 잘 λ³€κ²½λ˜μ§€ μ•ŠλŠ” μœ μ € 정보, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 정보 등이 μ €μž₯λœλ‹€. μœ μ € μ •λ³΄λŠ” ꡬ쑰가 λŒ€λΆ€λΆ„ μΌμ •ν•˜κ³  인증, κΆŒν•œ, 쑰직 ꡬ쑰 관리 λ“±μ˜ λͺ©μ μœΌλ‘œ 읽기 μ€‘μ‹¬μ˜ 데이터가 μ €μž₯되기 λ•Œλ¬Έμ— LDAP 에 주둜 μ €μž₯ν•˜μ—¬ μ‚¬μš©ν•œλ‹€.
  • PingDS λŠ” LDAPv3 ν‘œμ€€μ„ 기반으둜 Java Platform μœ„μ—μ„œ μž‘λ™ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆμœΌλ©°, κ³ μ„±λŠ₯, κ³ κ°€μš©μ„±μ„ μžλž‘ν•œλ‹€.
  • PingDS λŠ” 크게 3κ°€μ§€ μ»΄ν¬λ„ŒνŠΈλ‘œ μ΄λ£¨μ–΄μ§€λŠ”λ°,
    • Directory Server: LDAP Client μ—κ²Œ Directory 데이터λ₯Ό μ œκ³΅ν•˜λŠ” 주체둜 LDAP Server λ₯Ό κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ μ΅œμ†Œ 1개 이상 ν•„μš”ν•˜λ‹€. LDAP 외에 HTTP μ—­μ‹œ μ§€μ›ν•œλ‹€.
    • LDAP Proxy Server: λΆ„μ‚°λœ Directory Server μ•žλ‹¨μ—μ„œ Single Point of Access 역할을 ν•΄μ£ΌλŠ” Server. LDAP 은 HTTP 와 λ‹€λ₯΄κ²Œ FTP λ‚˜ SQL 처럼 Stateful ν•˜κΈ° λ•Œλ¬Έμ— Proxy μ—­μ‹œ LDAP μ „μš© Proxy λ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€. HTTP 둜 ν”„λ‘μ‹œλ₯Ό ν†΅ν•˜κ³  싢을 경우 HDAP 을 톡해 HTTP μš”μ²­μ„ LDAP 으둜 λ³€ν™˜μ‹œμΌœμ€˜μ•Όν•œλ‹€.
    • Replication Server: λΆ„μ‚°λœ Directory Server λ“€μ˜ 동기화λ₯Ό μˆ˜ν–‰ν•˜λŠ” μ„œλ²„λ“€μ΄λ‹€.
  • DS λŠ” 크게 5κ°€μ§€ 데이터λ₯Ό μ €μž₯ν•˜λŠ”λ°,
    • User Data λŠ” BerkeleyDB Java Edition Backend Database 에 μ €μž₯되며, local λ””μŠ€ν¬μ— μœ„μΉ˜ν•œλ‹€.
    • Server Config Data λŠ” 각 μ„œλ²„μ˜ local 에 LDIF ν˜•νƒœλ‘œ μœ„μΉ˜ν•œλ‹€.
    • Schema μ—­μ‹œ LDIF ν˜•νƒœλ‘œ μ €μž₯λœλ‹€.
    • Log files λŠ” local 에 μ €μž₯되고,
    • Backup files 도 local 에 μ €μž₯λœλ‹€.
  • DS 에 μ €μž₯λ˜λŠ” LDAP Data Model 의 κ΅¬μ‘°λŠ” dn, objectClass, 그리고 λ…Έλ“œμ˜ ν•„λ“œ 등을 ν¬ν•¨ν•œλ‹€.
  • LDAP μš”μ²­ 흐름은, LDAP Client κ°€ DS 에 μš”μ²­μ„ 보내면, DS λ‚΄λΆ€ LDAP Connection Handler κ°€ μš”μ²­μ„ 큐에 받아놓고 Core DS 에 μš”μ²­μ„ μˆœμ„œλŒ€λ‘œ μ „λ‹¬ν•œ λ’€, Backend Data μ—μ„œ 데이터λ₯Ό λ°˜ν™˜ν•œλ‹€.
  • AM 은 Schema 에 따라 μ—¬λŸ¬κ°€μ§€ DS λ₯Ό μ‚¬μš©ν•˜λŠ”λ°, λŒ€ν‘œμ μœΌλ‘œ μœ μ € 데이터λ₯Ό μ €μž₯ν•˜λŠ” Identity Store, 토큰 정보λ₯Ό μ €μž₯ν•˜λŠ” CTS Store, 섀정값을 μ €μž₯ν•˜λŠ” Config Store 등이 μžˆλ‹€.
  • DS λŠ” Replication Server 와 ν•¨κ»˜ λ°°ν¬λ˜μ–΄ κ³ κ°€μš©μ„±μ„ 보μž₯ν•œλ‹€. λ°μ΄ν„°μ˜ 일관성을 μœ„ν•΄ Replication Server κ°€ changeLog 을 κ°€μ§€κ³  μ„œλ‘œ λ‹€λ₯Έ Replication Server μ—κ²Œ λ°μ΄ν„°μ˜ λ³€ν™”λ₯Ό μ•Œλ €μ€€λ‹€. Replication Server 와 Directory Server λŠ” μ„œλ‘œ λ‹€λ₯Έ ν˜ΈμŠ€νŠΈμ— λ°°ν¬λ˜μ–΄ μš΄μ˜ν•  수 μžˆλ‹€.
  • DS Backend 백업은 κ°œλ°œν™˜κ²½μ„ μœ„ν•œ local λ””μŠ€ν¬ λ°±μ—…κ³Ό μš΄μ˜ν™˜κ²½μ„ μœ„ν•œ remote λ°±μ—… λͺ¨λ‘ μ§€μ›ν•œλ‹€. 기본적으둜 signed, encrypted λ˜μ–΄μžˆμœΌλ©° AWS S3 등에 λ°±μ—…ν•  수 μžˆλ‹€.

DS Proxy Server

  • DS Proxy Server λŠ” DS μ•žλ‹¨μ—μ„œ LDAP Client λ“€μ˜ μš”μ²­μ„ λ°›μœΌλ©΄μ„œ λ‹€μ–‘ν•œ 일을 μˆ˜ν–‰ν•œλ‹€.
  • λ¨Όμ € LDAP Client 의 LDAP account 둜 λ°”μΈλ”©λœ 컀λ„₯μ…˜μ„ Proxy account μ—μ„œ μΆ”κ°€μ μœΌλ‘œ λ°”μΈλ”©ν•˜μ—¬ μΈκ°€λœ DS 에 μ ‘κ·Όν•˜μ—¬ 마치 LDAP Client κ°€ μ§μ ‘μ μœΌλ‘œ DS 와 μ—°κ²°λœ 것 처럼 μž‘λ™ν•œλ‹€.
  • λ˜ν•œ, λ‘œλ“œλ°ΈλŸ°μ‹± μ—­ν•  μ—­μ‹œ μˆ˜ν–‰ν•˜λŠ”λ°, μƒ€λ“œμ— 따라 μš”μ²­μ„ λΆ„μ‚°ν•˜κ³ , Failover μ—­μ‹œ μ§€μ›ν•œλ‹€.

Using Directory Servers in PingAM Deployment

  • DS λŠ” 기본적으둜 AM κ³Ό ν•¨κ»˜ 배포되며 λͺ¨λ‘ 적어도 3개 μ΄μƒμ˜ ReplicaSet 으둜 λ°°ν¬λœλ‹€.
    • IAM κΈ°λŠ₯을 μœ„ν•œ PingAM μ»¨ν…Œμ΄λ„ˆ
    • User Data λ₯Ό μœ„ν•œ Identity Store DS μ»¨ν…Œμ΄λ„ˆ
    • Session, Access Token 등을 μœ„ν•œ CTS Store DS μ»¨ν…Œμ΄λ„ˆ
    • AM 의 섀정을 μœ„ν•œ Config Store DS μ»¨ν…Œμ΄λ„ˆ (FBC λ₯Ό ν™œμš©ν•˜λ©΄ ꡳ이 λ°°ν¬ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.)
  • μœ„ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆκ°€ 배포되면 μ΅œμ†Œν•œμ˜ IAM μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μž‘λ™ν•  수 μžˆλ‹€.

App Store

  • PolicySet κ³Ό Application Data λ₯Ό μ €μž₯ν•˜λŠ” DS μ»¨ν…Œμ΄λ„ˆ
    • Policy Store λŠ” 인증/인가 μ •μ±… 정보λ₯Ό μ €μž₯ν•˜κ³ 
    • Application Store λŠ” λ¦¬μ†ŒμŠ€/μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ“±μ˜ 정보λ₯Ό μ €μž₯ν•œλ‹€
  • 즉, AM μ—μ„œ ν™œμš©λ˜λŠ” μ •μ±…, λ¦¬μ†ŒμŠ€ 정보듀을 μ €μž₯ν•΄λ‘λŠ” DS λ‹€. Admin UI μ—μ„œ 직접 μ„€μ •ν•  μˆ˜λ„ μžˆμ§€λ§Œ, 주둜 Amster λ₯Ό 톡해 μ •μ±…, λ¦¬μ†ŒμŠ€ 정보λ₯Ό Import λ˜λŠ” Export ν•œλ‹€.

dsconfig

dsconfig \
	set-http-endpoint-prop \
		--endpoint-name /api \
		--set authorization-mechanism:"HTTP Basic" \
		...
  • Identity Store, CTS Store, App Store λ“±μ˜ DS μ»¨ν…Œμ΄λ„ˆλ₯Ό μ„€μ •ν•˜κΈ° μœ„ν•œ CLI 툴둜 기본적으둜 μ»¨ν…Œμ΄λ„ˆμ— λ‚΄μž₯λ˜μ–΄μžˆλ‹€.
  • LDAP μ„œλ²„μ˜ schema, index, backend, replication, access control 등을 μ„€μ •ν•œλ‹€.
  • μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ μ‹œ dsconfig shell script λ₯Ό ν•¨κ»˜ ν¬ν•¨ν•˜μ—¬ DS μ»¨ν…Œμ΄λ„ˆκ°€ μž¬μ‹€ν–‰λ  λ•Œ λ§ˆλ‹€ 섀정을 μžλ™ν™”ν•  수 μžˆλ‹€.

References