אימות Azure AD ארגוני לאתר שלך

נמאס לכם מסיסמאות ורוצים שעובדים ייכנסו לאתר עם פרטי Microsoft הארגוניים? אנו משלבים Azure AD authorization במפתח מלא, מגדירים תרחישים של single-tenant או multi-tenant ומבטיחים כניסה מאובטחת דרך Microsoft Graph API. הצוות שלנו מטפל בכל התהליך—מבחירת סוג האפליקציה ועד ליישום ולתמיכה שוטפת—כך שהפתרון שלכם עובד באופן אמין וגדל עם העסק.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
אימות Azure AD ארגוני לאתר שלך
בינוני
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1306
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

אימות Azure AD ארגוני לאתר שלך

אנחנו צוות מהנדסים עם ניסיון של 10+ שנים באימות ארגוני: Azure AD, SAML, OAuth, OpenID Connect. במשך למעלה מ-5 שנים בשוק, השלמנו למעלה מ-40 פרויקטים של שילוב Microsoft 365 ביישומי אינטרנט על Laravel, React, Next.js, Vue וטכנולוגיות נוספות. אנו מבטיחים אימות תקין ומעבר חלק מהתחברות מבוססת סיסמה. נבחן את הפרויקט שלך ונציע פתרון סוהר.

Microsoft OAuth דרך Azure Active Directory הוא התקן עבור יישומי B2B, פורטלים ארגוניים ושירותי SaaS המיועדים לחברות המשתמשות ב-Microsoft 365. עובדים מתחברים עם פרטי התחברות ארגוניים מבלי ליצור סיסמאות נפרדות. Azure AD מטפל במורכבות הפרוטוקול; המפתח צריך רק לחבר את ה-callback למערכת.

כיצד לבחור את סוג היישום: Single-Tenant לעומת Multi-Tenant?

Azure AD תומך בארבעה שילובי חשבונות: single-tenant (רק ה-tenant שלך), multi-tenant (כל ארגון), חשבונות אישיים (Microsoft/Outlook אישי), ושילוב של שניהם. עבור אינטגרציות ארגוניות, הבחירה הסטנדרטית היא single-tenant או multi-tenant עם ולידציה נוספת. עבור יישומי צרכנים, השתמש בחשבונות אישיים + ארגוניים.

השוואת סוגי יישומים

פרמטר Single-tenant Multi-tenant
גישה רק tenant אחד (החברה שלך) כל Azure AD tenant
ולידציה לא נדרשת (Azure כבר מגביל) חובה: בדוק את https://example.com/auth/microsoft/callback
רישום Tenant ID מצוין במפורש Tenant = common
אבטחה גבוהה (משטח תקיפה קטן יותר) בינונית (תלויה בוולידציה)
דוגמה פורטל משאבי אנוש פנימי SaaS עבור לקוחות חיצוניים

רישום יישום ב-Azure

  1. portal.azure.com → Azure Active Directory → App registrations → New registration
  2. ציין Redirect URI: openid
  3. בחר Supported account types (single/multi-tenant)
  4. לאחר היצירה: שמור את Application (client) ID ואת Directory (tenant) ID
  5. Certificates & secrets → New client secret → שמור את הערך (נראה רק מיד)
  6. API permissions → הוסף: profile, email, User.Read, composer require laravel/socialite socialiteproviders/microsoft-azure

פלטפורמת הזהויות של Microsoft ממליצה תמיד לציין Redirect URIs נכונים—הפלטפורמה מפנה את דפדפן המשתמש ל-URIs אלה לאחר האימות. תיעוד רישום היישומים של Microsoft זמין ב-פלטפורמת הזהויות של Microsoft.

Laravel Socialite

התקן את החבילה דרך composer: // config/services.php 'azure' => [ 'client_id' => env('AZURE_CLIENT_ID'), 'client_secret' => env('AZURE_CLIENT_SECRET'), 'redirect' => env('AZURE_REDIRECT_URI'), 'tenant' => env('AZURE_TENANT_ID', 'common'), // 'common' для multi-tenant ], . לאחר מכן הגדר את השירות:

// config/services.php 'azure' => [ 'client_id' => env('AZURE_CLIENT_ID'), 'client_secret' => env('AZURE_CLIENT_SECRET'), 'redirect' => env('AZURE_REDIRECT_URI'), 'tenant' => env('AZURE_TENANT_ID', 'common'), // 'common' для multi-tenant ], 

בקר אימות

class MicrosoftAuthController extends Controller
{
    public function redirect(): RedirectResponse
    {
        return Socialite::driver('azure')
            ->scopes(['openid', 'profile', 'email', 'User.Read'])
            ->redirect();
    }

    public function callback(): RedirectResponse
    {
        try {
            $msUser = Socialite::driver('azure')->user();
        } catch (\Exception $e) {
            return redirect('/login')->withErrors(['microsoft' => 'Ошибка авторизации Microsoft']);
        }

        $user = User::updateOrCreate(
            ['azure_id' => $msUser->getId()],
            [
                'name' => $msUser->getName(),
                'email' => $msUser->getEmail(),
                'email_verified_at' => now(),
                'azure_tenant_id' => $msUser->user['tid'] ?? null,
            ]
        );

        Auth::login($user, remember: true);

        return redirect()->intended('/dashboard');
    }
}

מדוע ולידציית Tenant ID קריטית בתרחישי Multi-Tenant

עם single-tenant, Azure עצמו מגביל את מאגר המשתמשים, ולכן ולידציית tenant ID אינה נדרשת. עם זאת, עם multi-tenant, ניתן להנפיק token עבור כל ארגון—אם אותו tenant ID אינו ברשימה הלבנה, תוקף מחברה אחרת עלול לקבל גישה. ולידציית tenant ID היא שלב אבטחה קריטי. בפועל, נתקלנו במקרים שבהם מפתחים דילגו על בדיקה זו, ולאחר חודש מצאו משתמשים מארגונים זרים במערכת. תיקון מאוחר יותר עלה פי 2–3 יותר מאשר יישום ולידציה בזמן.

Multi-Tenant: ולידציית Tenant

public function callback(): RedirectResponse
{
    $msUser = Socialite::driver('azure')->user();
    $tenantId = $msUser->user['tid'] ?? null;
    $allowedTenants = explode(',', config('services.azure.allowed_tenants', ''));
    if ($allowedTenants && !in_array($tenantId, $allowedTenants)) {
        return redirect('/login')->withErrors([
            'microsoft' => 'Ваша организация не имеет доступа к этому приложению'
        ]);
    }
    // ...
}

קבלת נתונים נוספים דרך MS Graph

$graphResponse = Http::withToken($msUser->token)
    ->get('https://graph.microsoft.com/v1.0/me', [
        '$select' => 'id,displayName,mail,userPrincipalName,jobTitle,department,officeLocation',
    ]);

$profile = $graphResponse->json();

// $profile['jobTitle'] — должность
// $profile['department'] — подразделение
// $profile['officeLocation']— офис

// Получение аватара
$photoResponse = Http::withToken($msUser->token)
    ->get('https://graph.microsoft.com/v1.0/me/photo/$value');

if ($photoResponse->ok()) {
    Storage::disk('public')->put("avatars/{$user->id}.jpg", $photoResponse->body());
}

SAML לעומת OAuth

לקוחות ארגוניים גדולים עשויים לבקש תמיכה ב-SAML 2.0 במקום OAuth. Azure AD תומך בשני הפרוטוקולים, אך SAML דורש ספרייה נפרדת וארכיטקטורה שונה. לפי ההערכות שלנו, יישום OAuth מהיר פי 2–3 מ-SAML וקל יותר לתחזוקה משמעותית. אנו ממליצים על OAuth כפרוטוקול הראשי.

מה כלול בעבודה

כאשר אתה מזמין אינטגרציית Azure AD סוהרת באתר שלך, אתה מקבל:

  • תיעוד על הגדרת Azure (redirect URIs, הרשאות, סודות).
  • יישום ה-OAuth callback וקישור עם חשבונות משתמשים.
  • אינטגרציה עם MS Graph לקבלת נתונים נוספים (תמונה, תפקיד, מחלקה).
  • ולידציית tenant ID לתרחישי multi-tenant.
  • בדיקות עם tenant אמיתי—אנו מאשרים תקינות.
  • העברת גישה והדרכה לצוות שלך.

לוח זמנים

שלב זמן
רישום יישום ב-Azure + הגדרת הרשאות 0.5 יום
OAuth callback + שמירת tenant ID 1.5 ימים
MS Graph: נתונים נוספים, תמונה יום אחד
בדיקות עם tenant אמיתי יום אחד

סה"כ: 4–5 ימי עבודה. המחיר מחושב באופן אישי לאחר ניתוח הפרויקט שלך. הזמן אינטגרציית Azure AD—ניישם אותה תוך 4–5 ימי עבודה. צור קשר להערכת פרויקט—נבחר את הפתרון האופטימלי עבור הטכנולוגיה והדרישות העסקיות שלך.