كل المشاريع
واجهة خلفية

خدمات مصغّرة مؤمَّنة — OAuth2 / OIDC / Keycloak

خدمات مصغّرة للتجارة الإلكترونية مؤمَّنة حيث يكون Keycloak خادم التفويض المركزي. خادما موارد Spring Boot (المخزون، الطلبات) يتحققان من رموز JWT الصادرة عن Keycloak؛ تستدعي خدمة الطلبات المخزون عبر OpenFeign مع تمرير الرمز؛ عميل Angular يسجّل الدخول عبر OIDC.

2
Resource servers
Keycloak
Identity provider
OpenFeign
Inter-service
Angular OIDC
Client
المنهجية

Keycloak كمزوّد هوية مركزي؛ خوادم موارد JWT + محوّل أدوار + تمرير رمز عبر Feign

المكدس التقني
Java 17Spring Boot 3.2Spring SecurityKeycloakOAuth2/OIDCOpenFeignAngularH2Swagger
الكلمات المفتاحية
KeycloakOAuth2OIDCJWTSpring SecurityOpenFeignAngularMicroservices
التعمق

دراسة مركّزة لأمان OAuth2 / OpenID Connect للخدمات المصغّرة، مع Keycloak كمزوّد هوية لمجال تجارة إلكترونية.

البنية

                    ┌──────────────┐
                    │   Keycloak   │  realm: sdia-realm  (:8080)
                    │ (OAuth2/OIDC)│
                    └──────┬───────┘
                           │ JWT (Bearer)
        ┌──────────────────┼──────────────────────────┐
        ▼                  ▼                            ▼
  ┌───────────────┐  ┌───────────────────┐     ┌───────────────┐
  │  ecom-app     │  │  order-service     │ ──► │  inventory-   │
  │  (Angular)    │  │  :8088 (OpenFeign) │     │  service :8087│
  └───────────────┘  └───────────────────┘     └───────────────┘
                     يمرّر الرمز عبر FeignInterceptor

تفاصيل الأمان

  • SecurityConfig يسجّل كل خدمة كـ خادم موارد (oauth2ResourceServer().jwt())
  • JwtAuthConverter يحوّل أدوار realm/client في Keycloak إلى صلاحيات Spring Security
  • FeignInterceptor في خدمة الطلبات يمرّر رمز Bearer إلى خدمة المخزون
  • تستخدم الخدمتان قواعد H2 في الذاكرة؛ وتتضمن خدمة الطلبات Swagger UI

الوحدات: inventory-service (المنتجات، :8087) · order-service (الطلبات، :8088) · ecom-app-angular (عميل تسجيل دخول OIDC، :4200).