دوره OAuth & OpenID Connectبه همراه پیاده سازی با IdentityServer4

  • دسته بندی
    Identity Management
  • مدت دوره
    40 ساعت
  • جلسات دوره
    20 جلسه 2 ساعته
  • نحوه برگزاری
    آنلاین
  • تاریخ شروع
    17 مرداد 1400
  • هزینه دوره
    2.500.000 تومان
  • ثبت نام
  • بررسی OAuth 2.0 بر پایه RFC-6749
    • معرفی OAuth 2.0
    • تعریف نقش ها در OAuth 2.0
      • Resource Owner
      • Authorization Server
      • Resource Server
      • Client
    • آشنایی با انواع Client ها
      • Confidential
      • Public
    • بررسی Authorization Grant های مختلف در OAuth 2.0
      • Authorization Code
      • Implicit
      • Resource Owner Password Credential
      • Client Credentials
      • Device Flow (RFC-8628)
    • بررسی Endpoint های مختلف در OAuth 2.0
      • Authorization endpoint
      • Token endpoint
      • Redirection endpoint
      • Revocation (RFC-7009)
      • Introspection (RFC-7662)
  • بررسی OAuth 2.1 بر پایه آخرین Draft نوشته شده توسط IETF
    • بررسی تغییرات مهم در OAuth 2.1
      • تغییرات در Authorization Code Grant و اجبار PKCE
      • Redirect URI String Matching
      • بررسی Grant Flow های حذف شده و دلایل آن
      • تغییرات در حوزه استفاده از Refresh Token ها
      • محدودیت استفاده از Query String برای Bearer Token
      • معرفی نوع جدید Client با نام Credentialed ها
  • ابطال Token بر پایه RFC-7009
    • معرفی بحث Token Revocation و کاربردهای آن
    • بررسی Endpoint، Request و Response برای ابطال Token
    • بررسی موضوع CORS در Token Revocation
    • بررسی ملاحظات امنیتی
  • بررسی PKCE بر پایه RFC-7636
    • معرفی PKCE و کاربرد آن
    • مفاهیم و واژه شناسی
      • Code Verifier
      • Code Challenge
      • Code Challenge Method
    • بررسی Flow و نحوه پیاده سازی PKCE
    • ملاحظات امنیتی
  • ملاحظات امنیتی و تهدیدات در OAuth 2.0 برپایه RFC-6819
    • ملاحظات امنیتی عمومی در OAuth
      • اطمینان از محرمانگی درخواست ها
      • مطلع سازی Resource Owner ها
      • تایید هویت Identity Server برای جلوگیری از Spoofing، Proxying و Phishing
    • ملاحظات امنیتی در حوزه Token ها
      • اطمینان از محدودیت Scope ها در Token
      • تعریف صریح Scope ها در Token
      • استفاده از آدرس Endpoint به عنوان Token Audience
      • اعمال زمان انقضای مناسب برای Token ها
      • محدودیت استفاده از Token ها و یا استفاده از Token های یکبار مصرف
      • محدودسازی Token ها برای یک Resource Server و یا یک Client خاص
      • Sign و Encrypt کردن Token ها
      • استفاده از فرمت های استاندارد (مانند SAML یا JWT)
      • مبحث Rotation در Refresh Token ها (استفاده همزمان و موازی از یک Refresh Token )
      • مکانیزم ابطال Refresh Token
    • تهدیدات رایج و راهکارهای آن در OAuth
      • دزدیده شدن Client Secret, Refresh Token و Access Token ها و ...
      • حمله Open Redirection
      • حمله CSRF در Return URI
      • Clickjacking
      • انجام Impersonation (جعل هویت) برای Resource Owner ها
      • استفاده از Client های جعلی
      • Code Substitution و Token Substitution
      • لو رفتن Token در Implicit Flow (از روش های مختلف مثل تاریخچه مرورگر و ...)
      • نشت داده های محرمانه از طریق Proxy ها و یا Log های سیستم
  • بررسی چارچوب کلی Assertion در OAuth 2.0 بر پایه RFC-7521
    • تعریف مفهوم Assertion
    • بررسی Message Flow و قوانین
    • معرفی Profile های موجود
    • بررسی انواع Assertion
      • Bearer Assertions
      • Holder-of-Key Assertions
    • بررسی Request & Response در حالت های مختلف
    • Assertion Metamodel
    • بررسی سناریوهای رایج
      • Client Acting on Behalf of Itself
      • Client Acting on Behalf of a User
      • Client Acting on Behalf of an Anonymous User
    • ملاحظات امنیتی
  • بررسی JWT بر پایه RFC-7519
    • آشنایی با JWT
    • بررسی Claim های JWT
      • Registered Claim Names
      • Public Claim Names
      • Private Claim Names
    • بررسی JOSE Header
      • TYP (type)
      • CTY (Content-Type)
  • استفاده از JWT در OAuth بر پایه RFC-7523
    • استفاده از JWT در سناریوهای متفاوت
      • Client Authentication
      • Authorization Grants
    • بررسی فرمت JWT و Request & Response ها برای پردازش
    • ملاحظات امنیتی
  • مبحث Token Introspection بر پایه RFC-7662
    • تعریف مفهوم Introspection و کاربرد آن
    • بررسی Request & Response در فرآیند Introspection
    • ملاحظات امنیتی
  • بررسی AMR در JWT بر پایه RFC-8176
    • تعریف AMR (Authentication Method Reference) و کاربرد آن
    • بررسی مقادیر AMR (مانند pwd, otp و ... )
    • بررسی رابطه AMR و ACR (Authentication Context Class)
    • ملاحظات امنیتی
  • استفاده از OAuth برای Native App ها بر پایه RFC-8252
    • مفاهیم و واژه شناسی
      • App / Native App
      • Embedded & External User-Agent
      • In-app Browser Tab
      • Web View
      • Inter-app Communication
      • Claimed https scheme URI
      • Private-use URI scheme
      • Reverse domain name notation
    • بررسی رویکردهای متفاوت بسته به User-Agent
      • Embedded user-agent
      • External user-agent
    • بررسی Flow و فرآیند Request و دریافت Response
    • تهدیدات و ملاحظات امنیتی
      • محافظت از Authorization Code و استفاده از PKCE
      • استفاده از Implicit Flow
      • ملاحظات امنیتی هنگام استفاده از Loopback Redirection
      • ملاحظات امنیتی در مورد Client ها
      • ملاحظات امنیتی در مورد User-Agent ها
      • بررسی حمله CARF (Cross-App Request Forgery)
  • مبحث Mutual-TLS در OAuth بر پایه RFC-8705
    • بررسی مفهوم و کاربرد Mutual-TLS
    • کاربرد Mutual-TLS در OAuth
      • Client Authentication
      • Certificate-Bound Access Tokens
    • روش های مختلف Mutual-TLS Client Authentication
      • PKI Mutual-TLS
      • Self-Signed Certificate Mutual-TLS
    • بررسی مبحث Certificate-Bound Access Tokens
      • JWT Certificate Thumbprint Confirmation
      • Confirmation Method for Token Introspection
      • Public Clients and Certificate-Bound Tokens
      • Certificate-Bound Refresh Tokens
    • ملاحظات امنیتی
  • بررسی OpenID Connect بر پایه OpenID Connect Core Specification
    • مشکلات و محدودیت های استفاده از OAuth برای Authentication
    • معرفی OpenID Connect
    • معرفی مفاهیم و واژه شناسی
      • Authentication Request
      • Authentication Context
      • Claim / Essential Claim / Voluntary Claim
      • Hybrid Flow
      • ID Token
      • Identity
      • OpenID Provider (OP)
      • Pairwise Pseudonymous Identifier (PPID)
      • Personally Identifiable Information (PII)
      • Relying Party (RP)
      • Sector Identifier
      • Self-Issued OpenID Provider
      • Validation / Verification
    • تعریف نقش ها در OpenID Connect
      • End User
      • OpenID Provider (OP)
      • Relying Party (RP)
    • بررسی انواع Token در OpenID Connect
      • ID Token
    • بررسی Flow های مختلف در OpenID Connect
      • Authorization Code Flow
      • Implicit Flow
      • Hybrid Flow
    • بررسی Endpoint های مختلف OpenID Connect
      • UserInfo
      • CheckSession
      • EndSession
      • OpenId-Configuration
      • JWKs
    • بررسی Claim ها در OpenID Connect
      • Standard Claims
      • Claim Types (Normal, Aggregated and Distributed Claims)
    • رمزنگاری و امضای Token ها
    • انواع Serialization در درخواست ها
      • Query String Serialization
      • Form Serialization
      • JSON Serialization
    • مبحث Discovery در OpenID Connect
      • مفاهیم و واژه شناسی (Host, Resource, …)
      • بررسی Metadata مربوط به Provider
      • نحوه دریافت Provider Configuration
    • ملاحظات امنیتی در OpenID Connect
  • Single Sign-On (SSO)
    • SSO چیست و چه مشکلی را حل میکند؟
    • SSO چگونه کار میکند؟
    • با چه پروتکل ها و ابزارهایی میتوان SSO را پیاده سازی کرد ؟
  • ابزار IdentityServer4
    • بررسی ابزار IdentityServer4
      • ساختار، قابلیت ها، مزایا، معایب و ابزارهای جایگزین
    • بررسی ساختار و اجزای IdentityServer4
    • راه اندازی ASP.NET Core Identity برای IdentityServer4
    • پیاده سازی Flow های متفاوت در IdentityServer4 با Client ها متفاوت
      • Client Credentials Flow
      • Authorization Code Flow + PKCE
      • Implicit Flow
      • Resource Owner Password Credential (ROPC)
      • Hybrid Flow
    • کار با Refresh Token ها
    • Federated Sign-out
      • Front-Channel Spec
      • Back-Channel Spec
    • پیاده سازی مکانیزم Token Validation در API ها
      • JWT Token Validation
      • Reference Token Validation
    • اتصال External Provider ها (مانند گوگل و ADFS و ...) به IdentityServer4
    • پیاده سازی Pop (Proof-of-Possession) با استفاده از مکانیزم Mutual-TLS
  • ابزارها و تکنولوژی های مورد استفاده در طول دوره
    • C# - ASP.NET Core
    • IdentityServer4
    • ASP.NET Core Identity
    • Entity Framework Core
  • آشنایی کلی با Authorization و Authentication
  • آشنایی کلی با مبحث Claim-Based Identity