كل المشاريع
واجهة خلفية
خدمات مصغّرة مؤمَّنة — 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).