أنواع منح OAuth2 الشائعة
استكشفوا أنواع المنح المختلفة، مثل Authorization Code وClient Credentials، وحالات الاستخدام المناسبة لكل منها.
أنواع منح OAuth2 الشائعة درس مجاني في Spring Security 6 & JWT Authentication على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Spring Security 6 & JWT Authentication، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Spring Security 6 & JWT Authentication 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
What are OAuth2 Grant Types?
Welcome! In OAuth2, a Grant Type (or 'Authorization Grant') is a method an application uses to get an access token from an authorization server.
Think of it as the specific procedure or negotiation protocol for obtaining permission to access protected resources.
Why Different Grant Types?
You might wonder why there isn't just one way to get a token. Different applications have different security needs and capabilities:
- Web applications with a backend
- Single-page applications (SPAs) in a browser
- Mobile applications
- Command-line tools
- Server-to-server communication
Each scenario requires a tailored, secure approach.
Authorization Code Grant
The Authorization Code Grant is the most common and recommended grant type for confidential clients, especially traditional web applications with a backend.
It's considered the most secure because the access token is never exposed directly in the user's browser.
Auth Code Flow: User Authorization
Here's how the Authorization Code flow typically starts:
- The user clicks 'Login with X' on your app.
- Your app redirects the user's browser to the Authorization Server (e.g., Google, GitHub).
- The user logs in and grants permission to your app.
- The Authorization Server then redirects the user's browser back to your app with a temporary authorization code.
Auth Code Flow: Token Exchange
After receiving the authorization code:
- Your app's backend receives the authorization code.
- It then securely exchanges this code (along with its own client ID and client secret) directly with the Authorization Server's token endpoint. This is a server-to-server communication.
- The Authorization Server validates the code and client credentials, then issues an access token (and often a refresh token).
Client Credentials Grant
The Client Credentials Grant is used for machine-to-machine communication where there is no end-user involved.
The client (your application or service) acts on its own behalf, authenticating itself directly to the Authorization Server to get an access token.
Client Credentials Flow
The flow for Client Credentials is simpler:
- Your client application (e.g., a background service) sends its client ID and client secret directly to the Authorization Server's token endpoint.
- The Authorization Server verifies these credentials.
- If valid, the Authorization Server directly issues an access token to your client.
No user interaction or browser redirects are needed.
Client Credentials in Action
Imagine a backend service that needs to query an external API to fetch data. It doesn't need a user to log in; it just needs access as 'itself'.
It would use the Client Credentials flow to get an access token:
curl -X POST -u "my-client-id:my-client-secret" \
"https://auth.example.com/oauth/token" \
-d "grant_type=client_credentials"Device Code Grant
The Device Code Grant is designed for input-constrained devices like smart TVs, IoT devices, or command-line tools that cannot easily host a web browser or accept redirects.
It separates the authorization process, allowing the user to authorize the device on a separate, more capable device (like a smartphone or computer).
Device Code Flow
Here's a simplified Device Code flow:
- The device requests a device code and a user verification URI from the Authorization Server.
- The device displays the URI and a short code to the user.
- The user goes to the URI on their phone/PC, logs in, and enters the code to grant access.
- Meanwhile, the device repeatedly polls the Authorization Server until authorization is confirmed, then it receives the access token.
Grant Type Challenge
Based on what you've learned, which OAuth2 grant type is most suitable for a backend service that needs to access another API without any user interaction?
Recap: Grant Types in Focus
We've explored key OAuth2 grant types: Authorization Code for secure web applications with user interaction, Client Credentials for server-to-server communication, and Device Code for input-constrained devices.
Each grant type addresses specific security and usability needs, ensuring secure authorization flows for different application scenarios.
تعلم Java مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 12
- الدروس
- 48
الأسئلة الشائعة
هل درس «أنواع منح OAuth2 الشائعة» مجاني؟
نعم — نص درس «أنواع منح OAuth2 الشائعة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Spring Security 6 & JWT Authentication، انتقل إلى CoddyKit PRO. تتضمن دورة Spring Security 6 & JWT Authentication 4 دروس في المجموع.
ماذا ستتعلم في «أنواع منح OAuth2 الشائعة»؟
استكشفوا أنواع المنح المختلفة، مثل Authorization Code وClient Credentials، وحالات الاستخدام المناسبة لكل منها. تتمرن على Spring Security 6 & JWT Authentication مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Spring Security 6 & JWT Authentication؟
لا تُشترط خبرة سابقة. Spring Security 6 & JWT Authentication على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «أنواع منح OAuth2 الشائعة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Spring Security 6 & JWT Authentication هذا؟
نعم. كل درس في Spring Security 6 & JWT Authentication يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نظرة عامة على بروتوكول OAuth2
- مقدمة إلى OpenID Connect
- أنواع منح OAuth2 الشائعة
- PKCE وتأمين العملاء العامين